Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 02.09.2011, 22:04   #1
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию [C++]Помогите хукнуть пакеты методами клиента

Всем привет!
Оч надеюсь на Вашу помощь)
В общем задача такова: Заменить клиентские ::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 чуть не понятно...
Подскажите плиз где его искать то?)
__________________
Все относительно...
ALF вне форума   Ответить с цитированием
Старый 02.09.2011, 23:17   #2
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

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

мб тебе вообще адднетворк нужен? или шифрацию запилить решил?)
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 02.09.2011, 23:20   #3
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

альф - да, он защиту делает.
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."

А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?

Последний раз редактировалось Breadfan, 02.09.2011 в 23:23.
Breadfan вне форума   Ответить с цитированием
Старый 02.09.2011, 23:29   #4
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

В общем вот что обнаружил )))
Код:
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
Чето такое....
__________________
Все относительно...

Последний раз редактировалось ALF, 02.09.2011 в 23:33.
ALF вне форума   Ответить с цитированием
Старый 03.09.2011, 13:12   #5
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

а не проще похучить клиентску шифровку\расшифровку ?
asm Код:
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, 03.09.2011 в 13:16.
destructor вне форума   Ответить с цитированием
Старый 03.09.2011, 13:34   #6
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

Цитата:
Сообщение от destructor Посмотреть сообщение
а не проще похучить клиентску шифровку\расшифровку ?
asm Код:
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 вне форума   Ответить с цитированием
Старый 04.09.2011, 16:59   #7
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

Цитата:
Сообщение от Breadfan Посмотреть сообщение
он защиту делает.
этоже создание вредоносных программ! банить таких надо!!!

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

    printf("указатель на пакет %p", buff);
    printf("указатель на ключик %p", pxorkey);
    printf("размер пакета %d",leng) ;
};
__________________
Шожиделать.. ботить хочется..

Последний раз редактировалось destructor, 04.09.2011 в 17:34.
destructor вне форума   Ответить с цитированием
За это сообщение destructor нажился спасибкой от:
Старый 18.12.2011, 22:49   #8
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

oO Поставил месседжи на те функции - походу клиент не вызывает их О_О.
(Goddess of Destruction)
__________________
Все относительно...
ALF вне форума   Ответить с цитированием
Старый 19.12.2011, 13:40   #9
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

криво поставил?
__________________
Шожиделать.. ботить хочется..
destructor вне форума   Ответить с цитированием
Старый 19.12.2011, 19:12   #10
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

Цитата:
Сообщение от destructor Посмотреть сообщение
криво поставил?
(FARPROC &)ClientEncrypt = (FARPROC)((DWORD)UNHandlerTable - 0x0C);
(FARPROC &)ClientDecrypt = (FARPROC)((DWORD)UNHandlerTable - 0x08);
SplaisingVMTF(ClientEncrypt, NewCrypt);
SplaisingVMTF(ClientDecrypt, NewCrypt);
__________________
Все относительно...
ALF вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:13.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!