Разщбираюсь со снифером! Как образец взял tiawps.
Добился получения процесса!
Но блин упорно не хочет читать SessionKey
В tiawps делают вот так:
PHP код:
DWORD number_of_read_bytes=0;
char pointer***91;4***93; = {'\0'};
ReadProcessMemory(wow_process_handle, (LPCVOID)CONNECTION_PTR_OFFSET, pointer, 4, &number_of_read_bytes);
if(number_of_read_bytes != 4)
{
printf("couldn't read pointer, just read %u bytes instead of 4\n", number_of_read_bytes);
CloseHandle(wow_process_handle);
return FALSE;
}
// convert bytes to pointer
unsigned int sessionKeyPosition = 0;
memcpy(&sessionKeyPosition, pointer, 4);
printf("Got pointer: %#X\n", sessionKeyPosition);
number_of_read_bytes = 0;
ReadProcessMemory(wow_process_handle, (LPCVOID)(SESSIONKEY_OFFSET+sessionKeyPosition), sessionKey, SESSIONKEY_LENGTH, &number_of_read_bytes);
CloseHandle(wow_process_handle);
if(number_of_read_bytes != SESSIONKEY_LENGTH)
{
printf("couldn't read sessionkey, read %u bytes instaed of %u\n", number_of_read_bytes, SESSIONKEY_LENGTH);
return FALSE;
}
Это забил в enum'е чтобы не передавать параметры
PHP код:
SESSIONKEY_LENGTH = 40
SESSIONKEY_OFFSET = 0x508
CONNECTION_PTR_OFFSET = 0x00D03F14
Для проверки делал вывод в консоль на равенство
PHP код:
if(number_of_read_bytes != SESSIONKEY_LENGTH)
В итоге плучил что number_of_read_bytes = 0!!!!! Где косяк?