supernewbie, я так понимаю, что необходимо перехватывать UNetworkHandler::RequestItemList?
У меня код этой функции такой же как у вас:
Код:
.data:0x00000000 8b4148 mov eax,DWORD PTR [ecx+0x48]
.data:0x00000003 8b08 mov ecx,DWORD PTR [eax]
.data:0x00000005 8b516c mov edx,DWORD PTR [ecx+0x6c] <--- адрес SendPacket
.data:0x00000008 6a14 push 0x14
.data:0x0000000a 6814905020 push 0x20509014
.data:0x0000000f 50 push eax
.data:0x00000010 ffd2 call edx
.data:0x00000012 a124e44820 mov eax,ds:0x2048e424
.data:0x00000017 8b08 mov ecx,DWORD PTR [eax]
.data:0x00000019 68dcae5120 push 0x2051aedc
.data:0x0000001e 51 push ecx
.data:0x0000001f e87c85c7f4 call func_f4c785a0
.data:0x00000024 90 nop
.data:0x00000025 83c414 add esp,0x14
.data:0x00000028 b801000000 mov eax,0x1
.data:0x0000002d c3 ret
Я так понимаю смещение 0x6c, получается адрес так?
Код:
LPVOID fnOrigUNetworkHandler = ::GetProcAddress(LoadLibrary("engine.dll"), "?RequestItemList@UNetworkHandler@@UAEHXZ");
LPVOID fnOrigSendPacket_EngineDLL = (LPVOID)((ULONG_PTR)fnOrigUNetworkHandler+0x6c);
Так он берется? fnOrigSendPacket_EngineDLL правильный получается? Хукаю по этому адресу но ничего не идет, ни одного вызова