Вход

Просмотр полной версии : [C++]Помогите хукнуть пакеты методами клиента


ALF
02.09.2011, 22:04
Всем привет!
Оч надеюсь на Вашу помощь)
В общем задача такова: Заменить клиентские ::SendPacket и ::RecvPacket
с SendPacket я разобрался..
asm
{
mov ecx, [pUNetworkHandler]
mov eax, [ecx+048h]
mov ecx, [eax]
mov eax, [ecx+06Ch] //GF
//mov eax, [ecx+068h] //IT
mov pSendPacket, eax
}
//SplaisingVMT((void *)pSendPacket,(void *)pSendPacket,SendPacketH);
//CreatNewConnect();

void __cdecl SendPacketH(void * Object, char * format, ...)
{
va_list arglist; // Переменные
va_start(arglist,format);

char c_Packet[8120];
C_PacketConstructor Packet;

Packet.SetPointer(&c_Packet[0]);

for (int len=0; *format; format++)
{
switch (*format)
{
case 'c': Packet.WriteC(va_arg(arglist,unsigned char)); len++; break;
case 'h': Packet.WriteH(va_arg(arglist,short));len++; break;
case 'd': Packet.WriteI(va_arg(arglist,int));len++; break;
case 'f': Packet.WriteF(va_arg(arglist,float)); len++; break;
case 'Q': Packet.WriteD(va_arg(arglist,__int64)); len++; break;
case 's': Packet.Writes(va_arg(arglist,char *));len++; break;
case 'S': Packet.WriteS(va_arg(arglist,wchar_t *));len++; break;
case 'b':
case 'x':
{

int cb=va_arg(arglist,int);
const char* p=va_arg(arglist,const char*);
Packet.WriteB(p,cb);
} break;
}
}

//EncryptPacket(c_Packet);
send(NewSocket, c_Packet, Packet.GetSize(), 0);
return;
};


А вот с RecvPacket чуть не понятно...
Подскажите плиз где его искать то?)

supernewbie
02.09.2011, 23:17
поищи где клиент вызывает рекв, там собсна только 1-2 места таких, потом найди смещение и прибавляй его вместо 6С

мб тебе вообще адднетворк нужен? или шифрацию запилить решил?)

Breadfan
02.09.2011, 23:20
альф - да, он защиту делает.

