Статья Управляй компьютером через сотовый!

Admin

Администратор

Управляй компьютером через сотовый!​


Идею управления компьютером с мобильника через WAP я ношу в голове уже пару лет, а тут у меня появился Siemens M50, у которого имеется GPRS. Включил услугу WAP через GPRS и начал работать. Первым делом, конечно, решил поискать уже готовые решения, однако ничего путного, кроме RemotelyAnywhere v5.00.406 я не нашел. Единственным недостатком этой софтины было использование WAP второй версии. Большинство же сотовых, представленных сегодня на рынке, поддерживают WAP версии не выше 1.2.1. Поэтому я и решил сам написать WAP-сервер для управления PCшником.

Начнем

Кодить будем на MS Visual C++ 6.0 на уровне WinAPI, с использованием библиотеки WinSock. Первым делом создадим новый проект и добавим в линковку две библиотеки:

ws2_32.lib - библиотека Windows Sockets
winmm.lib - Multimedia библиотека

Добавляем Source-файл main.cpp и вставляем заголовки:
Код:
#include <windows.h> // Стандартно
#include <winsock.h> // Сокеты
#include <mmsystem.h> // Multimedia
Что бы прога была маленькой добавляем такие строки
Код:
#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
#pragma comment(linker,"/ENTRY:MyWinMain") // Точка входа
#pragma comment(linker,"/NODEFAULTLIB")
Немного теории

Согласно протоколу WAP (Wireless Application Proctocol), после отправления запроса клиентом, сервер должен послать либо запрошенный документ с его типом (WML- Wireless Markup Language) и кодом успешности операции (200), либо сообщение с ошибкой. Мы полагаем, что запрос верный и будем всегда посылать меню с возможными вариантами действий: Открыть/Закрыть лоток CD-ROMа, выключить или перезагрузить компьютер и выйти из данного пользователя. Для этого надо послать клиенту такие строки:
Код:
char s[12][62]=
{
"HTTP/1.1 200 OK\r\nContent-Type: text/vnd.wap.wml\r\n\r\n",
"<?xml version = \"1.0\"?>\r\n<!DOCTYPE wml PUBLIC \"-//WAPFORUM",
"//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">",
"\r\n<wml>\r\n<card id=\"Card1\" title=\"My Computer\">\r\n<p>",
"<a href=\"opencd\">OpenCD</a>
\r\n",
"<a href=\"closecd\">CloseCD</a>
\r\n",
"<a href=\"shut\">Shut Down</a>
\r\n",
"<a href=\"reset\">Reset</a>
\r\n",
"<a href=\"logoff\">LogOFF</a>
\r\n",
"</p>\r\n</card>\r\n</wml>\r\n"
};
Надо заметить, что WML построен на базе XML.

Теперь приступим к кодингу

Кодим

Для начала напишем несколько вспомогательных функций, которые понадобятся нам позже, а может и потом вам в своих приложениях. CRC (Код циклического контроля) мы будем использовать для идентификации команд, ИМХО это очень удобно, а CRC проверен временем и обеспечивает хорошее рассеивание.
Код:
u_long crc32_table[256]; //Для хранения таблицы crc
#define CRC32_POLY 0xEDB88320; // Стандартный полином

//Инициализируем crc
void init_crc32()
{
int i, j;
u_long c;
for (i = 0; i < 256; ++i)
{
for (c = i << 24, j = 8; j > 0; --j)
if(c & 0x80000000){c=(c << 1) ^ CRC32_POLY;} else {c=(c << 1);};
crc32_table[i] = c;
}
}

//Считаем CRC
u_long crc32(u_char *buf)
{
u_char *p= buf;
u_long crc;
crc = 0xffffffff;
while(*p!=0)
{
crc = (crc << 8) ^ crc32_table[(crc >> 24) ^ *(p++)];
if(*p==32) break;
};
return ~crc;
}


//Возвращает позицию n-ого пробела
int space(char * word, int n)
{
if(n==0) return -1;
int nbsp=0;
for(int i=0; i<strlen((char *)word); i++)
if(word[i]==32)
if(++nbsp==n) return i;
return -666;
}

//Возвращает n-ое слово word[0], word[1],...
char temp[1000];
char * get(char * word, int n)
{
int j=0;
if(space(word, n)!=-666)
for(int i=space(word, n)+1; i<strlen(word); i++)
{
if(word[i]==32) break; else temp[j++]=word[i];
}
temp[j]=0;
return temp;
};

//Приводим английские символы в верхнему регистру
u_char * UpString(u_char * str)
{
int i=-1;
while(str[++i]!=0)
if((str[i]>96)&&(str[i]<123)) str[i]=str[i]&0xDF;
return str;
};

//Главная функция
void MyWinMain(void)
{
DWORD size, nr;
char Buff[1000];

//Инициалицируем crc32
init_crc32();

// Это для ведения логов
HANDLE out = CreateFile("C:\\dataxxx.txt", GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, 0, NULL);

// Инициализируем и настраиваем сокет
WSADATA WSAData;
WSAStartup(MAKEWORD(1,1), &WSAData);
SOCKET Sock0 = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in name;
name.sin_family = AF_INET;
name.sin_port = htons(80); // Будем ожидать подключения на 80-й порт
name.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind(Sock0, (struct sockaddr FAR *) &name, sizeof(name))==SOCKET_ERROR)ExitProcess(666);

listen(Sock0, 5); // Слушаем


again:
SOCKET Sock1=accept(Sock0, NULL, NULL); // Принимаем соединение

while(true)
{
ioctlsocket(Sock1, FIONREAD, &size); // Пришел запрос?
if(size>0) // Да!
{

recv(Sock1,(char *)Buff,1000,0); // Получаем запрос
WriteFile(out, &Buff, size, &nr, NULL); // В лог

// Отправляем меню в сотик и в лог
for(int i=0; i<12; i++)
{
send(Sock1, s[i], strlen(s[i]), 0);
WriteFile(out, &s[i], strlen(s[i]), &nr, NULL);
}
closesocket(Sock1);


// Если REQUEST==GET
if( crc32(UpString( (u_char *)get(Buff, 0)))==0xA10411F )
switch( crc32(UpString( (u_char *)get(Buff, 1))) )
{
//OPENCD
case 0x52AD375F:
mciSendString("SET CDAUDIO DOOR OPEN WAIT",0,0, 0); break;
//CLOSECD
case 0x3918CCDF:
mciSendString("SET CDAUDIO DOOR CLOSED WAIT",0,0, 0); break;
//SHUT
case 0xE4F1DC3F:
ExitWindowsEx(EWX_POWEROFF, 0); break;
//RESET
case 0x54DF1B7F:
ExitWindowsEx(EWX_REBOOT, 0); break;
//LOGOFF
case 0x838B5D5F:
ExitWindowsEx(EWX_LOGOFF, 0); break;
}

goto again;
}
};
CloseHandle(out);
}
Все, можно компилить (только в конфигурации Release) и запускать. Несчастливым не обладателям сотовых могу лишь посоветовать воспользоваться WAP-эмулятором, коих сейчас в сети полно. И еще, если вы хотите управлять компьютером через WEB-интерфейс, то вам надо лишь заменить отправляемое меню на такое:
Код:
char s[8][50]=
{
"HTTP/1.1 200 OK\r\nContent-Type: text/html;",
"charset=windows-1251\r\n\r\n",
"<html><title><<<FULL CONTROL>>></title><body>",
"<a href=\"opencd\">OpenCD</a>
",
"<a href=\"closecd\">CloseCD</a>
",
"<a href=\"reset\">Reset</a>
",
"<a href=\"off\">OFF</a>
",
"</body></html>"
};
 
Похожие темы
K Немного психологии влияния. Управляй людьми! Свободное общение 1
Support81 UI-TARS: ByteDance научила ИИ работать с компьютером как человек Новости в сети 0
adflak Удаленная работа за компьютером подойдет всем Предоставляю работу. Ищу специалиста. 1
K Мануал: Скрытое управление компьютером на Windows (используя Metasploit) #2 Уязвимости и взлом 0
K Мануал: Скрытое управление компьютером на Windows (используя Metasploit) #1 Уязвимости и взлом 3
N Многофункциональный RMS - позволит Вам удаленно управлять компьютером жертвы Готовый софт 4
E ЯНДЕКС шпионит за вашим компьютером через Punto Switcher Анонимность и приватность 15
Admin UFOLABSNEWS Новая атака MemGhost позволяет внедрять ложные воспоминания в ИИ-ассистентов через одно письмо. Новости в сети 0
Admin UFOLABSNEWS Хакеры массово взламывают сайты через 15 уязвимостей в CMS. Новости в сети 0
Admin UFOLABSNEWS Уязвимость GhostCommit позволяет украсть пароли через PNG-файлы. Новости в сети 0
devqp Статья Подключение к корпоративным VPN с Linux VPS через OpenConnect и VPN-Slice Полезные статьи 0
devqp Статья Сетевой пивитинг через CrackMapExec, Meterpreter и Proxychains Уязвимости и взлом 0
Admin UFOLABSNEWS Критическая уязвимость в Zimbra позволяет выполнять вредоносный код через письма. Новости в сети 0
Admin UFOLABSNEWS CISA подтвердила атаки через уязвимости в JoomShaper и Langflow. Новости в сети 0
devqp Статья Обход процедуры верификации InfraGard через компрометацию персональных данных Уязвимости и взлом 0
devqp Статья Автоматизация загрузки файлов с шифрованием через transfer.sh Полезные статьи 0
devqp Статья Блокировка WebRTC через UFW для защиты реального IP в Linux Анонимность и приватность 0
devqp Статья Создание анонимных аккаунтов Telegram через виртуальные номера и облачные эмуляторы Анонимность и приватность 0
devqp Статья Реализация крипто-клиппера с заменой адресов через расстояние Левенштейна Вирусология 0
devqp Статья Геофильтрация трафика на сервере CentOS через xt_geoip и iptables Полезные статьи 0
Admin UFOLABSNEWS Китайские хакеры атакуют университеты через уязвимости в почтовых серверах. Новости в сети 0
devqp Статья Универсальный системный промпт для кодинга через ИИ (Cursor/ChatGPT) Полезные статьи 0
Admin UFOLABSNEWS Хакеры получили доступ к переписке британских чиновников через уязвимость Fortinet. Новости в сети 0
Admin UFOLABSNEWS Новый Android-вирус RedWing предлагается в аренду через Telegram. Новости в сети 0
Admin UFOLABSNEWS Злоумышленники используют DEBULL для фишинга через Microsoft Device-Code Flow. Новости в сети 0
Admin UFOLABSNEWS Критическая уязвимость в Gitea позволяла получить административные права через подмену заголовков. Новости в сети 0
Admin UFOLABSNEWS Хакеры начали атаковать уязвимость в Adobe ColdFusion через два часа после публикации патча. Новости в сети 0
Admin UFOLABSNEWS Хакеры похитили 20 миллионов долларов через манипуляции с голосованием в BonkDAO. Новости в сети 0
Admin UFOLABSNEWS Anthropic тайно отслеживала пользователей из Китая через Claude Code. Новости в сети 0
Admin UFOLABSNEWS Луна медленно удаляется от Земли, а Солнце стареет — что ждёт нашу планету через миллиарды лет. Новости в сети 0
Admin UFOLABSNEWS Исследователи разработали метод TrojPix для утечки данных с изолированных систем через видеокабель. Новости в сети 0
Admin UFOLABSNEWS Минцифры может вернуть подтверждение действий через смс и мессенджер «Макс» в антифрод-пакет. Новости в сети 0
Admin UFOLABSNEWS Китайская группа Mustang Panda атаковала индийские госструктуры через подмену DLL. Новости в сети 0
Admin UFOLABSNEWS Вредонос Umbrij использует OAuth для доступа к Gmail через Google API. Новости в сети 0
Admin UFOLABSNEWS Вредонос ChocoPoc распространяется через троянизированные эксплойты на GitHub. Новости в сети 0
Admin UFOLABSNEWS Российские сервисы отключат вход через Apple ID и Google с 6 июля. Новости в сети 0
Admin UFOLABSNEWS Microsoft раскрыла масштабную атаку через вредоносные расширения в магазине Edge. Новости в сети 0
Admin UFOLABSNEWS Хакеры атакуют промышленные контроллеры Lantronix через критическую уязвимость. Новости в сети 0
Admin UFOLABSNEWS Украинские спецслужбы раскрыли кампанию российских хакеров по краже данных через фейковые SMS. Новости в сети 0
Admin UFOLABSNEWS Новая уязвимость в Linux позволяет получить права root через кэшированные бинарные файлы. Новости в сети 0
Admin UFOLABSNEWS Micron закрепила высокие цены на память до 2030 года через стратегические соглашения. Новости в сети 0
Admin UFOLABSNEWS Уязвимость PixelSmash в FFmpeg позволяет выполнять чужие команды через повреждённые видеофайлы. Новости в сети 0
Admin UFOLABSNEWS Обнаружена уязвимость Squidbleed, позволяющая утечку HTTP-запросов через прокси. Новости в сети 0
Admin UFOLABSNEWS Microsoft обнаружила уязвимость в AutoGen Studio, позволяющую взламывать компьютеры через ИИ-агента. Новости в сети 0
Admin UFOLABSNEWS GitHub стал платформой для распространения вредоносного ПО через поддельные репозитории. Новости в сети 0
Admin UFOLABSNEWS Перчатка ThermoPhy позволяет почувствовать данные через тепло. Новости в сети 0
Admin UFOLABSNEWS Positive Technologies представила платформу «Киберпогода» для прогнозирования атак через внешнюю бизнес-экосистему. Новости в сети 0
Admin Интересно Женщина рассказала о грабеже через Uber Eats. Новости в сети 0
Admin Интересно 144 пакета Mastra в npm скомпрометированы через взлом учётной записи разработчика. Новости в сети 0
Admin Интересно Хакеры заразили более 1,2 миллиона сайтов WordPress через популярные расширения. Новости в сети 0

Название темы