R
Robin Hood
Доброго времени суток.
Пытаюсь запустить удаленный поток (CreateRemoteThread), в другом процессе. Пишу на VC++ ну и вставки асмы там делаю.
Собственно все вроде ясно, мне нужно, что бы этот поток открыл TCP соединение. Я подгружаю библиотеку ws2_32.dll, с помощью GetProcAddress нахожу адрес api-функции WSAStartup.
Вот ее описание c MSDN:
Где, lpWSAData указатель на структуру WSADATA.
Вот кусок моего кода:
.
Это не работает ;( И при запуске удаленного потока просто закрывает приложение даже без сообщения об ошибке.
Если кто нб что нб понял и видит мою ошибку буду очень благодарен. Может я неправильно передаю указатель на структуру????
Заранее благодарен!
Пытаюсь запустить удаленный поток (CreateRemoteThread), в другом процессе. Пишу на VC++ ну и вставки асмы там делаю.
Собственно все вроде ясно, мне нужно, что бы этот поток открыл TCP соединение. Я подгружаю библиотеку ws2_32.dll, с помощью GetProcAddress нахожу адрес api-функции WSAStartup.
Вот ее описание c MSDN:
Код:
int WSAStartup(
__in WORD wVersionRequested,
__out LPWSADATA lpWSAData
);
Где, lpWSAData указатель на структуру WSADATA.
Вот кусок моего кода:
.
Код:
..
struct { // Собственно это и есть структура WSAData
WORD wVersion;
WORD wHighVersion;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
} ws, *pws;
pws = &ws;
const WORD ver = 0x0101; // MAKEWORD (1,1)
__asm {
push pws
push ver
call dword ptr WSASUaddr // Адрес ф-ции WSAStartup (проверял в дебагере - верно)
}
...
Если кто нб что нб понял и видит мою ошибку буду очень благодарен. Может я неправильно передаю указатель на структуру????
Заранее благодарен!