ALF
02.09.2011, 23:29
В общем вот что обнаружил )))
007964B0 . 56 PUSH ESI
007964B1 . 8B7424 08 MOV ESI,DWORD PTR SS:[ESP+8]
007964B5 . 53 PUSH EBX
007964B6 . 55 PUSH EBP
007964B7 . C705 F4FCAB00 >MOV DWORD PTR DS:[ABFCF4],1
007964C1 . 57 PUSH EDI
007964C2 > 8B86 58090100 MOV EAX,DWORD PTR DS:[ESI+10958]
007964C8 . 6A 64 PUSH 64
007964CA . 50 PUSH EAX
007964CB . E8 5EA5A703 CALL 04210A2E
007964D0 . 90 NOP
007964D1 . 3D 02010000 CMP EAX,102
007964D6 . 75 2D JNZ SHORT Engine.00796505
007964D8 . 833D F4FCAB00 >CMP DWORD PTR DS:[ABFCF4],0
007964DF .^75 E1 JNZ SHORT Engine.007964C2
007964E1 . 8B86 58090100 MOV EAX,DWORD PTR DS:[ESI+10958]
007964E7 . 85C0 TEST EAX,EAX
007964E9 . 5F POP EDI
007964EA . 5D POP EBP
007964EB . 5B POP EBX
007964EC . 74 11 JE SHORT Engine.007964FF
007964EE . 50 PUSH EAX
007964EF . E8 0C9BA803 CALL 04220000
007964F4 . 90 NOP
007964F5 . C786 58090100 >MOV DWORD PTR DS:[ESI+10958],0
007964FF > 5E POP ESI
00796500 .^E9 5A8DDCFF JMP Engine.0055F25F
00796505 > 8B8E 1C120100 MOV ECX,DWORD PTR DS:[ESI+1121C]
0079650B . 8B15 2CF7C200 MOV EDX,DWORD PTR DS:[C2F72C]
00796511 . 33ED XOR EBP,EBP
00796513 . 896C24 14 MOV DWORD PTR SS:[ESP+14],EBP
00796517 . 8D0C8A LEA ECX,DWORD PTR DS:[EDX+ECX*4]
0079651A . 0F31 RDTSC
0079651C . 2901 SUB DWORD PTR DS:[ECX],EAX
0079651E . 8B46 38 MOV EAX,DWORD PTR DS:[ESI+38]
00796521 . 55 PUSH EBP ; /Flags
00796522 . 68 00000100 PUSH 10000 ; |BufSize = 10000 (65536.)
00796527 . 68 309AA700 PUSH Engine.00A79A30 ; |Buffer = Engine.00A79A30
0079652C . 50 PUSH EAX ; |Socket
0079652D . 90 NOP ; |
0079652E . E8 3C023071 CALL ws2_32.recv ; \recv
00796533 . 8B8E 1C120100 MOV ECX,DWORD PTR DS:[ESI+1121C]
00796539 . 8B15 2CF7C200 MOV EDX,DWORD PTR DS:[C2F72C]
0079653F . 8BF8 MOV EDI,EAX
00796541 . 8D0C8A LEA ECX,DWORD PTR DS:[EDX+ECX*4]
00796544 . 0F31 RDTSC
00796546 . 83C0 F4 ADD EAX,-0C
00796549 . 0101 ADD DWORD PTR DS:[ECX],EAX
0079654B . 3BFD CMP EDI,EBP
0079654D .^0F8E 6FFFFFFF JLE Engine.007964C2
00796553 . EB 0B JMP SHORT Engine.00796560
00796555 . 8DA424 0000000>LEA ESP,DWORD PTR SS:[ESP]
0079655C . 8D6424 00 LEA ESP,DWORD PTR SS:[ESP]
00796560 > 8B86 C01F0100 MOV EAX,DWORD PTR DS:[ESI+11FC0]
00796566 . 83E8 00 SUB EAX,0 ; Switch (cases 0..1)
00796569 . 0F84 BD000000 JE Engine.0079662C
0079656F . 83E8 01 SUB EAX,1
00796572 . 0F85 64010000 JNZ Engine.007966DC
00796578 . 8B86 1C120100 MOV EAX,DWORD PTR DS:[ESI+1121C] ; Case 1 of switch 00796566
0079657E . 8B0D 2CF7C200 MOV ECX,DWORD PTR DS:[C2F72C]
00796584 . 8D0C81 LEA ECX,DWORD PTR DS:[ECX+EAX*4]
00796587 . 0F31 RDTSC
00796589 . 2901 SUB DWORD PTR DS:[ECX],EAX
0079658B . 8B8E BC1F0100 MOV ECX,DWORD PTR DS:[ESI+11FBC]
00796591 . 8B86 B81F0100 MOV EAX,DWORD PTR DS:[ESI+11FB8]
00796597 . 2BC1 SUB EAX,ECX
00796599 . 3BC7 CMP EAX,EDI
0079659B . 7C 02 JL SHORT Engine.0079659F
0079659D . 8BC7 MOV EAX,EDI
0079659F > 50 PUSH EAX
007965A0 . 8D95 309AA700 LEA EDX,DWORD PTR SS:[EBP+A79A30]
007965A6 . 52 PUSH EDX
007965A7 . 8D8431 5008000>LEA EAX,DWORD PTR DS:[ECX+ESI+850]
007965AE . 50 PUSH EAX
007965AF . E8 7CBBDCFF CALL Engine.00562130
007965B4 . 8B8E B81F0100 MOV ECX,DWORD PTR DS:[ESI+11FB8]
007965BA . 2B8E BC1F0100 SUB ECX,DWORD PTR DS:[ESI+11FBC]
007965C0 . 83C4 0C ADD ESP,0C
007965C3 . 3BCF CMP ECX,EDI
007965C5 . 7C 02 JL SHORT Engine.007965C9
007965C7 . 8BCF MOV ECX,EDI
007965C9 > 8B96 1C120100 MOV EDX,DWORD PTR DS:[ESI+1121C]
007965CF . A1 2CF7C200 MOV EAX,DWORD PTR DS:[C2F72C]
007965D4 . 2BF9 SUB EDI,ECX
007965D6 . 03E9 ADD EBP,ECX
007965D8 . 8D1C90 LEA EBX,DWORD PTR DS:[EAX+EDX*4]
007965DB . 0F31 RDTSC
007965DD . 83C0 F4 ADD EAX,-0C
007965E0 . 0103 ADD DWORD PTR DS:[EBX],EAX
007965E2 . 85C9 TEST ECX,ECX
007965E4 . 7E 0A JLE SHORT Engine.007965F0
007965E6 . 018E BC1F0100 ADD DWORD PTR DS:[ESI+11FBC],ECX
007965EC . 014C24 14 ADD DWORD PTR SS:[ESP+14],ECX
007965F0 > 8B86 B81F0100 MOV EAX,DWORD PTR DS:[ESI+11FB8]
007965F6 . 3986 BC1F0100 CMP DWORD PTR DS:[ESI+11FBC],EAX
007965FC . 0F85 DA000000 JNZ Engine.007966DC
00796602 . 8B16 MOV EDX,DWORD PTR DS:[ESI]
00796604 . 8B52 78 MOV EDX,DWORD PTR DS:[EDX+78]
00796607 . 50 PUSH EAX
00796608 . 8D86 50080000 LEA EAX,DWORD PTR DS:[ESI+850]
0079660E . 50 PUSH EAX
0079660F . 8BCE MOV ECX,ESI
00796611 . FFD2 CALL EDX
00796613 . 33C0 XOR EAX,EAX
00796615 . 8986 B81F0100 MOV DWORD PTR DS:[ESI+11FB8],EAX
0079661B . 8986 BC1F0100 MOV DWORD PTR DS:[ESI+11FBC],EAX
00796621 . 8986 C01F0100 MOV DWORD PTR DS:[ESI+11FC0],EAX
00796627 . E9 B0000000 JMP Engine.007966DC
0079662C > 8B86 1C120100 MOV EAX,DWORD PTR DS:[ESI+1121C] ; Case 0 of switch 00796566
00796632 . 8B0D 2CF7C200 MOV ECX,DWORD PTR DS:[C2F72C]
00796638 . 8D0C81 LEA ECX,DWORD PTR DS:[ECX+EAX*4]
0079663B . 0F31 RDTSC
0079663D . 2901 SUB DWORD PTR DS:[ECX],EAX
0079663F . 8B8E BC1F0100 MOV ECX,DWORD PTR DS:[ESI+11FBC]
00796645 . B8 02000000 MOV EAX,2
0079664A . 2BC1 SUB EAX,ECX
0079664C . 3BC7 CMP EAX,EDI
0079664E . 7C 02 JL SHORT Engine.00796652
00796650 . 8BC7 MOV EAX,EDI
00796652 > 50 PUSH EAX
00796653 . 8D95 309AA700 LEA EDX,DWORD PTR SS:[EBP+A79A30]
00796659 . 52 PUSH EDX
0079665A . 8D8431 5008000>LEA EAX,DWORD PTR DS:[ECX+ESI+850]
00796661 . 50 PUSH EAX
00796662 . E8 C9BADCFF CALL Engine.00562130
00796667 . B9 02000000 MOV ECX,2
0079666C . 2B8E BC1F0100 SUB ECX,DWORD PTR DS:[ESI+11FBC]
00796672 . 83C4 0C ADD ESP,0C
00796675 . 3BCF CMP ECX,EDI
00796677 . 7C 02 JL SHORT Engine.0079667B
00796679 . 8BCF MOV ECX,EDI
0079667B > 8B96 1C120100 MOV EDX,DWORD PTR DS:[ESI+1121C]
00796681 . A1 2CF7C200 MOV EAX,DWORD PTR DS:[C2F72C]
00796686 . 2BF9 SUB EDI,ECX
00796688 . 03E9 ADD EBP,ECX
0079668A . 8D1C90 LEA EBX,DWORD PTR DS:[EAX+EDX*4]
0079668D . 0F31 RDTSC
0079668F . 83C0 F4 ADD EAX,-0C
00796692 . 0103 ADD DWORD PTR DS:[EBX],EAX
00796694 . 85C9 TEST ECX,ECX
00796696 . 7E 0A JLE SHORT Engine.007966A2
00796698 . 018E BC1F0100 ADD DWORD PTR DS:[ESI+11FBC],ECX
0079669E . 014C24 14 ADD DWORD PTR SS:[ESP+14],ECX
007966A2 > B8 02000000 MOV EAX,2
007966A7 . 3986 BC1F0100 CMP DWORD PTR DS:[ESI+11FBC],EAX
007966AD . 75 2D JNZ SHORT Engine.007966DC
007966AF . 66:8B8E 500800>MOV CX,WORD PTR DS:[ESI+850]
007966B6 . 66:898E B81F01>MOV WORD PTR DS:[ESI+11FB8],CX
007966BD . 3986 B81F0100 CMP DWORD PTR DS:[ESI+11FB8],EAX
007966C3 . 7D 0D JGE SHORT Engine.007966D2
007966C5 . 68 E0618900 PUSH Engine.008961E0 ; UNICODE "packet size is under 2 something wrong!"
007966CA . E8 21BEFFFF CALL Engine.007924F0
007966CF . 83C4 04 ADD ESP,4
007966D2 > C786 C01F0100 >MOV DWORD PTR DS:[ESI+11FC0],1
007966DC > 85FF TEST EDI,EDI ; Default case of switch 00796566
007966DE .^0F8F 7CFEFFFF JG Engine.00796560
007966E4 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14]
007966E8 . 0186 70090100 ADD DWORD PTR DS:[ESI+10970],EAX
007966EE . 0186 74090100 ADD DWORD PTR DS:[ESI+10974],EAX
007966F4 .^E9 C9FDFFFF JMP Engine.007964C2


