Здравствуйте. Подскажите как можно это организовать? Например,подход ms-rem`а,через dll-инекцию с заменой адрессов функций,но как узнать какой процесс?
Вообщем мне надо перехватывать данные передаваемые процессом "Process.exe" через winsock2 (send, SendTo,WSASend,WSASendTo).
ну и в чем проблема? пишешь длл'ку для перехвата этих функций, а потом внедряешь ее только в process.exe и усе.
ну тык яж сказал грузи длл только в конкретный процесс, внимательно читай доки рема, http://wasm.ru/article.php?article=apihook_2
Chikanok .data szProcName db 'process',0 ... invoke GetModuleHandle,0 push eax invoke GetModuleHandle,addr szProcName pop ecx cmp eax,ecx jne exit ; мы в нужном процессе exit:
Перенес исходник ms-rem`а на С++. Внедряется во все процессы,переписывает адресса,но при вызове подменненой функции процесс падает. В чем может быть косяк,может какой модификатор приписать? Вот как я описал свою функцию: Код (Text): int MyMessageBoxExW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption,UINT uType,WORD wLanguageId)
Ошибка вот такая: Код (Text): Unhandled exception at 0x77d7055e in taskmgr.exe: 0xC0000005: Access violation reading location 0x00000000. Вот код подмены адресов: Код (Text): void SetHook() { HMODULE hMod=GetModuleHandle(L"user32.dll"); Ma=GetProcAddress(hMod,"MessageBoxExW"); Mw=GetProcAddress(hMod,"MessageBoxExA"); DWORD Bytes; BOOL r; ReadProcessMemory(INVALID_HANDLE_VALUE,Mw,&OldMw,sizeof(OldCode),&Bytes); ReadProcessMemory(INVALID_HANDLE_VALUE,Ma,&OldMa,sizeof(OldCode),&Bytes); JmpMw.PushOp=0x68; JmpMw.PushAdr=&MyMessageBoxExW; JmpMw.RetOp=0xC3; JmpMa.PushOp=0x68; JmpMa.PushAdr=&MyMessageBoxExA; JmpMa.RetOp=0xC3; WriteProcessMemory(INVALID_HANDLE_VALUE,Mw,&JmpMw,sizeof(far_jmp),&Bytes); WriteProcessMemory(INVALID_HANDLE_VALUE,Ma,&JmpMa,sizeof(far_jmp),&Bytes); } Вот описание структур: Код (Text): typedef struct { DWORD One; WORD Two; } OldCode; typedef struct { BYTE PushOp; LPVOID PushAdr; BYTE RetOp; } far_jmp;
Не до конца понял вопрос. Но тут в факе есть пост от володи про 'detours'. Искать по этому самому слову.