Показать сообщение отдельно
Старый 03.03.2013, 22:50   #25
Новичок
 
Регистрация: 06.12.2010
Сообщений: 18
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Sinn3r пока неопределено
По умолчанию

Сделал так
Код:
lpOriginalSend = *(DWORD*)((DWORD)SendPacket + 1) + 5 + (DWORD)SendPacket;
SendPacket_Detour = new Detour(SendPacket, jmpSendPacket);
SendPacket_Detour->Apply();

__declspec( naked ) void _cdecl jmpSendPacket(void* This, char* format,...)
{
	_asm jmp [lpOriginalSend]
}
работает. А вот так
Код:
SendPacket_Detour = new Detour(SendPacket, SendPacket_Hook);
SendPacket_Detour->Apply();

void _cdecl SendPacket_Hook(void* obj, char* format, ...)
{
	va_list args;
	va_start(args, format);
	SendPacket_Detour->Remove();
	SendPacket(obj, format, args);
	SendPacket_Detour->Apply();
}
нет.

До этого пробовал ложить объект в ecx, но ничего не вышло, ибо это cdecl, а не thiscall
Sinn3r вне форума   Ответить с цитированием