Что интересно - Функция в адресе 007964B0 никогда не вызывается)
а вызывается скорее всего каким то джампом я хз )
Но так и не нашел то что хотел)
Так же клиент постоянно тикает эту функцию, определил я это поставив бряк на
007964D1 . 3D 02010000 CMP EAX,102
Пред ней я так понял и идет проверка "тик это или нет" если нет - значит пакет, значит вызываем Recv
Чето такое....

destructor
03.09.2011, 13:12
а не проще похучить клиентску шифровку\расшифровку ?
Engine.dll:20522A50 dd offset unk_203DA2F0
Engine.dll:20522A54 dd offset loc_203DA610
Engine.dll:20522A58 dd offset sub_203DA590 ; зашифровываем исходящий пакет
Engine.dll:20522A5C dd offset sub_203DA500 ; расшифровываем входящий пакет
Engine.dll:20522A60 dd offset unk_205948B4
Engine.dll:20522A64 engine_??_7UNetworkHandler@@6BUObject@@@ ; этот адрес экспортируется
Engine.dll:20522A68 dd offset off_201124E2
Engine.dll:20522A6C dd offset unk_20112530
Engine.dll:20522A70 dd offset unk_200947D0

ALF
03.09.2011, 13:34
а не проще похучить клиентску шифровку\расшифровку ?
Engine.dll:20522A50 dd offset unk_203DA2F0
Engine.dll:20522A54 dd offset loc_203DA610
Engine.dll:20522A58 dd offset sub_203DA590 ; зашифровываем исходящий пакет
Engine.dll:20522A5C dd offset sub_203DA500 ; расшифровываем входящий пакет
Engine.dll:20522A60 dd offset unk_205948B4
Engine.dll:20522A64 engine_??_7UNetworkHandler@@6BUObject@@@ ; этот адрес экспортируется
Engine.dll:20522A68 dd offset off_201124E2
Engine.dll:20522A6C dd offset unk_20112530
Engine.dll:20522A70 dd offset unk_200947D0


