ПолезностиИсключительно для полезных тем из других разделов. Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.
я симитировал механизм клиента. В хуке адднетворка я буферизирую пакет в свою очередь. Поток проги ее разбирает и диспетчирует по аналогии с диспатчнетгоркквеи.
хех, над будет посмотреть, а то всё времени нет, эти лейм гвард какие проверки только не придумают, по факту наверное придется жить в engine.dll чтобы что-то делать вообще)
// если у нас для этого пакета имеетса обработчик то выполняемifassigned(phTable[ppacket.id])thenif(ppacket.id<>$1F)thenbegin// копируем пакет и его содержимое в буффер
ntb:=@ntbuffer;
pdata:=pointer(DWORD(ntb)+sizeof(TNetworkPacket));
ntb^:=ppacket^;
CopyMemory(pdata,ppacket.data,ppacket.size);
ntb.data:=nil;
// сохраняем содержимое буффера в очередь пакетовifnot TL2C.nhandler.netbuffer.Write(ntb,sizeof(TNetworkPacket)+ ppacket.size)thenbegin
transmessage('netbuffer overflow');
end;
end;
все что делаетса в хуке адднетворка.
Добавлено через 56 секунд
Е*УЧИЕ ТЕГИ ФОРУМА о5 ЧЕРЕЗ жопу. лано итак понятно
__________________
читернуть бы ништяг
Последний раз редактировалось xkor, 25.03.2011 в 22:27.
Причина: Добавлено сообщение
это ещё пол беды, защиты в своей криптопроцедуре изменяют пакет (добавление хвид в AuthLogin, etc), а она под темидой, чежеделать...
Добавлено через 23 часа 47 минут
Цитата:
Сообщение от mira
delphi Код:
// если у нас для этого пакета имеетса обработчик то выполняемifassigned(phTable[ppacket.id])thenif(ppacket.id<>$1F)thenbegin// копируем пакет и его содержимое в буффер
ntb:=@ntbuffer;
pdata:=pointer(DWORD(ntb)+sizeof(TNetworkPacket));
ntb^:=ppacket^;
CopyMemory(pdata,ppacket.data,ppacket.size);
ntb.data:=nil;
// сохраняем содержимое буффера в очередь пакетовifnot TL2C.nhandler.netbuffer.Write(ntb,sizeof(TNetworkPacket)+ ppacket.size)thenbegin
transmessage('netbuffer overflow');
end;
end;
все что делаетса в хуке адднетворка.
Добавлено через 56 секунд
Е*УЧИЕ ТЕГИ ФОРУМА о5 ЧЕРЕЗ жопу. лано итак понятно
больше интересно как ты его потом разбираешь
__________________ Начало.
Последний раз редактировалось supernewbie, 27.03.2011 в 01:55.
Причина: Добавлено сообщение
это ещё пол беды, защиты в своей криптопроцедуре изменяют пакет (добавление хвид в AuthLogin, etc), а она под темидой, чежеделать...
Добавлено через 23 часа 47 минут
больше интересно как ты его потом разбираешь
я тоже дошол до того места где начинаетса полиморфичная обфускация кода) дальше понял что нужны большие вложения времени и сил и забил =) пока петух не клюнет наф нада
Добавлено через 6 минут
delphi Код:
repeat
rdsize:=TL2C.nhandler.netbuffer.Read(pckBuffer);
ifassigned(TL2C)theninc(TL2C.clientdata.disp_perf); // bedugif rdsize>buffer_size thenbegin
smessage('netbuffer oversize');
end;
if rdsize<>0thenbegin
pckBuffer.data:=pointer(DWORD(pckBuffer)+sizeof(TNetworkPacket));
//IDirect3DDevice9H(idev_).StrWrite('pread '+inttohex(pckbuffer.id,2)+' '+inttostr(rdsize),0);
DispatchNetwork_handler(pckBuffer);
end;
until rdsize=0;
except
smessage('netbuffer process exception');
exit;
end;
разбираетса еще проще (кусок кода из потока бота выбирающий пакеты)
DispatchNetwork_handler(pckBuffer); - вот тут поток бота разбирает пакет вытащенный из буффера. здесь он может его обсчитывать сколь угодно =)
Добавлено через 16 минут
да и кстати, если хукаеш диспатч при переключении окна во 2 план клиент резко сбрасывает скорость опроса в диспатче от чего бот начинает зверски тупить. если заблочить переход в экономящий режим (тотже -nosleep) то фоновой клиент будет эпически грузить процессор.
бот жрущий 25% проца это экстрим
__________________
читернуть бы ништяг
Последний раз редактировалось mira, 27.03.2011 в 14:10.
Причина: Добавлено сообщение
в адднетворке пакет сохраняетса в очередь. Поток проги как в тике клиента каждые 10мс проверяет очередь обрабатывая все накопленые в ней пакеты.
Вот тока этому потоку пох и на фпс и на лаги клиента)