rendered paste body.constcRetSendV dq 7D5D75hcGetFirstItemById dq 613A10hcUseItem dq 80E160h.codeServerPackets PROTO :DWORD,:DWORD; hooked at 0x7D5D6FSendVHook proc ;.text:00000000007D5D6C mov rsi, r8 ;va_list ;.text:00000000007D5D6F mov rbp, rdx ;format ;.text:00000000007D5D72 mov rdi, rcx ;socket push rdx mov rdx, r8 ; va_list call ServerPackets pop rdx mov rbp, rdx mov rdi, rcx jmp qword ptr [cRetSendV]SendVHook endpextern "C"{ // SendV customization void ServerPackets(CUserSocket *s, u8 *va_list) { switch(*va_list) { case 0x64: { ServerPacketHandlers::SystemMessage(s, va_list); break; } default: break; } }}void ServerPacketHandlers::SystemMessage(CUserSocket *s, PTR va_list){ int *msgId = (int*)(va_list + 8); int *itemId = (int*)(va_list + 32); //if(*msgId == 30 && *itemId >= 8600 && *itemId <= 8614) if(*msgId == 30 && *itemId == 1061) { s->GetUser()->UseItem(*itemId); }}fUseItem proc jmp qword ptr [cUseItem]fUseItem endpfGetFirstItemById proc add rcx, 5A0h ; CInventory jmp qword ptr [cGetFirstItemById]fGetFirstItemById endpENDCUser *CUserSocket::GetUser(){ return (CUser*)*(u64*)((u64)this + 0x158);}A:I:S:E:PE:DI:DE:BO=1.000000:1.000000:1.000000:5.000000:1.000000:0:0:1L:Y:X:H=0:0:0:0:0Crashed Thread[0].Server Up Time : Mon Dec 31 02:11:39 2007Current Time : Mon Dec 31 02:14:27 2007Elapsed Time : 0 days 0 hours 2 minutes 48 secondsIOBufferPool - 49995 / 50000, PendingWrite 0 bytes [0] =============== object reportuser[1/0], npc[0/0], item[8/0], usersocket[1]=============== npc server connection log no connect[(1556) 2007/12/31 02:14:27]: =======================an Access Violation in module L2Server.exe at 0033:004f9c80.start at 2007/12/31 02:11:36Read from location 00000000 caused an access violation.Registers:EAX=4552f9c0 CS=0033 EIP=004f9c80 EFLGS=00010216EBX=0e4466e8 SS=002b ESP=4552f778 EBP=424b47f4ECX=1d370084 DS=002b ESI=1d370084 FS=0053EDX=424b47f4 ES=002b EDI=41e8ede4 GS=002bBytes at CS:EIP:66 0f 7f 70 b8 66 0f 7f 78 a8 66 44 0f 7f 40 98 Stack dump:4552f778: 00062fe4 00000000 ffffffff 00000000 20b10f08 00000000 00000001 000000004552f798: 4552f8a0 00000000 00000000 00000000 4552f948 00000000 00000000 000000004552f7b8: 47783462 00000000 00000000 00000000 427b5d94 00000000 00000000 000000004552f7d8: 00625f79 00000000 45661190 00000000 427b5d94 00000000 00000000 000000004552f7f8: 427b5d94 00000000 00977ce0 00000000 00062ee0 00000000 02abd26c 000000004552f818: 4552f948 00000000 00000001 00000000 1a8e8480 00000000 00062fe4 000000004552f838: 4552f940 00000000 41e8ede4 00000000 773115fe 000007ff 00000000 000000004552f858: ffffffff 00000000 fffffffe ffffffff 47783463 00000000 00000000 000000004552f878: 41e8ee54 00000000 00000000 00000000 1a8e7e60 00000000 4552f8a0 000000004552f898: 00400000 00000000 000003e5 00000000 4b190884 00000000 1a8e7e60 00000000ver = Dec 16 2005_22:03:13GuardInfo : IOThread [0][359] (ahehe): void IOThread_common(void *arglist) -> static bool PickItem(CDBSocket *socket, const unsigned char *packet) -> void CSocket::Send(const char* format, ...) -> User::UseItem(CItem*) Lock Stack : IOThread [1][0] (good): void IOThread_common(void *arglist) Lock Stack : ListenThread [13][110] (good): void ListenThread_common() -> unsigned __stdcall WaitThread(void *) Lock Stack : MainThread [12][469] (good): Lock Stack : GuardInfo end [(1556) 2007/12/31 02:14:27]: *.\ioc.cpp:648(Tue Dec 13 02:52:40 2005) exception