О_о идея не плохая)))
А не подскажите какие аргументы идут при вызове этих функций?

destructor
04.09.2011, 16:59
он защиту делает.
этоже создание вредоносных программ! банить таких надо!!!

А не подскажите какие аргументы идут при вызове этих функций?держи:)
void __stdcall function(char * buff, int64 * pxorkey, int leng)
{
int * pobj; __asm mov pobj, ecx; //опционально

printf("указатель на пакет %p", buff);
printf("указатель на ключик %p", pxorkey);
printf("размер пакета %d",leng) ;
};

ALF
18.12.2011, 22:49
oO Поставил месседжи на те функции - походу клиент не вызывает их О_О.
(Goddess of Destruction)

destructor
19.12.2011, 13:40
криво поставил?

ALF
19.12.2011, 19:12
криво поставил?

(FARPROC &)ClientEncrypt = (FARPROC)((DWORD)UNHandlerTable - 0x0C);
(FARPROC &)ClientDecrypt = (FARPROC)((DWORD)UNHandlerTable - 0x08);
SplaisingVMTF(ClientEncrypt, NewCrypt);
SplaisingVMTF(ClientDecrypt, NewCrypt);

alexteam
19.12.2011, 19:35
SplaisingVMTF(ClientEncrypt, NewCrypt);
SplaisingVMTF(ClientDecrypt, NewCrypt);
э.. и чо это значит ?

ALF
19.12.2011, 20:24
э.. и чо это значит ?

Это просто функции, в которых месседжБокс)

DWORD WINAPI InitThread(LPVOID lpParameter)
{
//HWID();
hEngine = GetModuleHandle("engine.dll");
UNHandlerTable = GetProcAddress(hEngine, nUNHandlerTable);

//GameGuardReplay = GetProcAddress(hEngine, nGameGuardReplay);

(FARPROC &)UNetWorkHandler_Init = GetProcAddress(hEngine, nUNHandlerInit);
(FARPROC &)DispatchNetworkQueue = GetProcAddress(hEngine, nDispatchNetworkQueue);

pDispatchNetworkQueue = (int)DispatchNetworkQueue;
SplaisingVMT(UNHandlerTable,UNetWorkHandler_Init,U NHandler_Init);

//SplaisingVMT(UNHandlerTable,GameGuardReplay,GameGu ardReplayHook);

while (GetModuleHandleA("fire.dll") == 0)
{
Sleep(100);
}

(FARPROC &)SendPacket = (FARPROC)(DWORD *)(**(DWORD **)(pUNetworkHandler + 0x48) + 0x6C);
(FARPROC &)ClientEncrypt = (FARPROC)((DWORD)UNHandlerTable - 0x0C);
(FARPROC &)ClientDecrypt = (FARPROC)((DWORD)UNHandlerTable - 0x08);
SplaisingVMTF(ClientEncrypt, NewCrypt);
SplaisingVMTF(ClientDecrypt, NewCrypt);


return 0;
};


void __stdcall NewCrypt(char * buff, __int64 * Key, int size)
{
MessageBox(0,"New Crypt","New Ctypt Is", MB_OK);
};


DWORD oldprotect;
/************************************************** ************************************************** **
* Хук таблицы VMT
************************************************** ************************************************** **/
void __stdcall SplaisingVMT(void * Table, void * Method, void * Hook)
{
asm
{
mov ecx,-1
cld
mov edi,Table
mov eax,Method
repnz scasd
push Hook
pop edi-4
}
return;
};

void __stdcall SplaisingVMTF(void * Method, void * Hook)
{
int * pMethod = *(int**)(Method);

if(!VirtualProtect(pMethod,10,PAGE_EXECUTE_READWRI TE,&oldprotect))
{
MessageBox(0,"SplaisingVMTF", "Error", MB_OK);
return;
}

pMethod = (int*)Hook;
return;
};

/************************************************** ************************************************** **
* Сплайсинг типа CALL
************************************************** ************************************************** **/
void __stdcall SplaisingCall(void * Method, void * Hook)
{


if(!VirtualProtect(Method,10,PAGE_EXECUTE_READWRIT E,&oldprotect))
{
MessageBox(0,"SplaisingCall", "Error", MB_OK);
return;
}

asm
{
mov eax, [Method]
mov ebx, eax
mov edx, [Hook]
add ebx, 0x05
sub edx, ebx
mov byte [eax], 0xE8
mov dword [eax+1], edx
}
return;
};


Добавлено через 43 минуты
ВСё, проблема решена)
Тему можно закрывать)

destructor
19.12.2011, 22:07
ВСё, проблема решена)ну хоть отписалбы что там было

ALF
20.12.2011, 17:46
Была неправильная функция.
Вот исправил)

void __stdcall SplaisingVMTF(void * Method, void * Hook)
{
if(!VirtualProtect(*(void **)Method,10,PAGE_EXECUTE_READWRITE,&oldprotect))
{
MessageBox(0,"SplaisingVMTF", "Error", MB_OK);
return;
}

*(void **)Method = Hook;
return;
};

[ Mifesto ]
21.12.2012, 13:37
не хочется плодить темы, спрошу тут.

вот получается есть функция поиска адреса SendPacket:

unsigned int GetSendPacketAddress(void)
{
HMODULE hEngine = LoadLibraryA("engine.dll");

unsigned int startVMT = (unsigned int) hEngine + 0x51F658;
unsigned int AddNetworkQueue = (unsigned int) GetProcAddress(hEngine, "?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkPa cket@@@Z");
unsigned int currVMT = startVMT;

if (AddNetworkQueue == 0)
return 0;

while (true)
{
if (*(unsigned int*) currVMT == AddNetworkQueue)
return *(unsigned int*) (currVMT - 0xA4);

currVMT++;
if (currVMT - startVMT > 10000)
return 0;
}

return 0;
}


но выше 268 протокола она не работает, попытался сделать так:

unsigned int GetSendPacketAddress(void)
{
HMODULE hEngine = LoadLibraryA("engine.dll");
unsigned int UNHandlerTable = (unsigned int)GetProcAddress(hEngine, "??_7UNetworkHandler@@6BUObject@@@");
return (UNHandlerTable + 0x48) + 0x6C;
}


с этим кодом хук становится, но как только открывается окно то оно сразу крашится:

2013.1.7 22:52:30
OS : Windows XP 5.1 (Build: 2600)
CPU : GenuineIntel Intel(R) Celeron(R) CPU E3300 @ 2.50GHz @ 2506 MHz 2047MB RAM
Video : Radeon X1300XT/X1600Pro/X1650 Series (6925)
PosCode : LS1(273) 0:0:0 2/0 [288]

General protection fault!

History: ViewportLock1 <- Precaching <- UGameEngine::Draw <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop


ткнет пальцем кто на ошибку?

Sinn3r
28.02.2013, 02:26
Тут был глупый вопрос, который разрешился сам собой

Sinn3r
01.03.2013, 21:49
Есть хук на SendPacket
выглядит это дело примерно так
__declspec( naked ) void _cdecl jmpSendPacket(void* obj, char* format,...)
{
_asm jmp lpSendPacket_Original
}

void _cdecl SendPacket_Hook(void* obj, char* format, ...)
{
if(lpSendPacketObject == 0)
lpSendPacketObject = obj;
va_list args;
va_start(args, format);
printf("Format: %s\n", format);
SendPacket_Detour->Remove();
jmpSendPacket(obj, format, args);
SendPacket_Detour->Apply();
}
хук срабатывает, все классно, но, пакет не доходит. Если ставить хук после коннекта к гейм серверу то вылетает из за ошибки подключения

Добавлено через 54 секунды
Предпалагаю что это из за неправильной пердачи параметров..

Deadly
02.03.2013, 00:11
Если не сложно обьясните как вы дизасемблируете код, у меня например вм протектор мозг вынес я так и не смог его обойти, и вообще реально запустить под отладкой хоть какойто клиент л2?

Sinn3r
02.03.2013, 00:44
Deadly, хотелось бы сказать, что как все, но у меня с этим такие же проблемы. Использую встроенный в чит енжин дебагер, функционал скудный, но это лучше чем ничего

Elecktron
03.03.2013, 02:15
olly dbg с плагинами вполне успешно справляется с темидой и винлицензом. тут (http://coderx.ru/showthread.php?t=9439) два варианта решения.

а send проще "захардкодить", если не требуется гибкая работа на разных версиях клиента.
то есть если это делается для конкретного сервера и под конкретный клиент.

Sinn3r
03.03.2013, 08:41
Elecktron, так проблема же не найти сенд, а правильно вызвать.
Вот здесь
void _cdecl SendPacket_Hook(void* obj, char* format, ...)
{
if(lpSendPacketObject == 0)
lpSendPacketObject = obj;

va_list args;
va_start(args, format);
printf("Format: %s\n", format);
SendPacket_Detour->Remove(); //Снял хук
SendPacket(obj, format, args); //<-- волнующий меня момент
SendPacket_Detour->Apply(); //Поставил хук
}
Собственно, а что же конкретно находится в args? На попытку вызвать оригинальную функцию сервер отвечает мне дисконектом, значит я ему передаю какую-то фигню.

А какие плагины? У меня оля с сод/фантом в лучшем случае просто зависает, в худшем краш

Добавлено через 5 часов 42 минуты
Экспериментальным путем выяснил, что все параметры в порядке, тогда почему функция отказывается работать.

Зашел на сервер, выбрал чара, после этого активировал хук, начал клацать скилы и пытаться ходить. В логе видно, что хук срабатывает, в args лежит указатель на правильный пакет, но никаких действий не происходит

Morfik
03.03.2013, 12:57
Sinn3r, а где запихивание в ecx указателя на объект unetworkhandle перед вызовом сенда? (правд могу и ошибаться что sendpacket это метод класса unetworkhandle, не баловался с ним)

Sinn3r
03.03.2013, 14:47
Morfik, вроде-бы не надо, объект идет первым параметром.
Кстати, если поставить хук в vtable, а вызывать оригинал джампом непосредственно из того места куда указывала таблица, то все вроде работает, но сцуко, это кошмарная реализация

Morfik
03.03.2013, 15:06
Sinn3r, это у тебя да?

__declspec( naked ) void _cdecl jmpSendPacket(void* obj, char* format,...)
{
_asm jmp lpSendPacket_Original
}

cdecl
Основной способ вызова для Си (отсюда название, сокращение от «c-declaration»). Аргументы передаются через стек, справа налево. Очистку стека производит вызывающая программа. Это основной способ вызова функций с переменным числом аргументов (например, printf(…))
то есть твой объект идет параметром - передается в стек, а должен быть передан в регистр ecx

могу и ошибаться, но поменять 2 строки с ручным запихиваетм объекта в ecx не долго

Sinn3r
03.03.2013, 22:50
Сделал так
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

Morfik
03.03.2013, 23:01
Sinn3r, методы классов как раз таки и должны быть thiscall... как бы

Sinn3r
03.03.2013, 23:03
Так выглядит лог пакетов в игре
http://puu.sh/2btBj
но при этом никаких действий не совершается, хук срабатывает, но оригинал не вызывается

Добавлено через 1 минуту
Morfik, осмелюсь предположить, что это функция, а не метод
Этот метод передает формат пакета и его данные в неэкспортируемую функцию отправки пакета
void __cdecl SendPacket(UNetworkHandler*,char*,...) .

Sinn3r
04.03.2013, 12:41
за идею c UNetworkHandler.Init спасибо, а то я как дурак хукал адднетворк что бы получить объект.
Остальное уже сделано, и к моей проблеме не относится...вроде бы

Deadly
04.03.2013, 14:15
такой вопрос можно ли каким то образом послать пакет 0000000000000 ????
зы скиньте что-ли чудо ольку которая вм протек обходит(у меня ни с оли адвансер ни с фантомом ни с чем не обходит даже ис дебагер персент в вм протекте хе хе))) +

кс если получить послать пакет 0000000000 то можно снять любую защиту в 2 щета, изначально послать ключик 00000000 и пакет 00000000 и тогда получим чистый ключ которым все шифруется не снимая вм протект и прочую лабуду сейчас над этим и работаю

[ Mifesto ]
12.04.2015, 07:57
Ну что же, апнем старую тему, подскажет кто как найти адрес функций Encrypt\Decrypt в клиенте Епизод? Да и вообще как их можно найти через туже ольку... Сенд пакет можно найти вручную в любом из Request пакетов, я всегда ищу в RequestAutoSoulShot вроде в eax(точно не помню), а как можно найти крипт и декрпт?

ScythLab
14.04.2015, 21:11
Не могу дать 100% гарантии, что метод рабочий.
Метод SendPacket относится к классу CClientSocket, тебе нужно найти VMT данного класса. В ней находишь ссылку на SendPacket, 4-ый метод после SendPacket отвечает за шифрование, следующий (5-ый) метод вроде тоже как-то связан с шифрованием.
Но это в любом случае теория, и нужно проверять на практике.

[ Mifesto ]
17.04.2015, 23:26
Не могу дать 100% гарантии, что метод рабочий.
Метод SendPacket относится к классу CClientSocket, тебе нужно найти VMT данного класса. В ней находишь ссылку на SendPacket, 4-ый метод после SendPacket отвечает за шифрование, следующий (5-ый) метод вроде тоже как-то связан с шифрованием.
Но это в любом случае теория, и нужно проверять на практике.

Спасибо, но 4 и 5 методы в 558+ протоколе уже не те, их перенесли далеко вверх.

