Показать сообщение отдельно
Старый 17.04.2011, 14:50   #1
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
Стрелка [FASM] Хук DispatchNetworkQueue

И так всем привет!
Столкнулся с проблемой...
Если с сервер приходит пакет (например если на сервере сделать новый пакет, которого нету в клиенте по умолчанию) мы его анализируем и выполняем какой то код..
В общем что есть...
Структура NetworkPacket
по идеи так. (не знаю правильно или нет, так как до этого только рисованием в клиенте занимался)
Код:
struct NetworkPacket
	union
		id      db ?
		align_	dd ?
	ends
	cb 	dd ?
	data	db ?
ends
Так же по каком то примере от GoldFish на С++ был какой то хук
Я его попытался переделать в ФАСМ
Код:
proc DispatchNetworkQueueHook
	
		push esp+04h
		call [pDispNetwork]
		test eax,eax
	jz skip_
		mov edx,[esp+4]
		push eax
		push edx
		stdcall DrawPackets
		pop eax
	skip_:
		ret 4
endp
Что делать дальше?
Этот хук надо сплайсить с
Код:
szDispNetwork	db	'?DispatchNetworkQueue@UNetworkHandler@@UAEHPAPAUNetworkPacket@@@Z',0
...
..
	GetProcAddress([pEngine],szDispNetwork) 		; pDispNetwork:=GetProcAddress(pEngine,szDispNetwork);
	mov	dword [pDispNetwork], eax
Подскажите пожалуста алгоритм что за чем, и если можете примеры....
Заранее спасибо
__________________
Все относительно...

Последний раз редактировалось ALF, 17.04.2011 в 15:00.
ALF вне форума   Ответить с цитированием