А-а, я думал можно без ассембли как-то обойтись. Вот так получилось. Выглядит и правда аккуратней.
Код:
void __declspec(naked) sendNetMessageTrampoline(void* thisPtr, DWORD zero1, const char* packetTypePtr, const char* packetContentPtr, DWORD length, DWORD zero2) {
__asm {
push ebp
mov ebp, esp
sub esp, 0x18
jmp[jmpBackAddrSendNetMessage]
}
}
void __fastcall sendHookFunc(void* thisPtr, PVOID _EDX, DWORD zero1, const char* packetTypePtr, const char* packetContentPtr, DWORD length, DWORD zero2) {
printSendBufferToLog(packetTypePtr, packetContentPtr, length);
return reinterpret_cast<game::_SendNetMessage>(sendNetMessageTrampoline)(thisPtr, zero1, packetTypePtr, packetContentPtr, length, zero2);
}