Показать сообщение отдельно
Старый 04.02.2011, 07:09   #303
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

сейчас посмотрим, но судя по тому что чем меньше операций выполняется в хук-процедуре то ждать придется долго, часа 2

Добавлено через 2 минуты
ждём, но я думаю что не будет, или вылетит часов через 12)

хотя может проблема в мусоре в стеке или еще в чём-то, а тут мусор не создается вроде

Добавлено через 49 секунд
ведь при procedure AddNetworkQueue_hook(np:PNetworkPacket); stdcall; он удалит поинтер из стека при этом?

Добавлено через 16 минут
щас сделал чисто чтобы он писал FromServer и FromClient, посмотрим на сколько его хватит

Добавлено через 14 минут
пришел в место жуткого флуда, посмотрим... пока нашел утечку памяти из-за того что не блокировал пакет от клиента попросту не вызывая сендпакет, сейчас заменяю ид у пакета, посмотрим...

Добавлено через 9 минут
есть две новости, хорошая и плохая
хорошая: с хуком АддНетворкКверти все было впорядке
плохая: критовал сенд пакет

Добавлено через 2 минуты
так... по ходу...

Добавлено через 4 минуты
нашел! нашел мать вашу!

Добавлено через 7 минут
*ля, ну и привередливый сидекл, вызываю процедуру - крит, делаю ТОЖЕ самое в хук-процедуре - всё ок, ох мать... мб это из-за того что вызываемая функция возвращает булеан...

Добавлено через 3 минуты
походу делфи внатуре опять п*здит стек, придется запихивать параметры самому, и делать кал а не джамп...

Добавлено через 2 минуты
уф... щас сделаю, госпади, как ж всё просто, но главное... как странно вообще

Добавлено через 51 минуту
странно, вот этот код то работает то нет...

delphi Код:
procedure SendPacket_hook; stdcall begin asm mov tmp1, esp //записываю адрес первого параметра в стеке в tmp1 pushad //сохраняю регистры end; ParsingFromClient; //вызываю парсинг asm popad //возвращаю регистрам сохраненные значения jmp SendPacket_origAddr //прыгаю в оригинальный сенд пакет end; end;

иногда, при чтении адресов вот таким образом критует

delphi Код:
procedure ParsingFromClient; stdcall; var   format:string;   params:array [0..1023] of pointer; begin ShitPacket:=false; //дерьмо-пакет ложь tmp1:=pointer(cardinal(tmp1)+12); //прибавляю адрес так, чтобы это был адрес первого параметра Пакета, 12 - 4 на адрес возврата, 4 на указатель на нетворк хандлер или мб не на него), 4 на пчар формата пакета format:=string(Pointer(Cardinal(tmp1)-4)^); // записываю формат в стринг WriteLn('FromClient, id:'+inttohex(byte(tmp1^),2)+'; size:'+inttostr(length(format))); //записываю строку в кмд // скорее всего адреса не те, но адрес стека вроде записан верно... exit; end;

дестр, нид хелпь(

Добавлено через 38 минут
что?! какого худенького

if (length(format)>0) and (format[0]='c') then в этом проблема?!

Добавлено через 10 минут
да что за нахер..

Добавлено через 11 минут
всё, проблема 100% в этом
format:=pchar(pointer(Cardinal(tmp1)+8)^);

читаю из жопы, инфа 99%

Добавлено через 12 минут
и как это понимать

хук Queue включен, хук SendPacket выключен - нет критов

хук Queue выключен, хук SendPacket включен - нет критов

хук Queue включен, хук SendPacket включен - криты

вопрос как бы задается сам собой, какого х*я?!!! эти хуки как-то связанны??? ЧТО ПРОИСХОДИТ МВТЬ ВАШУ

Добавлено через 38 минут
*ЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЯЯЯЯЯЯЯЯЯЯЯДЬ, теперь еще и указатель на метод класса своего же не могу получить ай *ЛЯДЬ

Добавлено через 48 минут
так, щас сделал класс TAddNetworkQueueHook и че-то не работает...

Добавлено через 47 минут
*ля пздц с классами вообще ничерта не работает, ай Б**ДЬ

Добавлено через 6 минут
нахер я их делал... половину переменных пришлось делать глобальными, ай

Добавлено через 3 минуты
ну зато теперь стало легче тестить... вроде бы, как минимум удобнее хукать стало) AddNetworkQueue.SetHook и AddNetworkQueue.DelHook и тд)

Добавлено через 18 минут
всё, ошибка официально в AddNetworkQueue
__________________
Начало.

Последний раз редактировалось supernewbie, 04.02.2011 в 07:09. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием