Хотелось бы сперва сделать 2 оговорки: 1) я далеко не спец, поэтому не кричете пожалуйста громко, если я делаю какие-то очевидные ошибки 2) тема топика по сути не является malwar'ой Принциа я понимал так: нужно запустить cmd.exe и перенаправить стандартные потоки ввода/вывода/ошибок на сокет, с первого взгляда тривиальная задача. вот что у меня получилось: Код (Text): .386 .model flat,stdcall option casemap: none include windows.inc include kernel32.inc includelib kernel32.lib include ws2_32.inc includelib ws2_32.lib include macros.asm .data? wsa WSADATA <?> sa sockaddr_in <?> sattr SECURITY_ATTRIBUTES <?> startup STARTUPINFO <?> pi PROCESS_INFORMATION <> overlapped OVERLAPPED <> hSock dd ? .code start: invoke WSAStartup,202h,offset wsa mov sa.sin_family,AF_INET invoke htons,999 mov sa.sin_port,ax invoke htonl,7f000001h mov sa.sin_addr,eax invoke socket,AF_INET,SOCK_STREAM,0 mov esi,eax invoke bind,esi,offset sa,sizeof sa invoke listen,esi,1 mov eax,sizeof sa lea edi,hSock mov [edi],eax invoke accept,esi,offset sa,offset hSock mov hSock,eax mov startup.cb,sizeof startup mov startup.wShowWindow,SW_HIDE mov startup.dwFlags,STARTF_USESTDHANDLES+STARTF_USESHOWWINDOW m2m startup.hStdInput,hSock m2m startup.hStdOutput,hSock m2m startup.hStdError,hSock mov sattr.nLength,sizeof sattr mov sattr.lpSecurityDescriptor,0 mov sattr.bInheritHandle,TRUE invoke CreateProcess,chr$('c:\windows\system32\cmd.exe'),0,offset sattr,offset sattr,TRUE,NORMAL_PRIORITY_CLASS,0,0,offset startup,offset pi int 3 invoke closesocket,hSock invoke closesocket,esi invoke WSACleanup ret end start тут я и боломался, потому как на сокет ничего не выводилось и в помине.. Решив перестраховаться и пока не связываться с cmd.exe написал тривиальную утилиту которая выводит на StdOut строку: Код (Text): .386 .model flat,stdcall option casemap:none include windows.inc include kernel32.inc includelib kernel32.lib .data szMessage db 'raz raz raz..',0 nSize equ $-szMessage rw dd ? Overlapped OVERLAPPED <> .code start: invoke GetStdHandle,STD_OUTPUT_HANDLE invoke WriteFile,eax,offset szMessage,nSize,offset rw,offset Overlapped ret end start и запустив её видел что строка успешно записалась в сокет. Задав пару вопросов гуглу (сильно я не увлекался потому как изначально хотел до всего допереть сам) нашёл сорец который делает то что мне нада, и единственное его отличие было в том что сокет он создавал не функцией socket а WSASocket отсуда вопрос номер один чем отличаются сокеты созданные следующими функиями: Код (Text): invoke WSASocket,AF_INET,SOCK_STREAM,IPPROTO_TCP,0,0,0 socket,AF_INET,SOCK_STREAM,0 ведь на первый взгляд вроде бы ничем...
<извените что несколькими постами> далее заметил что такой вот клиент "подвисает" при использовании telnet'a после пары комманд второй вопрос почему?
c socket и WSASocket так и не разобрался.. а телнетом.. его выкинул написал свой, кому интересно в атаче сорци и бинарники