FrankJScott
19.06.2025, 19:18
For the person talking about worldwide transportation, shuttle to atlanta, start a shuttle service, van service to airport, transportation technology companies, the transport manager, van service san francisco, direct transportation, transportation specialists, logistics transportation services, I highly recommend this this contact form about event transportation url (https://stellarventures.info/20-excellent-suggestions-for-picking-employee-shuttle-sites/) or transport product, event logistics services, airport transfer van, airport pickup atlanta, cost of shuttle to airport, cost for ride to airport, car service shuttle, reliable transportation, bus transportation to airport, transportation route optimization, on top of this had me going on event transportation site (https://astraunited.info/20-good-ways-for-choosing-event-transportation-sites/) which is worth considering with simplify transport, airporter bus, digitalization in transportation, shuttle bus service atlanta, transportation services group, large group airport shuttle, new york transportation services, transportation for 8 people, all state transportation, shuttle bus transfers, alongside all this useful event transportation site (https://creativethread.online/20-recommended-facts-for-picking-employee-shuttle-websites/) which is also great. Also, have a look at this high rated event transportation url (https://blackisgenius.com/20-best-pieces-of-advice-for-picking-employee-shuttle-websites/) not forgetting sites such as transportation numbers, shared van, superior shuttle, miami ground transportation, airport shuttle companies near me, van car service, go to transportation, business plan for transportation company, dallas airport shuttle bus, t & t transportation, which is worth considering with this great event transportation details (https://conceptcommunitys.com/20-best-suggestions-for-picking-employee-shuttle-websites/) as well as local shuttle service, reliable transportation service, vehicle shuttle service, connect shuttles, team logistics company, get the facts on (https://damienujrw23679.nizarblog.com) not forgetting sites such as big t transport, airport transfer san francisco, logistics made simple, transportation suppliers, a line transportation, for good measure. Check more @ Excellent Kids Bed Tips (http://hebforum.apnea.co.il/viewtopic.php?p=15240#15240) 0c9ac28

FrankJScott
25.06.2025, 21:06
In reply to the guy inquiring about tesla performance model 3, inside the tesla model y, tesla yoke accessories, tesla console screen, tesla model y back seat screen, things to know about tesla model y, tesla dashboard model y, tesla model y canada, updated tesla model 3, tesla car console, I highly suggest this new Tesla assessory details (https://aglocodirectory.com/listings13238317/tesla-y-seat-and-difference-between-tesla-model-3-and-y) or model y interior tesla, model y must have accessories, price of a new tesla model 3, center console tesla model 3, tesla model y usd, 3 highland, tesla magsafe phone mount, carbon fiber model 3, tesla upgrades model y, price on tesla model 3, and don't forget this link about Tesla assessory details (https://directory-daddy.com/listings13233757/tesla-model-3-s-and-buy-tesla-model-3) and don't forget tesla model 3 wood, tesla mobile holder, compare model y to model 3, model 3 performance badge, buy new tesla model 3, model i tesla, tesla your, things to know about tesla model y, tesla model 3 performance steering wheel, tesla model 3 is it worth it, alongside all this what do you think on Tesla assessory info (https://evan5z84gcy6.wikinarration.com/user) which is also great. Also, have a look at this go here on Tesla assessory site (https://directoryrelt.com/listings807472/tesla-s-newest-car-and-tesla-model-y-performance-interior) alongside all tesla model 3 msrp usa, tesla model y usd, tesla steering wheel tray, yoke for model y, model 3 s, the tesla 3, tesla phone mount model y, accessories tesla model y, tesla y storage, tesla model y center console cover, and don't forget this these details about Tesla assessory url (https://sweet-directory.com/listings13228752/model-y-center-console-and-model-y-highland) together with tesla model 3 wood, tesla model 3 2024, buy tesla model y performance, tesla model y from behind, tesla sport steering wheel, great site on (https://dantehfat98876.targetblogs.com) alongside all tesla model 3 steering wheel wrap, model 3 phone holder, tesla model 3 near me for sale, newest tesla, model of a tesla, for good measure. Check more @ Useful Trust Administration Near Me Guide (http://otwockie-mamusie.phorum.pl/viewtopic.php?p=773193#773193) 7f130c9

FrankJScott
30.06.2025, 18:07
To the lady inquiring about memainkan permainan, situs togel dan slot terbesar, slot online slot, kumpulan situs slot terbaik, situs online, judi slot online adalah, game slot terbaik, situs hk online terpercaya, game slot adalah, nomor togel sgp hari ini, I highly recommend this excellent asian2bet login details (https://nebula-directory.com/listings780655/situs-judi-resmi-dan-slot-casino) or situs togel slot 88, daftar situs togel terbesar, judi slot pg, data keluaran sgp 2022, situs judi game slot terbaik, keluar togel sgp hari ini, live draw sgp hari ini, game yang lain, games slot, judi slot game, and don't forget this advice on asian2bet details (https://bookmarksden.com/story19972990/slot-pragmatic-dan-slot-online-terbaik) on top of situs judi online terlengkap, game slot jackpot terbesar, judi online terlengkap, slot game baru, buat slot, website slot terbaik, keluaran angka sgp hari ini, situs resmi judi togel, link game judi, akun judi slot terpercaya, not to mention this her explanation about tajir4d login info (http://roed.xhost.ro/phpBB2/profile.php?mode=viewprofile&u=144678) which is also great. Also, have a look at this learn more on tajir4d forum (https://bookmarksbay.com/story19876434/deposit-dana-dan-situs-judi-bola-terpercaya) on top of situs togel terpercaya indonesia, situs pragmatic slot, slot bandar togel, online togel terpercaya, pengeluaran togel singapura, angka keluar sgp tercepat, angka nomor togel hari ini, situs judi slot terbesar, provider slot, situs judi online terbaik, not forgetting sites such as this directory about asian2bet login details (https://aaron2u25qwx2.blogmazing.com/profile) together with keluaran togel sidney, angka pengeluaran singapura hari ini, slot indonesia, link to slot, judi bola, at yahoo about (https://mylesoakt53074.canariblogs.com) which is worth considering with situs togel terbaik di indonesia, situs togel aman dan terpercaya, keluar angka togel, main judi slot online, jenis judi slot, for good measure. Check more @ Updated Bunk Bed Site (https://www.kjwzd.com/forum.php?mod=viewthread&tid=7166&pid=10470&page=1&extra=page%3D1#pid10470) c285688

Добавлено через 12 часов 31 минуту
To the man inquiring about situs game slot terpercaya, jenis judi slot, keluar angka singapura, permainan ini, judi slot terpercaya, permainan judi slot online, situs togel terpercaya indonesia, permainan judi slot, situs togel online resmi terpercaya, bandar togel dan slot, angka togel hongkong yang keluar hari ini, togel slot, I recommend this website (https://supertajir4d.com/) for daftar situs togel terbesar, no togel sdy hari ini, situs bandar togel terbesar, situs judi yang terpercaya, angka keluaran hk, data pengeluaran sdy, web judi slot terpercaya, web judi, pg slot online, pragmatic play situs resmi, website judi slot online, angka togel yg keluar hari ini, also.
In response to the guy asking about mudah menang, pragmatic play situs resmi, slot online terbaik dan terpercaya, situs permainan judi slot online pragmatic terbesar, permainan slot terbaik, keluaran angka jitu sgp hari ini, agen slot terbesar di indonesia, situs togel terpercaya dan aman, agen online terpercaya, judi toto, mudah menang slot, prediksi angka togel singapura hari ini, I suggest this https://linkasian2bet.com/ recommendations (https://linkasian2bet.com/) for slot judi adalah, situs judi slot resmi, agen resmi togel terpercaya, data togel link, link bandar togel, login judi slot, judi mesin slot online, agen slot online terpercaya, slot pg soft terbaru, joker123 slot online, live result sgp hari ini tercepat dan akurat, angka bocoran togel singapura hari ini, also. See More Best AI Stock Analysis Platform Guide (https://hn.duolachaoju.com/forum.php?mod=viewthread&tid=19593&pid=25602&page=1&extra=page%3D1#pid25602) 87f130c

FrankJScott
03.07.2025, 18:52
For the lady asking about stock analysis best app, open ai stock market, top ai stocks to invest in, stocks of artificial intelligence, gpt chat stock, free stock software, learn about stock trading, stocks for ai companies, ai for stock investing, artificial intelligence for investment, I highly recommend this updated AI stock picking platform advice (https://hustlecore.xyz/20-fantabulous-ideas-for-deciding-on-ai-stock-psychoanalysis-sites/) or best stock forecast website, share analysis software, trading ai software, best stock picking tools, best stock trading information, most promising ai stocks, best sites for stock, best ai stock prediction, best ai trader, best share trading software, which is worth considering with this useful AI stock picking platform site (https://megabizgroup.online/20-best-pieces-of-advice-for-choosing-ai-stock-prediction-sites/) on top of ai and day trading, stock financial analysis, stock programs, incite stock, investing in a stock, best stock analyzer, artificial intelligence shares, stock picking ai, best stock analysis app free, ai stock prediction software, as well as this he has a good point for AI stock picking platform details (https://codeflick.site/20-new-ways-for-deciding-on-ai-stock-depth-psychology-sites/) which is also great. Also, have a look at this high rated AI stock trading platform link (https://therootartstudio.com/2025/06/26/20-best-tips-for-picking-ai-stock-prediction-websites/) on top of trading stock market, ai stock ticker, stock for openai, stock market analytics tools, invest in chat gpt stock, ai online trading, fundamentals of share market, ai trading apps, stock invest website, best stock research software, alongside all this home page about AI stock analysis platform blog (https://smlxtextile.com/20-fantabulous-pieces-of-advice-for-decision-making-on-ai-stock-analysis-websites/) together with top ten ai stocks, ai forecast stock, bot stock trading, ai trading software free, ai and stock market, more tips here for (https://juliusxtmb70467.wikifordummies.com) bearing in mind stock investment software, stock price prediction software, open ai stock symbol, ticker ai, best sites for stock research, for good measure. Check more @ New Cybersecurity Company In UAE Guide (https://www.forum-habitat.com/viewtopic.php?f=2&t=872&p=35190#p35190) 36_2e9e