Просмотр полной версии : L2PacketHack 3.5.x
to NLObP:
Ты не мог бы выложить исходники той версии что с произвольными именами длл?
он лежит на svn, соседняя тема (http://coderx.ru/showthread.php?t=789)
Murdoc, пакетхак перехватывает соединение не как проксификаторы так что на 56574 не прокси и ничего не выйдет...
Murdoc, пакетхак перехватывает соединение не как проксификаторы так что на 56574 не прокси и ничего не выйдет...
я уже понял. Спасибо :)
Не силён в потоках, но наткнулся в коде на такое:
3: begin //от ГС
InitX:=Thread[id].InitXOR;
EnterCriticalSection(_cs);
Inc(Thread[id].pckCount);
LeaveCriticalSection(_cs); и 4: begin //к ГС
EnterCriticalSection(_cs);
InitX:=Thread[id].InitXOR;
LeaveCriticalSection(_cs);
Inc(Thread[id].pckCount); какой из них правильный то ?
З.Ы. Я так понимаю что EnterCriticalSection устанавливает монопольный режим при чтении или записи потока ? Возможно должно быть EnterCriticalSection(_cs);
InitX:=Thread[id].InitXOR;
Inc(Thread[id].pckCount);
LeaveCriticalSection(_cs); ?
Added:
procedure TL2PacketHackMain.iInjectClick(Sender: TObject);
begin
if iInject.Checked then begin
isInject.Enabled := false;
LoadLibraryInject (isInject.Text)
end else begin
if Lib > 0 then begin
FreeMem(dllScr);
sendMsg('Библиотека '+ isInject.Text +' успешно выгружена');
end;
isInject.Enabled := true;
end;
end; Lib тут разве должен проверяться ?
Lib тут разве должен проверяться ?
очепятка :)
Прикрутил к последней версии работу в качесте прокси сервера SOCKS5. Т.о. перехват коннекта осуществляется средствами проксификатора (например Proxifier'а, лишь бы правила были правильно настроены). Прилагаю исходники, надеюсь что кто-нибудь соберет, т.к. у меня криво поставлены Jcl И Jvcl - постоянно течет память
П.С. название библиотек и самого л2пх изменены - защита от особо хитрых защит.
Breadfan
02.10.2008, 22:18
Иногда происходит самопроизвольное закрытие L2PacketHack, просто закрывается (безо всяких сообщений) и в клиентах рвется соединение(
Советаю избавится от этой строчки.
//ждем подключения
while not Thread[id].Connect do Sleep(1);
//подключились
так как тут есть 2 проблемы.
1. Обращение к общим данным.
2. По сути бесконечный цикл. Если клиент не подключится.
тут тоже некрасивое решение уничтожать хендл потока находсь в потоке. Раз умеете пользоватся сообщениями так решите проблему через них ))
EnterCriticalSection(_cs);
CloseHandle(Thread[id].CH);
LeaveCriticalSection(_cs);
тут тоже некрасивое решение уничтожать хендл потока находсь в потоке.
Ничего некрасивого в этом не вижу, его можно закрывать где угодно О_о
Ничего некрасивого в этом не вижу, его можно закрывать где угодно О_о
Кому как это дурной тон в програмирование
Argot, ты не из бомонда?)
подскажите плиз, как проверить
dllScr: pointer , загружена библиотека или нет
перед вызовом FreeMemory
Argot, ты не из бомонда?)
Какого бомонда ?
wanick, а просто вызвать этот FreeMemory не заморачиваясь загружена ли либа низя?, помойму это ни к каким ошибкам не приведёт...
vovanchik
04.10.2008, 01:18
когда уже модифицируют l2phx так чтобы начало всё работать для Hellbound?
когда уже модифицируют l2phx так чтобы начало всё работать для Hellbound?
У меня на Грации пашет 3.3.9
wanick, а просто вызвать этот FreeMemory не заморачиваясь загружена ли либа низя?, помойму это ни к каким ошибкам не приведёт...
вот именночто нельзя
если память не зарезервирована у мяня покрайней мере выпадывает с критом error и падает пакет-хак
vovanchik
04.10.2008, 02:01
У меня на Грации пашет 3.3.9
у меня файл патчит, коннектит якобы перехватывает. но пакеты не летят ))
беру нагло копирую inject с 320 и пакеты летают, правда ишибку на определённом пакете выкидывает.
у меня файл патчит, коннектит якобы перехватывает. но пакеты не летят ))
беру нагло копирую inject с 320 и пакеты летают, правда ишибку на определённом пакете выкидывает.
Сейчас специально зашёл на астериос.ру (грация) версией из первого поста.
ps: инжектов, в одной из тем (http://coderx.ru/showthread.php?t=708), куча.
вот именночто нельзя
если память не зарезервирована у мяня покрайней мере выпадывает с критом error и падает пакет-хак
хахаха , блин придумал и проверка никакая не нужна и н Lib тоже )))
vovanchik
04.10.2008, 16:25
Сейчас специально зашёл на астериос.ру (грация) версией из первого поста.
ps: инжектов, в одной из тем (http://coderx.ru/showthread.php?t=708), куча.
короче моя проблема на asterius.ru
повторюсь:
патчит(а может и нет) но пакеты не летят. Почему возможно не патчит? потому что я выключяю пакетхак и клиент не дисконектит как будто и небыло пакетхака ))
Что делать? голова кругом идёт уже ))
короче моя проблема на asterius.ru
повторюсь:
патчит(а может и нет) но пакеты не летят. Почему возможно не патчит? потому что я выключяю пакетхак и клиент не дисконектит как будто и небыло пакетхака ))
Что делать? голова кругом идёт уже ))
как вариант играть честно , а вообще будем думать, надо самим тестировать
vovanchik
04.10.2008, 23:24
как вариант играть честно , а вообще будем думать, надо самим тестировать
Это говорит человек который уже месяц на этом сайте висит? ))) и даже получает спасибки (наверное за полезный совет). О какой чесности ты? )) яя допустим на этом сайте не потому что мне хоца играть чесно ))
Хух.. о чём это я...?
вообще да... пробему нужно решать )) либо варианты какие нить ))
вообще как бы, непомню чтоб кроме NLObP мне спасибки говорил , хотя я какой ни какой вклад сделал в l2phx... насчет решать , всеравно что нибудь решим, сеня завтра надо сделать много дел ...иначе с работы нафиг выгонють :D :p, вовсе обленилсу
пакет-хак юзаю , гораздо больше месяца, и на форуме тарчу, зарегился только вот недавно
Добавлено через 12 минут
NLObP, фиксировал на SVN, последние изменения, впринципе пока глабальных недоработок не наблюдается, можно выкладывать релиз в сборке
с патокоми проблем вроде больше небыло тестил 4 суток не выключая, есдинственное что после выключения в не выгрузился из памяти а стал оперативу жрать до 100 мегов дошло я его кикнул из процессов непонятно почему :) жрал память))
сегодня постараюсь сделать поддержку длл-плагинов...
Люди, большая просьба в первом закреплённом сообщении написать какую версию Delphi (2006, 2007) и fs, jcl, jvcl ставить. Покрайней мере кто чем компилит из основных маинтайнеров ?
RoZ, поидее скомпилиться нормально в Delphi 7, 2006 и 2007, в более ранних возможны проблемы из за Unicode кодировки модулей, но впринципе тоже скомпилить можно немного повозившись
версии дополнительных библиотек компонентов впринципе любые...
fs, jcl, jvcl , качай самые последние не ошибешся, я нашел в инете jcl, jvcl, прямо установки windows-Instaler ставится без проблем, пробовал сюда выложит
файл-манагер exe не принимает а архивом слишком тежело говорит так что.. :(
fs, jcl, jvcl , качай самые последние не ошибешся, я нашел в инете jcl, jvcl, прямо установки windows-Instaler ставится без проблем, пробовал сюда выложит
файл-манагер exe не принимает а архивом слишком тежело говорит так что.. :(
Поставил 2007 Дельфи, последний fs поставился без проблем. А вот jcl (1.103) и jvcl (3.35) последние никак не хотели вставать, пришлось поставить jcl (1.102) и jvcl (3.34) встали без танцев с бубном. Путь к System.dcu побился пришлось поправить. Видимо последние версии уже под Дельфи 2009 затачивают.
vovanchik
06.10.2008, 00:11
Поставил 2007 Дельфи, последний fs поставился без проблем. А вот jcl (1.103) и jvcl (3.35) последние никак не хотели вставать, пришлось поставить jcl (1.102) и jvcl (3.34) встали без танцев с бубном. Путь к System.dcu побился пришлось поправить. Видимо последние версии уже под Дельфи 2009 затачивают.
Скинь плиз, fs,jcl,jvcl на vovacnhiksoft(ГАВ)rambler.ru
Или ссылки подкинь пожалуйста
RoZ, угу jvcl (3.35) вроде тестовая под дельфи 2009...
Добавлено через 6 минут
Такс, на SVN сделал ревизию 38, добавлена поддержка плагинов.
НО!, пока поддержка плагинов не полностью стабильна, глючит если включать плагины до захода в игру, но если после захода то вроде всё пашет как надо.
Да и пока OnConnect и OnDisconnect из плагина не вызываются...
Вобщем смотрим и думаем что ещё добавить ибо счас плагин писать не очень удобно, мало встроенных возможностей.
ЗЫ исходники простейшего плагина так же на SVN...
Я так понимаю, палгины в нашем случае это тотже скрипт только уже ввиде скомпиленного dll,
это кулл, тоесть скрипты теперь не будут юзатся для изобретения сложных скриптов ну например как рыбалка это просто замечательно...
скрипты нужны щас для быстрых тестов :)
Скинь плиз, fs,jcl,jvcl на vovacnhiksoft(ГАВ)rambler.ru
Или ссылки подкинь пожалуйстаhttp://sourceforge.net/project/showfiles.php?group_id=47514&package_id=40504&release_id=616455
и
http://downloads.sourceforge.net/jvcl/JVCL334CompleteNoJCL.zip?modtime=1217458497&big_mirror=0
З.Ы. Народ, выложите последнюю сборку с поддержкой плагинов, хочу на работе попробовать приделать туда dll на С++ :)
воть, но структуры и функции на С++ сам переписывай.., мне пока не до этого...
кстати демонстрационный плагин просто отсылает пакет Say2 клиенту 2 раза при приходе такого пакета от сервера
vovanchik
06.10.2008, 19:01
http://sourceforge.net/project/showfiles.php?group_id=47514&package_id=40504&release_id=616455
и
http://downloads.sourceforge.net/jvcl/JVCL334CompleteNoJCL.zip?modtime=1217458497&big_mirror=0
Ссу кипятком! спасибо
воть, но структуры и функции на С++ сам переписывай.., мне пока не до этого...
Как я уже говорил в Дельфи не силён...посему не пинайте сильно если что не так.
function TPlugin.LoadInfo: Boolean;
begin
...
Info:=String(GetPluginInfo(version));
>>> GetPluginInfo возвращает указатель на строку
и присваивает его нашей глобальной переменной Info.
...
FreeLibrary(hLib);
>>> уничтожаем библиотеку и заодно наш указатель на строку (на самом деле он продолжает висеть в памяти, так как DLL сделанная в Дельфи не освобождает переменные String пока счётчик использований не достигнет 0)
Result:=True;
end;
предлагаю внести небольшое изменение в функции TPlugin.LoadInfo и TPlugin.LoadPlugin function TPlugin.LoadInfo: Boolean;
var
tempString:PChar;
begin
...
tempString:=(GetPluginInfo(version));
Info:=tempString;
...
end;
function TPlugin.LoadPlugin: Boolean;
var
tempString:PChar;
begin
...
tempString:=(GetPluginInfo(version));
Info:=tempString;
...
end;
RoZ, ты не прав, Info:=String(GetPluginInfo(version)) - копирует строку находящуюся по указателю возвращаемому GetPluginInfo в переменную Info так как типы PChar и String в одном месте памяти плохо ужываются ибо разные они....
RoZ, ты не прав, Info:=String(GetPluginInfo(version)) - копирует строку находящуюся по указателю возвращаемому GetPluginInfo в переменную Info так как типы PChar и String в одном месте памяти плохо ужываются ибо разные они....Да, ты приводишь PChar к String, уже потом их приравниваешь, но строки в Дельфи очень хитрые люди делали, и они решили сэкономить на памяти и поэтому при присваивании String:=String копируется адрес, так сказать оптимизация во всей красе...
http://www.sources.ru/magazine/0804/delphistr.html - вот тут очень подробно расписаны особенности строк в Дельфи.
З.Ы. Почему собственно я это заметил, дело в том что если DLL написана на С++, то при уничтожении библиотеки, по адресу перменной Info пустота...
З.Ы.Ы. Прошу сильно не пинать :) и показать где я ошибся.
RoZ, дело в том что если преобразовывать String в PChar то получается просто указатель на первый символ строки, а вот если наоборот PChar в String, то надо перед первым символом ещё разместить счётчик ссылок и длинну строки, поэтому строка при этом копируется и получается что если есть переменная p типа PChar, то PChar(String(p))<>p
RoZ, дело в том что если преобразовывать String в PChar то получается просто указатель на первый символ строки, а вот если наоборот PChar в String, то надо перед первым символом ещё разместить счётчик ссылок и длинну строки, поэтому строка при этом копируется и получается что если есть переменная p типа PChar, то PChar(String(p))<>pА может быть что "новый" String из PChar он создаёт в адресном протранстве DLL так как память первоначально была выделена под PChar там же? Впрочем всё это мои домыслы, пока буду разбираться в Дельфи дальше, авось чего еще и раскопаю.. :)
З.Ы. Кому интересно можно прочитать про похожую ситуацию вот тут http://forum.sources.ru/index.php?showtopic=98659# хотя она и не подходит на 100%. Завтра попробую переписать функцию по другому, как там советуют, хотя из меня Дельфист тот ещё...
ревизия 39:
обновил возможности плагинов, теперь из плагина есть доступ к следующим встроенным в пакетхак фукнциям:
procedure SendPacket(Size: Word; pck: string; tid: Byte; ToServer: Boolean);
procedure SendPckStr(pck: string; const tid: Byte; const ToServer: Boolean);
procedure SendPckData(var pck; const tid: Byte; const ToServer: Boolean); stdcall;
function DataPckToStrPck(var pck): string; stdcall;
function ReadC(const pck: string; const index:integer):byte; stdcall;
function ReadH(const pck: string; const index:integer):word; stdcall;
function ReadD(const pck: string; const index:integer):integer; stdcall;
function ReadF(const pck: string; const index:integer):double; stdcall;
function ReadS(const pck: string; const index:integer):string; stdcall;
function ReadCEx(const pck; const index:integer):byte; stdcall;
function ReadHEx(const pck; const index:integer):word; stdcall;
function ReadDEx(const pck; const index:integer):integer; stdcall;
function ReadFEx(const pck; const index:integer):double; stdcall;
function ReadSEx(const pck; const index:integer):string; stdcall;
procedure WriteC(var pck: string; const v:byte; ind:integer=-1); stdcall;
procedure WriteH(var pck: string; const v:word; ind:integer=-1); stdcall;
procedure WriteD(var pck: string; const v:integer; ind:integer=-1); stdcall;
procedure WriteF(var pck: string; const v:double; ind:integer=-1); stdcall;
procedure WriteS(var pck: string; const v:string; ind:integer=-1); stdcall;
procedure WriteCEx(var pck; const v:byte; ind:integer=-1); stdcall;
procedure WriteHEx(var pck; const v:word; ind:integer=-1); stdcall;
procedure WriteDEx(var pck; const v:integer; ind:integer=-1); stdcall;
procedure WriteFEx(var pck; const v:double; ind:integer=-1); stdcall;
procedure WriteSEx(var pck; const v:string; ind:integer=-1); stdcall;
function HexToString(Hex:String):String;
function StringToHex(str1,Separator:String):String;
а так же в качестве демо-плагина теперь простенький автоюзатель НР бутылок
Добавлено через 42 минуты
RoZ, почитал я ту статью, действительно проблемы возникнуть могут, но не из за того что ты описал а если память освободиться между присвоением значения строке в длл и копированием строки в программе, а это на мой взгляд произойти практически не может...
вот не большое исследование в дебагере
выполняется в программе:
phxPlugins.pas.143: Info:=String(GetPluginInfo(version));
004928EF 6801000403 push $03040001 ;кладём в стек параметр version
004928F4 FF5618 call dword ptr [esi+$18] ;вызываем GetPluginInfo
прыгаем в плагин:
plugin_demo.dpr.23: Result:='Демонстрационный Plugin к программе l2phx'+sLineBreak+
0141459F B830464101 mov eax,$01414630 ;записываем в результат ссылку на текст
plugin_demo.dpr.26: end;
014145A4 5D pop ebp ;неважно
014145A5 C20400 ret $0004 ;возврат в программу
возвращаемся в программу:
004928F7 8BD0 mov edx,eax ;переносим результат GetPluginInfo в другой регистр
004928F9 8D4608 lea eax,[esi+$08] ;записываем в регистр eax адрес Info
004928FC E86B29F7FF call @LStrFromPChar ;преобразуем PChar из edx в String помещая его в Info
О_о пипл бы хотел думаю получить скомпилированный файл анонс версии был, а первый пост не кто не перебил. лично я вдс клиент ставить не буду ибо руки кривые.:p
А я надеялсо, что скрипты переписывать не придётсо :(
Emocean, а нах их переписывать?
Вернее сказать, я ожидал, что переменные, функции в скриптах и плагинах будут использоваться идентичные, для совместимости.
ну они идентичны на сколько это возможно
ну они идентичны на сколько это возможно
я бы не отказался от списка соответсвий ) а то местами запарился и описания структуры длл ) сори но я нуп в програмирование
плагинную поддержку бы ещё доделать немног перед выкладыванием, возможны небольшие но коренные так сказать изменения из за которых "старые" плагины будут работать не верно...
ммм, народ stdcall можете заменить на cdecl ? Или должен использоваться именно stdcall ? Просто для совместимости с DLL написанной на С++ необходимо...или нереально ?
З.Ы. GetPluginInfo переделал на более безопасный вызов, вечером выложу на ваше рассмотрение.
для совместимости с DLL написанной на С++ необходимо...
Нафиг не надо... void __stdcall myfunction(void);
Нафиг не надо... void __stdcall myfunction(void);
И ? Получим на выходе _myfunction@16 какой нить...в то время как Дельфи использует просто myfunction. А так у нас будет экспортироваться нормальное myfunction как и в Дельфи.
есть предложение по модификации.
Неплохо было бы во вкладке "Просмотр", чтоб пакеты отправленные/измененные/вырезанные л2пх как то метились. При отладке скриптов было бы очень невредно.
Так же работа л2пх без инжекта как сокс прокси тоже бывает нелишним особенно на серверах со свякими защитами отлавливающими инжекты.
ratvier, майкрософт как то умудрилась весь свой API написать на С++ с соглашением stdcall, я собсно его сделал именно для совместимости с С++ и другими...
Получим на выходе _myfunction@16 какой нить...в то время как Дельфи использует просто myfunction.
c++ и не должен экспортировать "нормальные" имена, кроме объявленных в extern c
xkor, в апи много си кода %)
c++ и не должен экспортировать "нормальные" имена, кроме объявленных в extern c
Я по моему и не говорил что С++ должен экспортировать в "нормальном" виде. Я пытаюсь написать плугин шаблон DLL на С++ для использования с l2phx, чтобы народ незнающий Delphi меньше мучился (как я). Сейчас использую такую конструкцию:#define DLL_API extern "C" __declspec(dllexport)
DLL_API char* GetPluginInfo(int ver);
DLL_API char* GetPluginInfo(int ver)
{
return "Test Plugin DLL";
} в настройках проекта стоит
Calling Convention __cdecl (/Gd)
и функция GetPluginInfo(int ver) экспортируется как GetPluginInfo, если же поставить __stdcall то функция экспортируется как _GetPluginInfo@4
Собственно сейчас для меня два варианта.
1) Всё таки дописать шаблон на С++
2) Сделать DLL на Delphi как обёртку для DLL на С++
З.Ы. Второй вариант намного проще,...но это уже ИМХО какое то извращение :)
dmitry501
09.10.2008, 13:53
На С++ свет клином не сошелся. И если он для себя приписывает число параметров в экспорт - то это его проблемы.
Я вот пишу плагины на асме.
В WinAPI используется stdcall и я думаю что и плагины к phx должны именно так передавать параметры. В итоге получим нормальные dll.
p.s. к чему это я... да, обращайся не по имени а по номеру функции....
На С++ свет клином не сошелся. И если он для себя приписывает число параметров в экспорт - то это его проблемы.
Я вот пишу плагины на асме.
В WinAPI используется stdcall и я думаю что и плагины к phx должны именно так передавать параметры. В итоге получим нормальные dll.
p.s. к чему это я... да, обращайся не по имени а по номеру функции....
В том то и дело, в самом l2phx обращение идёт по имени. Что бы не плодить форки проекта под разных "программеров" хотелось бы унификации. Ладно сейчас попробую сделать через DEF альясами...посмотрим что получится из эксперимента... :) (*чувствую себя создателем Франкенштейна*)
dmitry501, точно, сделаю обращение по номеру
ЗЫ вот поэтому я и говорил что ещё поддержка плагинов не релизной версии, возможны глубокие изменения)
ЗЗЫ ещёб найти как при динамическом подключении обращаться по номеру...
ЗЗЗЫ SVN теперь тут - http://l2phx.pp.ru/svn/l2phx3/
Про stdcall предложение я снимаю, решение для С++:
Заходим в Properties->Linker->Input->Module Definition File = наш_файл.def
В самом файле
EXPORTS
GetPluginInfo=_GetPluginInfo@4
dmitry501, точно, сделаю обращение по номеру
ЗЗЫ ещёб найти как при динамическом подключении обращаться по номеру...
ЗЗЗЫ SVN теперь тут - http://l2phx.pp.ru/svn/l2phx3/
А какие выгоды из этого можно получить ? Кроме скорости обращения ?
1. Что такое Cardinal?
2. Как насчёт возврата из GetPluginInfo юникод строки?
RoZ, ну раз нашлось решение проблемы то не буду)
ratvier, 1. Cardinal это беззнаковое целое размером 4 байта, DWORD короче...
2. а смысл?
Ревизия: 44
Автор: xkor
Дата: 21:00:00, 10 октября 2008 г.
[ + ] Добавлен вывод подробной информации об ошибках в случае их возникновения;
[ * ] Релиз поддержки плагинов, теперь всё работает как планировалось, подробности в описании;
PS подробное описание системы плагинов выложу чуть поже, когда напишу)
ура xkor, ток плиз с примерами :) и если возможно темку полезные функции переделать под плагины. имхо я основы разобрал тока на теме полезные функции
в соседней теме (http://coderx.ru/showthread.php?t=890) выложил основные сведения по плагинам, с примерам и полезными функциями к плагинам придётся немного подождать...
Breadfan
11.10.2008, 07:42
Кстати: возможно ли сделать опции выключения компа по команде, и при обрыве всех соединений ?
Breadfan, думаю можно имхо длл это самостоятельная программа с доступам к системным функциям, в общем хз :) я б не стал так экспериментировать
Ревизия: 46
Автор: xkor
Дата: 19:10:00, 12 октября 2008 г.
[+] Из плагинов теперь можно добавлять в скрипты свои функции, для этого в плагине должны быть две функции: OnCallMethod и OnRefreshPrecompile;
[!] Внимание! Для корректной работы плагинов они должны быть скомпилированны в том же режиме что и L2PacketHack, тоесть если пакетхак скомпилирован с директивой Relise, то и плагины должны быть скомпилированными с ней же, в противном случае возможны конфликты в модуле FastMM4;
PS всё время забываю указывать лог ревизии и никак не могу понять как сделать чтоб его можно было менять поже, так что об изменениях можно почитать в change.log...
Ну исправте вы строчку
while not Thread[id].Connect do Sleep(1);
Несерьезно это. Предлагал вам идею проигнорили. Ну может с кодом проблем меньше будет
procedure Server(Param: Pointer);
................
................
Thread[id].ConnectEvent:= CreateEvent(nil, true,false, PChar(NameEvent));
Thread[id].CH:=BeginThread(nil, 0, @Client, Param, 0, Thread[id].CTH);
...............
if WaitForSingleObject(Thread[id].ConnectEvet, TimeOut)<>0 then
begin
TerminateThread(Thread[id].CH,0);
ExitThread(0);
end;
.............
.............
end;
procedure Client(Param: Pointer);
..........
..........
PulseEvent(Thread[id].ConnectEvent);
..........
..........
end;
дальше сами разберетесь ))
Argot, может ты бы помог с кодом ListenServer, Server и Client. У меня плохо получается, а ты, я вижу, сечёш добро.
Несерьезно это.работоспособность ухудшает?, сильно сомневаюсь...
работоспособность ухудшает?, сильно сомневаюсь...
еще как ухудшает. Вот вам Смоделирую ситуацию.
if not ConnectToServer(Thread.CSock,Thread[id].Port,Thread[id].IP) then begin
DeInitSocket(Thread[id].CSock);
exit;
end;
При не удачной попытке подключится к серверу. Завершается Поток "Client", а
а Потоке "Server" весит бесконечный цикл.
while not Thread[id].Connect do Sleep(1);
в Итоге Получаем Количесво не завершеных потоков равное количесву Неудачных попыток.
Хотя если у вас мощные компы. )) и Вам не мешают лишних например 100 потоков. Пожалуйста. Хотя об этой проблеме писали уже давно.
ЗЫ да и WaitFor... так не грузит проц как цикл.
[I]Добавлено через 13 минут
Argot, может ты бы помог с кодом ListenServer, Server и Client. У меня плохо получается, а ты, я вижу, сечёш добро.
Как помочь? Есть вопросы задавай если смогу отвечу )
Ревизия: 47
Автор: xkor
Дата: 15:50:00, 13 октября 2008 г.
[ * ] исправлен вход в бесконечный цикл при неудачном подключении к серверу, теперь при неудачных конектах не будут плодиться потоки, спасибо Argot;
Для правильного отображения пакетов и соответственно фильтров необходим пакет ProtocolVersion. Есть идеи как без него обойтись? Или может в глобальной переменной протокол сохранять?может добавить в newxor.dll специальную функцию, которая будет возращать номер протокола?
вот начал изучать "плагинописание" и встал вопрос о том как организовать такую вещь которая в скриптах стало такой привычной константы типа Name. пришла идея в самом пнх на вкладке плагин там где идёт описание плгина сделать активную зону где можно будет вводить эти константы а так же сохранять/загружать в файл.
///////////////////////////////////////////////////////////////
ответ xkor'a:
в плагине после компиляции имён переменных нету
исполняемый файл только с указателями и регистрами работает...
////////////////////////////////////////////////////////////////
Дык народ кто что придумает оригинальное и функциональное :) что реально организовать.
Grinch, а зачем вообще нужен Name, вот пример с авто-HP явно показывает что и без него можно обойтись.
встал вопрос о том как организовать такую вещь которая в скриптах стало такой привычной константы типа Name.тут у меня две мысли -
1. Требуется дороботка ПакетХака - добавить в планины необязательные функции, которые будут вызыватся из контекстного меню в списке плагинов. как минимум для настройки и расширенной информации о плагине.
2. не требует дороботки ПХ и может быть дополнением к первому - обработка в плагине чат-строк типа "-myplugin -settings"
Далее станет вопрос сохранения и загрузка настроек, и тут опять есть два варианта -
1. возложить это полностью на автора плагина - он сам будет выбирать куда и как сохранять / грузить настройки- в реестр, INI-файл или в скрытый сектор диска с ключем шифрования на сьемном насителе.
2. Сделать анологично FAR - работать с настройками через API пакетхака.
Добавлено через 2 минуты
И есть еще пожелание - для ПХ свернутого в трей, дороботать меню - добавить подменю "Скрипты" и "Плагины" с динамическим списком и возможностью в щелчек влючать и выключать их.
Breadfan
14.10.2008, 17:10
или в скрытый сектор диска с ключем шифрования на сьемном насителе - это как раз то, что я искал )))
Grinch, а зачем вообще нужен Name, вот пример с авто-HP явно показывает что и без него можно обойтись.
ну тут спорно конечно, допустим в пати 2 ше в плагине всё расписано и чё каждое окно зайти написать там чёта потом в другое и т.д. не спорю баферов можно организовать и без ников, а вот пла допустим я обычно играю как бд офф пати вписываю ник пла в скрипт к бд так бд может запустить кто угодно из моего клана главное в скрипте ник перебить. спросишь для чего это надо ну допустим машина не тянет 5-6 окон и ботом не охота играть вот и приходиться извращаться :) имхо нужно как то организовать ввод констант типа Name либо из файла либо с панели плагина или пакет хака.
Grinch, а как на счет ввода констант через HTML диалог прямо в игре?), можно даж в самом пакетхаке сделать встроенные функции для формирования таких диалогов, хотя это и так просто
ИМХО это самое рациональной на мой взгляд решение
ещё можно сделать возможность указывать для включаемого плагина "соединение по умолчанию" или даже выполнять его только для этого соединения
Добавлено через 5 часов 11 минут
Ревизия: 48
Автор: xkor
Дата: 00:50:00, 15 октября 2008 г.
[+] В контекстном меню иконки программы появились подменю "Скрипты" и "Плагины" в которых можно включить/выключить их не открывая окно программы;
FastMM4 настроен так чтобы плагины и программа были совместимы не зависимо от режима компиляции;
тут у меня две мысли -
1. Требуется дороботка ПакетХака - добавить в планины необязательные функции, которые будут вызыватся из контекстного меню в списке плагинов. как минимум для настройки и расширенной информации о плагине.
2. не требует дороботки ПХ и может быть дополнением к первому - обработка в плагине чат-строк типа "-myplugin -settings"
Далее станет вопрос сохранения и загрузка настроек, и тут опять есть два варианта -
1. возложить это полностью на автора плагина - он сам будет выбирать куда и как сохранять / грузить настройки- в реестр, INI-файл или в скрытый сектор диска с ключем шифрования на сьемном насителе.
2. Сделать анологично FAR - работать с настройками через API пакетхака.
Добавлено через 2 минуты
И есть еще пожелание - для ПХ свернутого в трей, дороботать меню - добавить подменю "Скрипты" и "Плагины" с динамическим списком и возможностью в щелчек влючать и выключать их.
Еще надо добавить меню для моего холодильника, чтобы он заказывал мне пиво через l2phx/ O_o
Народ, вы подождите сейчас пройдет осень, и вас отпустит ...
А задуматься что вы тут делаете ? ))
except
//добавил для исключения утечки памяти, NLObP
FreeMem(OldFunction, 255);
Exit;
end;
//добавил для исключения утечки памяти, NLObP
FreeMem(OldFunction, 255);
Вот вся функция
function HookCode(TargetProc, NewProc: pointer; var OldProc: pointer): boolean;
var
Address: dword;
OldProtect: dword;
OldFunction: pointer;
Proc: pointer;
begin
Result := False;
try
Proc := TargetProc;
//вычисляем адрес относительного (jmp near) перехода на новую функцию
Address := dword(NewProc) - dword(Proc) - 5;
VirtualProtect(Proc, 5, PAGE_EXECUTE_READWRITE, OldProtect);
//создаем буффер для true функции
GetMem(OldFunction, 255);
//копируем первые 4 байта функции
dword(OldFunction^) := dword(Proc);
byte(pointer(dword(OldFunction) + 4)^) := SaveOldFunction(Proc, pointer(dword(OldFunction) + 5));
//byte(pointer(dword(OldFunction) + 4)^) - длина сохраненного участка
byte(Proc^) := $e9; //устанавливаем переход
dword(pointer(dword(Proc) + 1)^) := Address;
VirtualProtect(Proc, 5, OldProtect, OldProtect);
OldProc := pointer(dword(OldFunction) + 5);
except
Exit;
end;
Result := True;
end;
Покажи, где надо освободить память? В except ... end; лишнее?
А задуматься что вы тут делаете ? ))
except
//добавил для исключения утечки памяти, NLObP
FreeMem(OldFunction, 255);
Exit;
end;
//добавил для исключения утечки памяти, NLObP
FreeMem(OldFunction, 255);
а я то думал почему ShowMessage не работает...
Добавлено через 1 минуту
NLObP, освобождать надо то что больше НЕ будет использоваться...
Добавлено через 1 минуту
небольшая утечка лучше чем освобождение ещё используемой памяти...
Особождайте ее в unhook`e
тонее она там освобождается
function UnhookCode(OldProc: pointer): boolean;
var
OldProtect: dword;
Proc: pointer;
SaveSize: dword;
begin
Result := True;
try
Proc := pointer(dword(pointer(dword(OldProc) - 5)^));
SaveSize := byte(pointer(dword(OldProc) - 1)^);
VirtualProtect(Proc, 5, PAGE_EXECUTE_READWRITE, OldProtect);
CopyMemory(Proc, OldProc, SaveSize);
VirtualProtect(Proc, 5, OldProtect, OldProtect);
FreeMem(pointer(dword(OldProc) - 5));
except
Result := False;
end;
end;
Особождайте ее в unhook`e
На сколько я помню он нигде не вызывается.
На сколько я помню он нигде не вызывается.
это как говорится уже ваши проблемы что вы не вызываете )).
Да и правда особой надобности нет. в Вызове.
Шаблон Plugin на С++ для маньяков :)
Реализовано:
char* GetPluginInfo(int ver);
void OnPacket(unsigned long int cnt,bool fromServer,char* packet);
bool SetStruct(PluginStruct * PStruct);
void OnConnect(unsigned long int cnt,bool withServer);
void OnDisconnect(unsigned long int cnt,bool withServer);
void OnLoad();
void OnFree();
для отсылки пакетов используется "SendPckData(void* pck,const unsigned char tid,bool ToServer)"
Ну раз уж такое дело, вот хидер для си (так же совместим с с++)
ты зачем из файлового архива прогу удалил?, народ её в первую очередь там ищет, а про эту тему знают не многие...
Баг:
PktStr:=HexToString(Copy(Thread[CID].Dump.Strings[PckCount],23,4));
//LeaveCriticalSection(_cs);
id:=Byte(PktStr[1]); //фактическое начало пакета, ID
SubId:=Word(id shl 8+Byte(PktStr[2])); //считываем SubId При PktStr = '' выдаёт ошибку на id:=Byte(PktStr[1]);
добавьте проверку.
Пакет 03DEFAC3A9E9ADEB3F0200
для проверки прикрепил лог пакетов
NLObP, компилируй плиз в добавляением JCL дебаговой инфы, тогда при ошибках в программе будут указаны строки в которых ошибки возникли
ЗЫ включить добаление этой инфы можно отметив галочку "Insert JCL debug info" в меню Project (она самая нижняя)
Добавлено через 37 секунд
RoZ, пакетхак поидее в лог пустые пакеты и не пишет...
RoZ, пакетхак поидее в лог пустые пакеты и не пишет...
Поидее да...но вот записал...хз даже почему... :)
Мои действия были стандартные, нашёл очередной сервер. Всё включил, создал персонажа. При загрузке мира ПКХ начал ругаться, лог сохранил и начал разбираться.
http://s40.radikal.ru/i089/0810/3e/6fa5f533d1c4.jpg
Когда печатаю пакет, после написания каждого символа выскакивает такая штука, а птом вовсе не даёт писать
и всётаки зря кто то сделал:
//проверяем на выход за границу пакета
if PosInPkt>Size+10 then raise ERangeError.CreateFmt(result+' is not within the valid range of %d', [Size]);
и всётаки зря кто то сделал:
//проверяем на выход за границу пакета
if PosInPkt>Size+10 then raise ERangeError.CreateFmt(result+' is not within the valid range of %d', [Size]);
Revision: 60
Author: nlobp
Date: 1:17:05, 26 октября 2008 г.
Message:
изменил реагирование на ошибку выхода за границу пакета, пишем в расшифровку пакета 'range error'
на вкладке "просмотр" и "посылка" добавил показ места, где расположены данные, по клику мыши и нажатию клавиш (стрелок) вверх/вниз.
NLObP, хм, обосную плиз позицию строк
if value='range error' then exit;
потому как по хорошему они должны следовать сразу за вызовом value:=GetValue(...)
а у тебя получается что могут сработать строки типа
if param1='FUNC01' then value:=GetFunc01(strtoint(value))
когда value='range error' а это приведёт к ошибке...
NLObP, хм, обосную плиз позицию строк
if value='range error' then exit;
потому как по хорошему они должны следовать сразу за вызовом value:=GetValue(...)
а у тебя получается что могут сработать строки типа
if param1='FUNC01' then value:=GetFunc01(strtoint(value))
когда value='range error' а это приведёт к ошибке...
Моё мнение эта ошибка появляется при несоответствии расшифровки пакета в packets.ini и содержимым пакета. Например пакет от грации, а расшифровка от С4.
Обычно эта ошибка пакетов содержащих циклы, типа таких
18=StatusUpdate:o(ObjectID)d(ListSize:Loop.1.2)d(I D)d(Value)
или
0E=StatusUpdate:d(ObjectID)d(AttribCount:For.0002) d(AttrID:Get.FSup)d(AttrValue)
для примера:
Tип: 0x5F (SkillList)
Pазмер: 122+2
Время прихода: 01:50:44:234
0002 d ListSize: 9 (0x00000009)
[Начало повторяющегося блока 1/9]
0006 d isPassive: 0
000A d Level: 1
000E d skillID: Escape: 5 minutes ID:2099 (0x0833)
0012 c c: 0
[Конец повторяющегося блока 1/9]
[Начало повторяющегося блока 2/9]
0013 d isPassive: 1
0017 d Level: 1
001B d skillID: Create Common Item ID:1320 (0x0528)
001F c c: 0
[Конец повторяющегося блока 2/9]
[Начало повторяющегося блока 3/9]
0020 d isPassive: 1
0024 d Level: 1
0028 d skillID: Magician's Movement ID:118 (0x0076)
002C c c: 0
[Конец повторяющегося блока 3/9]
[Начало повторяющегося блока 4/9]
002D d isPassive: 0
0031 d Level: 1
0035 d skillID: Common Craft ID:1322 (0x052A)
0039 c c: 0
[Конец повторяющегося блока 4/9]
[Начало повторяющегося блока 5/9]
003A d isPassive: 0
003E d Level: 1
0042 d skillID: Self Heal ID:1216 (0x04C0)
0046 c c: 0
[Конец повторяющегося блока 5/9]
[Начало повторяющегося блока 6/9]
0047 d isPassive: 1
004B d Level: 1
004F d skillID: Spellcraft ID:163 (0x00A3)
0053 c c: 0
[Конец повторяющегося блока 6/9]
[Начало повторяющегося блока 7/9]
0054 d isPassive: 0
0058 d Level: 1
005C d skillID: Wind Strike ID:1177 (0x0499)
0060 c c: 0
[Конец повторяющегося блока 7/9]
[Начало повторяющегося блока 8/9]
0061 d isPassive: 1
0065 d Level: 1
0069 d skillID: Mana Recovery ID:214 (0x00D6)
006D c c: 0
[Конец повторяющегося блока 8/9]
[Начало повторяющегося блока 9/9]
006E d isPassive: 1
0072 d Level: 1
0076 d skillID: Lucky ID:194 (0x00C2)
007A c c: 0
[Конец повторяющегося блока 9/9]
Но может конечно я и ошибаюсь с местом расположения проверки.
Моё мнение эта ошибка появляется при несоответствии расшифровки пакета в packets.ini и содержимым пакета. Например пакет от грации, а расшифровка от С4.угу а ещё при ручном наборе пакета на вкладке отправка так как туда не всегда просто копируют пакет, а ещё могут и полностью или частично его воодить ручками, а поскольку пакетхак его анализирует прямо в процессе ввода то вылазиет ошибка
Еще не большой совет. Так как в используемом вами AdvApiHook.pas есть серьезные не дочеты, а конкретней не корректно работают некоторые функции. Используйте более новую версию, там решены эти проблемы )).
И пора менять метод перехвата.)) Так написать защиту от ваших методов очень просто.
Argot, что то я не видел новой версии AdvApiHook
Argot, что то я не видел новой версии AdvApiHook
то что ты не видел незначить что ее нет. Юзайте поиск.
в той версии что вы используете не всегда правильно работают функции.
SaveOldFunction, SizeOfCode... и еще какието. не помню просто в свое время я их сам начинал править потом случайно нашел, что MS-Rem :-) исправился и выпустил апграйд.
Argot, ты лучше бы ссылку выложил, не качать же каждую встречную AdvApiHook и сравнивать с имеющейся исча непойми какие изменения...
Добавлено через 1 минуту
такс, сделал удобный веб просмотр для svn:
http://l2phx.pp.ru/wsvn/
если заметите там гдето проблемы с кодировкой отпишитесь плиз
На wasm.ru в статье про внедрение, новая версия advapi.pas?
На wasm.ru в статье про внедрение, новая версия advapi.pas?
Нет. А определить можно в коментах в начале файла )).
Что-то не ищется новой версии. Может выложиши или ссылку дашь?
Добавлено через 8 часов 48 минут
L2phx ver. 3.4.1.60, что нового:
Revision: 60
Author: nlobp
Date: 1:17:05, 26 октября 2008 г.
Message:
изменил реагирование на ошибку выхода за границу пакета, пишем в расшифровку пакета 'range error'
на вкладке "просмотр" и "посылка" добавил показ места, где расположены данные, по клику мыши и нажатию клавиш (стрелок) вверх/вниз.
Репозиторий находится тут (http://l2phx.pp.ru/svn/l2phx3/)
Удобный просмотр тут (http://l2phx.pp.ru/wsvn/listing.php?repname=l2phx3&path=%2F&sc=1)
Скомпилированная версия тут (http://l2phx.pp.ru/arhive/)
nezabudkin
27.10.2008, 18:11
У меня есть предложения по доработке алгоритма вызовов библиотеки newxor.dll.
(поправьте меня, если я неправ!)
Эксперементируя с newxor, понял следующее:
1. Первые два пакета (ProtocolVersion и CryptInit) не передаются в newxor, а зачастую там храниться бесценная информация по начальным ключам шифрования.
2. Из пакета CryptInit в newxor передается начальный ключ шифрования, но, во первых, пакетхак сам решает какова длинна ключа, а во вторых, чего-то с ним делает, из-за чего этот ключ уже нельзя применять для нестандартных защит.
Суть моих предложений сводится к следующему:
1. Доработать пакетхак, чтобы он вызывал newxor.dll (функции шифрования-дешифрования) начиная с самого первого пакета и от сервера и от клиента.
2. Для совместимости с предыдущими версиями newxor.dll, добавить в пакетхак еще одну галочку, или радио-кнопку, для выбора версии используемой newxor (нового типа, или старого).
Введение в вакетхак таких изменений значительно упростит написание(изменение) newxor, а так-же облегчит перенос алгоритмов дешифрации между пакетхаком и wpf.
APXAHGEJI
27.10.2008, 18:50
Чето намудрили вы в 3.4.1.59 и не думаю что в 60 было исправлено.
Вопщем стояли 3 бота, рыбачили. Решил проверить как дела идут.
Сматрю один у фишермана стоит и вроде закупку уже начал но ниче не делает, и тут в системном чате идет инфа о рыбалке, будто он рыбачит. Я подумал клиент сглючил, привел еще одного перса, и поправде стоит рядом с фишерманом ниче не делает. Хз че происходит, но складывается ощущение что пакеты одного окна шлются в другое.
Чето намудрили вы в 3.4.1.59 и не думаю что в 60 было исправлено.
Вопщем стояли 3 бота, рыбачили. Решил проверить как дела идут.
Сматрю один у фишермана стоит и вроде закупку уже начал но ниче не делает, и тут в системном чате идет инфа о рыбалке, будто он рыбачит. Я подумал клиент сглючил, привел еще одного перса, и поправде стоит рядом с фишерманом ниче не делает. Хз че происходит, но складывается ощущение что пакеты одного окна шлются в другое.
Он ловит возле фишермена или стоит? На некоторых серваках, где угодно ловить можно. Пакетики ловли рыбы видно от рядом стоящих - рыбачащих персов. Системный чат - это в окне скрипта (если это конечно мой скрипт)? Подробнее инфу дай, можно в личку. Что за сервер, скриптом или валкером ловишь?
APXAHGEJI
27.10.2008, 19:11
Скриптом твоим пользуюсь. Системный чат это тот который в клиенте игры и от рядом стоящих там точно не может быть, точнее не должно быть, но есть. Сервер не скажу что хороший, но где попало рыбачить нельзя, да и повторюсь, приходил персом не на боте и было видно что бот не совершает никаких движений, тупо стоит у фишермана. И еще забыл, при этом отображается что инвентарь пустой, точнее там были только что купленные крючки, больше ничего.
Скриптом пользуюсь давно и много, но такое было впервые, значит что то в новых версиях пакет хака не то.
Revision: 61
Author: xkor
Date: 21:30:00, 6 ноября 2008 г.
Message:
[+] поддержка дополнительного шифрования id пакетов в Gracia на оффициальных серверах, спасибо ShadeOfNothing
Проверено на руоффе
немного поменял адрес репозитория для того чтобы отключить апач который сцуко жрёт 80% оперативной памяти сервера
теперь репозиторий тут - svn://l2phx.pp.ru/l2phx3
остальные два адреса без изменений
мне кажется что надо немного изменить структуру программы, часть свойств перенести в XorCoding - туда добавить версию протокола (надо чтоб первый пакет тоже как-то проходил через DecryptGP) - для автоматического определения в просмотре пакетов, и имя соедениения - будет проще работать с нестандартными серверами.
Добавлено через 3 минуты
И может не стоит нагружать саму программу лишними настройками для разных хроник, а сделать разные newxor.dll а юзеры пусть уже выбирают какую загружать.
PanAm, по хорошему там минимум 30% кода надо вообще переписывать полностью...
Revision: 62
Author: nlobp
Date: 12:18:00, 19 ноября 2008 г.
Message:
[-] Исправил работу кнопки "убирает все пакеты текущего типа из списка пакетов"
Подскажите можна ли вигрузить плагин командой с плагина (тоесть например в случае ерора отключить плагин...)
Подскажите можна ли вигрузить плагин командой с плагина (тоесть например в случае ерора отключить плагин...) пока нет.
Подскажите плиз как узнать в плагине имя соедения по его ID
Name4Me, в демоплагине есть такая функция:
function CntByName(nm: string): Byte;
var
i: Integer;
begin
Result:=0;
for i:=0 to ps.ThreadsCount-1 do if ps.Threads[i].Name=nm then begin
Result:=i;
Exit;
end;
end;
она по имени соединения определяет его номер, ну а то что ты просиш вот: ps.Threads[номер_соединения].Name
еще одно предложение - а нельзя -ли прикрутить к ПХ, что-то вроде "авторана"? чтобы можно было скрипты и плагины назначить на авто-запуск при старте ПХ, например прописать их в INI.
Небольшой багрепорт. Иногда pbx пакет от клиента обозначает как от сервера. Скрин:
http://img201.imageshack.us/img201/9385/83743405lk2.jpg (http://imageshack.us)
http://img201.imageshack.us/img201/83743405lk2.jpg/1/w795.png (http://g.imageshack.us/img201/83743405lk2.jpg/1/)
Пакет выделенный стрелочками - один и тот же (я гарантирую это=)), а обозначен по разному. Отображение пакетов от сервака отключено (обведено).
Версия pbx - 3.4.1.64
Версия ос - винда sp1
DrFall, кстати да, замечал, но поскольку исправляется нажатием на одну из обведённых кнопочек пару раз, мне лень было смотреть что за нах, тем более там уже нагорожено стока не моего кода что разбираться лень)
Небольшой багрепорт. Иногда pbx пакет от клиента обозначает как от сервера
Посмотрю, как время будет.
сори мож глупой вопрос но всё таки... Где в плагине лудше освобождать созданые компоненты, или можно не осфобождать? Так как столкнулся с такой проблемой если не осфобождаю плагин закриваеться нормально если освобождаю то закриваеться с еррором...
Name4Me, ну лучше всётаки особождать конечно, в процедуре Free, но это впринципе не критично...
Баг Не распознаёт пакет
39=RequestMagicSkillUse:d(skillID:Get.Skill)d(Ctrl Pressed)c(ShiftPressed)
Строке ID пакета пишет либо 3913,3914... в зависимости от скила
Баг Не распознаёт пакет
39=RequestMagicSkillUse:d(skillID:Get.Skill)d(Ctrl Pressed)c(ShiftPressed)
Строке ID пакета пишет либо 3913,3914... в зависимости от скила
А ты выбрал правильный packets.ini для расшифровки?
Начиная с Камаеля
c39=RequestMagicSkillUse:d(skillID:Get.Skill)d(Ctr lPressed)c(ShiftPressed)
Добавлено через 1 час 27 минут
Небольшой багрепорт. Иногда pbx пакет от клиента обозначает как от сервера.
Не мог бы ты дать лог пакетов с показанной ошибкой на рисунке для теста?
NLObP, не думаю что тут надо тестить, скорее всего просто гдето неверно назначается картинка или скорее она не меняется просто
NLObP, не думаю что тут надо тестить, скорее всего просто гдето неверно назначается картинка или скорее она не меняется просто
Я поправил в одном месте, но незнаю поможет или нет.
Revision: 65
Author: nlobp
Date: 3:05:12, 6 декабря 2008 г.
Message:
[+] добавил кнопку для показа смещения в Hex/Dec с сохранением в options.ini;
Небольшие поправки...
Давно не включал L2phx
тут на оффе попробовал версию l2phx.3.4.1.65
вообще у меня име соединения не определилось
и еще вопрос packets.ini - на грацию кто-нибудь делает ?
Amorality
07.12.2008, 22:18
Такая проблема с твоим новым ПНХ, там где должны отображаться пакеты белое пустое место, их видно, только если тыкать в пустое место, исправь, не удобно
Revision: 66
Author: nlobp
Date: 02:40:00, 08 декабря 2008 г.
Message:
Ограничение максимального количества строк в логе MaxLinesInLog, после чего скидываем в файл и очищаем лог. Настраивается в options.ini;
Хз всё таки не коректно расшифровывает 39 пакет от клиента непонятно по чему питаеться определить:
Tип: 0x39 (Unknow:)
Pазмер: 9+2
0002 h subID: 16 (0x0010)
Name4Me, да прост кто то в пакетхаке написал что признаком второго ID является не только d0 но и 39...
Name4Me, да прост кто то в пакетхаке написал что признаком второго ID является не только d0 но и 39...
Добавлял я. В соответствии с этим (С4, С5, Т0):
[client]
...
// two ID packets: // :h(subID)
//
//39=SuperCmd...:h(subID)
3900=SuperCmdCharacterInfo:h(subID)s(CharName)
3901=SuperCmdSummonCmd:h(subID)s(SummonName)
3902=SuperCmdServerStatus:h(subID)
3903=SuperCmdL2ParamSetting:h(subID)d(p1)d(p2)
//
//D0=D0 Ex...:h(subID)
D001=RequestOustFromPartyRoom:h(subID)d(_id)
D002=RequestDismissPartyRoom:h(subID)d(d1)d(d2)
А вот в Т1 его уже нет, это другое дело (в ТОДО).
NLObP, ясн, но надо бы было както тогда сделать лучше чтобы какие пакеты двухИДишный в packets.ini указывалось...
Revision: 67
Author: nlobp
Date: 01:10:00, 10 декабря 2008 г.
Message:
[-] фикс ошибки 39 пакета в Камаель-Грация;
очищаем поля при смене подключения в списке соединений;
Revision: 68
Author: nlobp
Date: 01:50:00, 10 декабря 2008 г.
Message:
[-] фикс ошибки List index of bounds в поиск/замена;
Добавлено через 8 часов 51 минуту
Такая проблема с твоим новым ПНХ, там где должны отображаться пакеты белое пустое место, их видно, только если тыкать в пустое место, исправь, не удобно
Мне надо подробно рассказать, что приводит к такой ошибке. Я не могу повторить её.
Мне надо подробно рассказать, что приводит к такой ошибке. Я не могу повторить её.теоретически такая ситуация должна возникать когда происходит ошибка во время формирования/изменения списка пакетов
теоретически такая ситуация должна возникать когда происходит ошибка во время формирования/изменения списка пакетов
у меня такая ситуация один раз была, помоему когда я скрипт включил, а он работал некорректно, и выдал ошибку List of bounds...
Предложение добавить кнопку или настройку чтоб не сбрасивался лог после вихода клиента... А то бивает нуна посмотреть что происходит перед виходом...
Предложение добавить кнопку или настройку чтоб не сбрасивался лог после вихода клиента... А то бивает нуна посмотреть что происходит перед виходом...
Если стоит "Запоминать пакеты", то при выходе чара из игры лог пакетов сохраняется в папке ".\logs\" с именем чара и временем выхода из игры. Надо этот лог просто загрузить и смотреть.
возникла вот такая проблема в пакете itemList невидет ID пухи
вот сам пакет ( в инвентаре 3 вещи точи и пуха, и квест итем)
11 01 00 04 00 04 00 31 E7 13 10 AB 19 00 00 00 00 00 00 11 02 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 42 CE 05 10 63 1C 00 00 00 00 00 00 0A 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FA A3 05 10 AE 12 00 00 05 00 00 00 01 00 00 00 00 00 00 00 01 00 80 00 00 00 05 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 13 52 05 10 39 00 00 00 02 00 00 00 FF FF FF 7F 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
и лог пакета
Tип: 0x11 (ItemList)
Pазмер: 309+2
Время прихода: 12:02:27:437
0002 h ShowWindow: 1 (0x0001)
0004 h ListSize: 4 (0x0004)
[Начало повторяющегося блока 1/4]
0006 h ItemType1: 4
0008 d ObjectID: 269739825
0012 d ItemID: Blessed Scroll: Enchant Weapon (Grade B) ID:6571 (0x19AB)
0016 d LocationSlot: 0
0020 d Count: 529
0024 h ItemType2: 5
0026 h CustomType1: 0
0028 h isEquipped: 0
0030 d BodyPart: 0
0034 h EnchantLevel: 0
0036 h CustType2: 0
0038 d AugmentationID: 0
0042 d Mana: -1
0046 d AttackAttrElement: -2
0050 d AttackAttrElementVal: 0
0054 d DefAttrFire: 0
0058 d DefAttrWater: 0
0062 d DefAttrWind: 0
0066 d DefAttrEarth: 0
0070 d DefAttrHoly: 0
0074 d DefAttrUnholy: 0
[Конец повторяющегося блока 1/4]
[Начало повторяющегося блока 2/4]
0078 h ItemType1: 0
0080 d ObjectID: 262144
0084 d ItemID: Unknown Items ID:268815938(1005CE42)
0088 d LocationSlot: 7267
0092 d Count: 0
0096 h ItemType2: 10
0098 h CustomType1: 0
0100 h isEquipped: 3
0102 d BodyPart: 0
0106 h EnchantLevel: 0
0108 h CustType2: 0
0110 d AugmentationID: 0
0114 d Mana: 0
0118 d AttackAttrElement: -1
0122 d AttackAttrElementVal: -2
0126 d DefAttrFire: 0
0130 d DefAttrWater: 0
0134 d DefAttrWind: 0
0138 d DefAttrEarth: 0
0142 d DefAttrHoly: 0
0146 d DefAttrUnholy: 0
[Конец повторяющегося блока 2/4]
[Начало повторяющегося блока 3/4]
0150 h ItemType1: 0
0152 d ObjectID: 0
0156 d ItemID: 0
0160 d LocationSlot: 268805114
0164 d Count: 4782
0168 h ItemType2: 5
0170 h CustomType1: 0
0172 h isEquipped: 1
0174 d BodyPart: 0
0178 h EnchantLevel: 0
0180 h CustType2: 1
0182 d AugmentationID: 128
0186 d Mana: 5
0190 d AttackAttrElement: 0
0194 d AttackAttrElementVal: -1
0198 d DefAttrFire: -2
0202 d DefAttrWater: 0
0206 d DefAttrWind: 0
0210 d DefAttrEarth: 0
0214 d DefAttrHoly: 0
0218 d DefAttrUnholy: 0
[Конец повторяющегося блока 3/4]
[Начало повторяющегося блока 4/4]
0222 h ItemType1: 0
0224 d ObjectID: 0
0228 d ItemID: 0
0232 d LocationSlot: 262144
0236 d Count: 268784147
0240 h ItemType2: 57
0242 h CustomType1: 0
0244 h isEquipped: 2
0246 d BodyPart: -65536
0250 h EnchantLevel: 32767
0252 h CustType2: 4
0254 d AugmentationID: 0
0258 d Mana: 0
0262 d AttackAttrElement: 0
0266 d AttackAttrElementVal: 0
0270 d DefAttrFire: -1
0274 d DefAttrWater: -2
0278 d DefAttrWind: 0
0282 d DefAttrEarth: 0
0286 d DefAttrHoly: 0
0290 d DefAttrUnholy: 0
[Конец повторяющегося блока 4/4]
но в других пакетах прекрасно видет все вот пакет InventoryUpdate
21 01 00 02 00 00 00 FA A3 05 10 AE 12 00 00 05 00 00 00 01 00 00 00 00 00 00 00 01 00 80 00 00 00 06 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
и лог
Tип: 0x21 (InventoryUpdate)
Pазмер: 77+2
Время прихода: 12:02:31:687
0002 h ListSize: 1 (0x0001)
[Начало повторяющегося блока 1/1]
0004 h Change: 2
0006 h ItemType1: 0
0008 d ObjectID: 268805114
0012 d ItemID: Demon's Sword[Mortal Strike] ID:4782 (0x12AE)
0016 d Location: 5
0020 d Count: 1
0024 h ItemType2: 0
0026 h CustomType1: 0
0028 h isEquipped: 1
0030 d BodyPart: 128
0034 h EnchantLevel: 6
0036 h CustType2: 0
0038 d AugmentationBonus: 0
0042 d Mana: -1
0046 d AttackAttrElement: -2
0050 d AttackAttrElementVal: 0
0054 d DefAttrFire: 0
0058 d DefAttrWater: 0
0062 d DefAttrWind: 0
0066 d DefAttrEarth: 0
0070 d DefAttrHoly: 0
[Конец повторяющегося блока 1/1]
0074 d DefAttrUnholy: 0 (0x00000000)
возникла вот такая проблема в пакете itemList невидет ID пухи
Надо правильно настроить packetst1.ini (он для Камаеля-Грации). Тот который в комплекте, не совсем полный и правильный.
PS: Для 0x11 (ItemList) пакета я вчера на форуме выкладывал, как можно поправить.
Баг или фича? Шифрование пакетов начинает колбасить (грация)
if FromServer then begin
if (pck[1]=#$2E) then begin
buf:=#$2E;
i:=2;
WriteC(ReadC(i));
WriteD(ReadD(i));
WriteD(ReadD(i));
WriteD(ReadD(i));
WriteD(ReadD(i));
WriteC(ReadC(i));
WriteD(ReadD(i));
SendToClient();
pck:='';
exit;
end;
end;
Зависает L2phx,
на при работе с плагинами тоесть при выключение зависает в 0 иногда вылетает с критом,
причем, если в плагине обрабатывать пакеты только входящие то ни каких проблемм
после вот такого пакета тоже не виснет
buf:=ps.HexToString('56 00 00 00 00 00 00 00 00 00');
ps.SendPckStr(buf,ConnectId,true);
а если отправлять тако пакет
buf := ps.HexToString('21 01 00 02 00 04 00');
ps.WriteD (buf, RandomID);
ps.WriteD (buf, QItemID);
buf := buf + ps.HexToString('11 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F1 D8 FF FF');
ps.SendPckStr(buf,ConnectId,False);
при отключении плагина всё виснет
для тестов вот пример полностью
procedure OnLoad; stdcall;
var
i: integer;
buf:string;
begin
//menuID:= 'scr_'+ IntToStr(RandomID) +'?';
for i:=0 to ps.ThreadsCount-1 do begin
ConnectId:=i;
Say('Для запуска плагина наберите в чате слово start и отправьте');
buf:=ps.HexToString('56 00 00 00 00 00 00 00 00 00');
ps.SendPckStr(buf,ConnectId,true);
buf := ps.HexToString('21 01 00 02 00 04 00');
ps.WriteD (buf, RandomID);
ps.WriteD (buf, QItemID);
buf := buf + ps.HexToString('11 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F1 D8 FF FF');
ps.SendPckStr(buf,ConnectId,False);
buf := ps.HexToString('44 01 00 00 00 0C 00 00 00');
ps.WriteD(buf, RandomID);
buf := buf + ps.HexToString('01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00');
ps.SendPckStr(buf,ConnectId,False);
end;
end;
wanick, виснет я хз как у тебя но после 20 секунд шифрация пакетов сбивается на оффе. и клиент зависает
Revision: 69
Author: nlobp
Date: 16:30:00, 21 декабря 2008 г.
Message:
подготовил и заюзал systemmsg.ini, itemname.ini, systemmsg.ini, npcname.ini от l2.ru;
[-] исправил ошибку показа имя NPC в расшифровке пакетов;
[-] исправил ошибку посылки скрипта на вкладку "Дополнительно";
[+] Ограничение максимального количества строк в логе пакетов, после чего скидываем в файл и очищаем лог. Настраивается в options.ini переменной MaxLinesInPktLog (по умолчанию 3000 пакетов);
Тоже очень интересует этот вопрос...
ты подружил пхк и л2ру?
Пока вот что имеем: заходим чаром, мониторим пакеты.
21.12.2008_23.16.36 Стартует L2phx 3.4.1.69
Успешно загрузили inject.dll
Thread Start: основной поток ServerListen 252/2184
На 56574 зарегистрирован локальный сервер
Надёжно пропатчен новый клиент l2.exe (3624)
Коннект на 127.0.0.1 пропущен (перехват выключен)
Перехвачен коннект на 127.0.0.1:18892
Thread Start: поток сервера Thread[id].SH 324/2452 id:0
Перехвачен коннект на 127.0.0.1:32517
Thread Start: поток клиента Thread[id].CH 332/3832 id:0
Disconnect: отвалился клиент Thread[id].CH 332/3832 id:0
Thread Start: поток сервера Thread[id].SH 384/1932 id:1
Thread Start: поток клиента Thread[id].CH 392/2720 id:1
Disconnect: отвалился сервер Thread[id].SH 324/2452 id:0
Thread Exit: поток клиента Thread[id].CH 332/3832 id:0
WSA error 10055/316
WSA error 10055/348
Thread Exit: поток сервера Thread[id].SH 324/2452 id:0
Считываем имя соединения...
Имя соединения:[цензура]
Disconnect: отвалился сервер Thread[id].SH 384/1932 id:1
WSA error 0/364
WSA error 0/408
Disconnect: отвалился клиент Thread[id].CH 392/2720 id:1
Thread Exit: поток сервера Thread[id].SH 384/1932 id:1
Thread Exit: поток клиента Thread[id].CH 392/2720 id:1
21.12.2008_23.32.09 Завершил работу L2phx...
дааааа,работы еще не початый край...
кста... а где лежит версия 69? в скомпилированных нету
ZliLO, знач нигде пока), завтра выложу вечером если не забуду...
Ребят, на l2server.ru понимает трафик пакетхак? нету возможности проверить сейчас.
nezabudkin
23.12.2008, 13:57
l2server.ru понимает трафик пакетхак
Там недавно обновили крипто-защиту :(
Magistr, нигде для работы некоторых файлов не хватает...
Добавлено через 25 минут
Revision: 70
Author: xkor
Date: 22:00:00, 23 декабря 2008 г.
Message:
[+] к программе можно подключаться как к socks5 прокси серверу (при установке соответствующей галочки);
ЗЫ скомпиленая версия как всегда тут - http://l2phx.pp.ru/arhive/
xkor, подробней можно, что требуется для работы с клиентом? Я не совсем в курсе, сорри.
NLObP, с каким клиентом?
если ты про то как пользоваться сокс5 прокси в пакетхаке дык надо просто поставить в нем соответствующую галочку и любым проксификатором направлять линейку на пакетхак как на прокси сервер)
ЗЫ можно даже теоретичски на одном компе запускать пакетхак а линейку с проксификатором на другом)
ЗЗЫ порт на который направлять трафик проксификатором указывается при старте пакетхака - "На 56574 зарегистрирован локальный сервер"
Кульный апдейт! :) Народ, рекомендую ProxyCap, у меня с ней никаких проблем не возникало, в линейку через неё играю.
Кульный апдейт! :) Народ, рекомендую ProxyCap, у меня с ней никаких проблем не возникало, в линейку через неё играю.
А FAQ есть что в нем прописывать? В частности на страничке Proxies.
А FAQ есть что в нем прописывать? В частности на страничке Proxies.
Дак там же всё интуитивно понятно...
Добавляешь в Proxies новый сервер, выбираешь сокс 5, вводишь свой айпи, и порт 56574.
Затем в Rules добавляешь приложение shieldConsole.exe, указываешь его роутить через твой прокси, который ты добавил в Proxies.
И всё, весь траффик линейки после этого будет роутиться на пнх.
Указываю:
в Proxies
SOCK5, localhost, 56574, (default)
в Rules
Proxy, shieldConsole, (all), (all), TCP, (default)
Запускаю пакетхак, запускаю LineageII, start, в логе
Стартует L2phx 3.4.1.70
Библиотека newxor.dll отсутствует или заблокирована другим приложением
Успешно загрузили inject.dll
Thread Start: основной поток ServerListen 240/6304
На 56574 зарегистрирован локальный сервер
Thread Start: поток сервера Thread[id].SH 328/6340 id:0
Thread Start: поток клиента Thread[id].CH 344/6344 id:0
и всё, висим... shieldConsole и L2.exe не грузятся, пока не выгружу пакетхак.
Что делаю не так?
Хм... та же фигня... :(
Лёха, а ты хоть тестил это?
конечно висим, пакетхак тока трафик в котором первые два байта это размер понимает!, а от shieldConsole даже трафик линейки идет зашифрованный полностью (включая байты размера) вот пакетхак и не может размер распознать...
конечно висим, пакетхак тока трафик в котором первые два байта это размер понимает!, а от shieldConsole даже трафик линейки идет зашифрованный полностью (включая байты размера) вот пакетхак и не может размер распознать...
А алгоритм шифрации в shieldconsole.exe тот же или другой?
Почему не получается трафик с l2.exe завернуть на пакетхак?
NLObP, вот почему от л2 до шилдКонсоли не пускается нормально через пакетхак я как раз и не разобрался...
nezabudkin
25.12.2008, 13:24
Указываю:
в Proxies
SOCK5, localhost, 56574, (default)
в Rules
Proxy, shieldConsole, (all), (all), TCP, (default)
Запускаю пакетхак, запускаю LineageII, start, в логе
Код:
Стартует L2phx 3.4.1.70
Библиотека newxor.dll отсутствует или заблокирована другим приложением
Успешно загрузили inject.dll
Thread Start: основной поток ServerListen 240/6304
На 56574 зарегистрирован локальный сервер
Thread Start: поток сервера Thread[id].SH 328/6340 id:0
Thread Start: поток клиента Thread[id].CH 344/6344 id:0и всё, висим... shieldConsole и L2.exe не грузятся, пока не выгружу пакетхак.
При такой настройке у меня доходит до выбора ГС, потом зависает. При релогине, клиент пишет, что персоонаж уже в игре и просит еще раз залогиниться... Я еще отключаю загрузку inject.dll.
А можно ли перехватить трафик между клиентом и консолью?
Блин, пока писал, вы еще 3 поста выложили :)
nezabudkin, ну обьяснение в моём предыдущем посте, поддержки l2.ru пока что нету...
А можно ли перехватить трафик между клиентом и консолью?
Я пакетхаком перехватываю (лог выше выложен), вижу пакеты (правильные или нет на 100% не отвечу), но, послать свои нельзя, рвется связь.
а я даже пакеты не вижу... создаеться два чара... и нифига, ни одного пакета нету=(
[id].CH 516/4208 id:2
Перехвачен коннект на 127.0.0.1:30515
WSA error 0/464
Перехвачен коннект на 127.0.0.1:52452
WSA error 0/492
Thread Exit: поток сервера Thread[id].SH 468/7412 id:1
Thread Start: поток сервера Thread[id].SH 472/4880 id:3
Thread Start: поток клиента Thread[id].CH 500/1960 id:3
Thread Start: поток сервера Thread[id].SH 464/6000 id:1
Disconnect: отвалился сервер Thread[id].SH 508/4944 id:2
WSA error 10061/544
Disconnect: отвалился сервер Thread[id].SH 424/7516 id:0
WSA error 10061 - это номер ошибки сокета? а второе число что значит?
WSA error 10061 - это номер ошибки сокета? а второе число что значит?
Вот чего значит
sendMSG('WSA error ' + inttostr(WSAGetLastError)+'/'+inttostr(hsocket));
Попытка обхода shieldConsole.exe на l2.ru;
После внедрения в клиент, галочка "Перехват" сбрасывается. =)
Потом "Перехват" снова ставим, перед выбором сервера.
PS: Версия 70 тоже работает, в режиме перехват.
nezabudkin
26.12.2008, 01:53
NLObP,
ЗАРАБОТАЛО!!!
и пакеты удается отсылать и серверу и клиенту!
за первый час тестирования вылетов небыло.
Только подключиться удалось с третьего раза.
а у меня нету ни перса, ни пакетов=(
ЗАРАБОТАЛО!!!
и пакеты удается отсылать и серверу и клиенту!
за первый час тестирования вылетов небыло.
Только подключиться удалось с третьего раза.
В настройки изменения вносил или как есть запустил и работает?
Добавлено через 11 минут
ZliLO, перехват перед выбором сервера включай.
nezabudkin
26.12.2008, 16:37
В настройки изменения вносил или как есть запустил и работает?
Взял твою сборку PHX, НИЧЕГО не трогал в настройках, включал перехват как ты и описал. Удалось залогиниться где-то с 3го - 4го раза.
Пакеты начинает выдеть после того, как выберешь чара и войдешь в игру...
Почему-то всегда получается id соединения = 1
nezabudkin, а ты пробовал отправить пакет?
в том то и дело... у меня логинится, чаром заходит... а чар не появляеться, и пакетов нету=((( ну еще попробую, отпишусь=-)
Почему-то всегда получается id соединения = 1
Да, так и есть. В старых хрониках с 0 соединения начиналось, сейчас оно не успевает освободиться и используется 1 и выше. Почему? Я не знаю.
nezabudkin
27.12.2008, 00:32
nezabudkin, а ты пробовал отправить пакет?
Да, отправлял Say2 и серверу и клиенту, все работает, бана пока нету...
Да, отправлял Say2 и серверу и клиенту, все работает, бана пока нету...
Подтверждаю. Раньше скрипт "радар" подвешивал клиента, теперь работает.
//**********************************************
//for Gracia
//Установка стрелки (радара) над чаром к цели, при использовании таргета
//Чтобы включить скрипт используйте в игре социальное действие - Yes
//Чтобы выключить скрипт используйте в игре социальное действие - No
//**********************************************
var
Attacker, SocialID, CorX, CorY, CorZ, Status: Integer;
procedure SendMs(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClient;
end;
procedure TargetRadar(CorX, CorY, CorZ: Integer);
begin
buf:=#$F1;
WriteD(0);
WriteD(1);
WriteD(CorX);
WriteD(CorY);
WriteD(CorZ);
SendToClient;
end;
procedure TargetRadarDrop;
begin
buf:=#$F1;
WriteD(1);
WriteD(1);
WriteD(0);
WriteD(0);
WriteD(0);
SendToClient;
end;
begin
if FromClient and (pck[1]=#$34) then
begin
SocialID:=ReadD(2);
case ord(pck[2]) of
$06:begin
Status:=1;
SendMs('Радар включен');
pck:='';
end;
$05:begin
Status:=0;
TargetRadarDrop;
SendMs('Радар выключен');
pck:='';
end;
end;
end;
if Status=1 then
begin
if FromServer and (pck[1]=#$79) then
begin
CorX:=ReadD(6);
CorY:=ReadD(10);
CorZ:=ReadD(14);
TargetRadar(CorX, CorY, CorZ);
end;
end;
end.
PS: с первого раза не заходит на сервер - это наверное с пакетхаком не связано.
PS: с первого раза не заходит на сервер - это наверное с пакетхаком не связано.
У меня с первого раза зашло! Спасибо огромнейшее! ))
Кстати, а ты ещё не пробовал отвязать клиента? :) Всмысле послать клиенту логаут, а пнх оставить за главного? :)
Кстати, а ты ещё не пробовал отвязать клиента? Всмысле послать клиенту логаут, а пнх оставить за главного? а вот этого на оффе точно не советую, на пакеты геймгварда пока умеет отвечать только геймгвард...
Сделайте пожалуйста, чтобы при снятой галочке на плагине - файл плагина можно было перезаписать.
Xelat, вообщето так и сделано изначально)
пока галочка плагина снята с ним можно делать что угодно...
Xelat, вообщето так и сделано изначально)
пока галочка плагина снята с ним можно делать что угодно...
ппц... полчаса назад не работало! :) Сейчас после твоей мессаги решил перепроверить - и заработало! :) я в шоке!
PS. есть подозрение что тогда не работало, т.к. в процессе выполнения плагина возникала ошибка, которая не убивала плагин, он работал дальше, но видимо уже нормально не отвязывался.
через час работы клиент подвисает :( хз бывает что и без пакт хака виснет. посадил еще раз на тест.
nezabudkin
27.12.2008, 19:09
через час работы клиент подвисает хз бывает что и без пакт хака виснет. посадил еще раз на тест.
Это Иннова логает. Вчера вечером у меня тоже логало, а ночью я 5 часов был в онлайне и не одного лага!
Вчера вечером переписал свой скрипт Бота-локомотива под Грацию. Если бан не схвачу, в понедельник вечером выложу на всеобщее обозрение!!!
Что такое бот локомотив? :)
Ах да, кстати, пакетхак подключаеться к клиенту норма ) то что там трафик шифрованый( но все равно. Я вот например уже соски автоматически крафчу :) пакет один и тот же отправляю на сервер через каждые 80 секунд, вот он и крафтит ) так что уже польза есть ;) Ждем еще обновлений пакетхака ;)
Жалко бота нету( или я не нашел еще ( Может есть у кого ? )
Добавьте плиз в Options.ini опцию отключения подтверждения выхода из пнх.
nezabudkin
28.12.2008, 02:55
Что такое бот локомотив?
Поиск рулит :)
Пожалуйста сделайте, чтобы пнх понимал скрипты в папке scripts не только с расширением .txt, но и .pas.
Вот все инишки к руоффу. Если хотите, можете в релизы включить, я думаю многим пригодится.
А так же, если кому надо - список серверов (с их айдишниками).
Revision: 71
Author: nlobp
Date: 17:15:00, 28 декабря 2008 г.
Message:
sysmsgid.ini, itemsid.ini, skillsid.ini, npcsid.ini из l2.ru, спасибо Xelat;
[+] Добавлен вывод даты и времени в лог;
расшифровка пакета sD0=MultiSellList (не полная);
в догонку
Revision: 72
Author: nlobp
Date: 17:50:00, 28 декабря 2008 г.
Message:
[+] AllowExit в Options.ini разрешает выход без запроса;
[+] ShitConsole в Options.ini включает обход ShielConsole;
Кстати, на l2.ru в пакетах от сервера InventoryUpdate и ItemList каждый набор параметров одного итема сожержит на 1 параметр типа dword больше. Что он означает пока незнаю, но значение у него всегда -9999.
[+] ShitConsole в Options.ini включает обход ShielConsole
Кто это извращение придумал?
Я тут курнул заборной корейской травки и наваял, работать должно только на руоффе, тыц (http://depositfiles.com/files/pop1wg1j4)
Кто это извращение придумал?
Я тут курнул заборной корейской травки и наваял, работать должно только на руоффе, тыц (http://depositfiles.com/files/pop1wg1j4)
Что-то не пашет, виснет при выборе сервера. Твоё решение точно работатет? На какой версии?
NLObP, на 68 и 70 нормально. Естесственно, новая опция обхода должна быть выключена
NLObP, на 68 и 70 нормально. Естесственно, новая опция обхода должна быть выключена
Пробовал на 70 весии.
Обход, просто вовремя перехват выключить. =)
Вот ещё на 68 попробовал
Стартует L2phx 3.4.1.68
Успешно загрузили inj_ruoff.dll
Thread Start: основной поток ServerListen 252/3600
На 56574 зарегистрирован локальный сервер
Надёжно пропатчен новый клиент l2.exe (3496)
Перехвачен коннект на 127.0.0.1:37361
Thread Start: поток сервера Thread[id].SH 324/1024 id:0
Thread Start: поток клиента Thread[id].CH 332/996 id:0
Disconnect: отвалился сервер Thread[id].SH 324/1024 id:0
WSA no error 0/320
WSA no error 0/348
Disconnect: отвалился клиент Thread[id].CH 332/996 id:0
Thread Exit: поток сервера Thread[id].SH 324/1024 id:0
Thread Exit: поток клиента Thread[id].CH 332/996 id:0
Перехвачен коннект на 127.0.0.1:37361
Thread Start: поток сервера Thread[id].SH 332/584 id:0
Thread Start: поток клиента Thread[id].CH 328/916 id:0
Disconnect: отвалился сервер Thread[id].SH 332/584 id:0
Перехвачен коннект на 127.0.0.1:16362
WSA no error 0/360
Перехвачен коннект на 127.0.0.1:38150
WSA no error 0/352
Disconnect: отвалился клиент Thread[id].CH 328/916 id:0
Thread Exit: поток сервера Thread[id].SH 332/584 id:0
Thread Exit: поток клиента Thread[id].CH 328/916 id:0
Thread Start: поток сервера Thread[id].SH 336/708 id:1
Thread Start: поток клиента Thread[id].CH 268/1716 id:1
WSA no error 10061/368
ratvier, что то я из дебагера плохо понял что эта длл делает с WSPStartup из mswsock.dll и куда это прыжок - "jmp far ptr 0BFB1h:0F33E0011h"
NLObP, только что вообще без всяких извращейний зашел, нипоняяятно
jmp far ptr 0BFB1h:0F33E0011h
Это часть данных, забавно ида это место дизасмит
nezabudkin
29.12.2008, 13:35
Revision: 72
Author: nlobp
Пробовал на РУ ОФФ 5 раз в подряд зайти, каждый раз с разними ошибками не конектится :(
Пробовал на РУ ОФФ 5 раз в подряд зайти, каждый раз с разними ошибками не конектится :(
Перед выбором серевера ставим галочку "перехват", выжидаем немного ориентировочно как в "Искать клиент" = 5 сек, заходим на сервер.
RayTraceR
29.12.2008, 23:35
NLObP Можно вопросы для уточнения? Спасиба)
0) Играю на л2.ру
1) Нужно ли убивать ГГ? Нyжно ли менять оригинальный l2.exe? Нужно ли переименовывать shieldconsole.exe и использовать вместо него l2ranger?
2) Пробовал разные ревизии вплоть до 72, но на выборе сервера зависает и вот такое содержание:
на 69 ревизии
Стартует L2phx 3.4.1.69
Успешно загрузили inject.dll
Thread Start: основной поток ServerListen 240/2452
На 56574 зарегистрирован локальный сервер
Скрытно пропатчен новый клиент l2.exe (4776)
Коннект на 127.0.0.1 пропущен (перехват выключен)
Коннект на 127.0.0.1 пропущен (перехват выключен)
Перехвачен коннект на 127.0.0.1:29289
Thread Start: поток сервера Thread.SH 392/6136 id:0
Перехвачен коннект на 127.0.0.1:37131
Thread Start: поток сервера Thread[id].SH 412/6116 id:0
Thread Start: поток клиента Thread[id].CH 420/3476 id:0
Thread Start: поток клиента Thread[id].CH 432/5532 id:0
WSA no error 10061/452
[I]Смущает что 127.0.0.1, я так думаю это изза shieldconsole.exe
и на 72:
30.12.2008_0.21.13 Thread Start: поток клиента Thread.CH 1020/5920 id:4
30.12.2008_0.21.13 Thread Start: поток клиента Thread[id].CH 1032/5924 id:5
30.12.2008_0.21.13 Thread Start: поток сервера Thread[id].SH 1104/5932 id:6
30.12.2008_0.21.13 Thread Start: поток сервера Thread[id].SH 1140/5952 id:6
30.12.2008_0.21.13 Thread Start: поток клиента Thread[id].CH 1148/5940 id:6
30.12.2008_0.21.13 Thread Start: поток клиента Thread[id].CH 1160/5944 id:6
30.12.2008_0.21.14 Thread Start: поток сервера Thread[id].SH 1236/5936 id:7
30.12.2008_0.21.14 Thread Start: поток сервера Thread[id].SH 1268/5956 id:7
30.12.2008_0.21.14 Thread Start: поток клиента Thread[id].CH 1276/5960 id:7
30.12.2008_0.21.14 Thread Start: поток клиента Thread[id].CH 1288/5968 id:7
30.12.2008_0.21.14 Thread Start: поток сервера Thread[id].SH 1364/5484 id:8
30.12.2008_0.21.14 Thread Start: поток сервера Thread[id].SH 1396/5872 id:8
30.12.2008_0.21.14 Thread Start: поток клиента Thread[id].CH 1404/3680 id:8
30.12.2008_0.21.14 Thread Start: поток клиента Thread[id].CH 1416/5132 id:8
30.12.2008_0.21.14 Thread Start: поток сервера Thread[id].SH 1492/5092 id:9
30.12.2008_0.21.14 Thread Start: поток сервера Thread[id].SH 1524/3484 id:9
30.12.2008_0.21.14 Thread Start: поток клиента Thread[id].CH 1532/4424 id:9
30.12.2008_0.21.14 Thread Start: поток клиента Thread[id].CH 1544/3196 id:9
[I]Тоже самое 127.0.0.1
Далее попробовал с убитой шилд консолью и включенным l2ranger-ом:
30.12.2008_0.25.43 Стартует L2phx 3.4.1.72
30.12.2008_0.25.43 Успешно загрузили newxor.dll
30.12.2008_0.25.43 Успешно загрузили inject.dll
30.12.2008_0.25.43 Thread Start: основной поток ServerListen 236/156
30.12.2008_0.25.44 На 56574 зарегистрирован локальный сервер
30.12.2008_0.25.59 Надёжно пропатчен новый клиент l2.exe (4412)
30.12.2008_0.26.54 Коннект на 89.249.27.113 пропущен (перехват выключен)
30.12.2008_0.27.24 Перехвачен коннект на 89.249.27.175:7777
30.12.2008_0.27.24 Thread Start: поток сервера Thread[id].SH 360/4744 id:0
30.12.2008_0.27.24 Thread Start: поток клиента Thread[id].CH 368/4752 id:0
Далее дело пошло с убитым гг и патченным l2.exe=)
30.12.2008_0.32.08 Стартует L2phx 3.4.1.72
30.12.2008_0.32.08 Успешно загрузили newxor.dll
30.12.2008_0.32.08 Успешно загрузили inject.dll
30.12.2008_0.32.08 Thread Start: основной поток ServerListen 236/3196
30.12.2008_0.32.08 На 56574 зарегистрирован локальный сервер
30.12.2008_0.32.23 Надёжно пропатчен новый клиент l2.exe (4352)
30.12.2008_0.32.58 Коннект на 89.249.27.113 пропущен (перехват выключен)
30.12.2008_0.33.01 Коннект на 89.249.27.172 пропущен (перехват выключен)
30.12.2008_0.33.02 Коннект на 89.249.27.173 пропущен (перехват выключен)
30.12.2008_0.33.02 Коннект на 89.249.27.174 пропущен (перехват выключен)
30.12.2008_0.33.02 Коннект на 89.249.27.175 пропущен (перехват выключен)
30.12.2008_0.33.03 Коннект на 89.249.27.176 пропущен (перехват выключен)
30.12.2008_0.33.03 Коннект на 89.249.27.179 пропущен (перехват выключен)
30.12.2008_0.33.03 Коннект на 89.249.27.177 пропущен (перехват выключен)
30.12.2008_0.33.03 Коннект на 89.249.27.171 пропущен (перехват выключен)
30.12.2008_0.33.42 Перехвачен коннект на 89.249.27.175:7777
30.12.2008_0.33.42 Thread Start: поток сервера Thread[id].SH 356/4940 id:0
30.12.2008_0.33.42 Thread Start: поток клиента Thread[id].CH 364/6120 id:0
30.12.2008_0.33.59 Disconnect: отвалился сервер Thread[id].SH 356/4940 id:0
30.12.2008_0.33.59 WSA error 0/344
30.12.2008_0.33.59 WSA error 0/384
30.12.2008_0.33.59 Thread Exit: поток сервера Thread[id].SH 356/4940 id:0
30.12.2008_0.33.59 Disconnect: отвалился клиент Thread[id].CH 364/6120 id:0
30.12.2008_0.33.59 Thread Exit: поток клиента Thread[id].CH 364/6120 id:0
В итоге, низкий пинг=) Быстрая загрузка клиента, но во всех случаях ничего не происходит при выборе сервера, перед этим ставил галочку перехвата коннекта и выжидал 5 секунд.
И еще какой способ внедрения для l2.ru скрытый или надежный?
ЗЫ: Порядок действия был таков, пнх -> l2ranger (с3-го случая) -> Lineage2.exe
ЗЫ: Просьба не советовать др боты, так как уж очень сдружился с пнх на С4.
RayTraceR, ничего убивать не нужно.
Последний раз рассказываю.
Версия 72. В options.ini ставим ShitConsole=1, запускаем пакетхак (галочка "перехват", "пропускать логин", "kamael", "gracia" стоит, newxor.dll не нужен, способ внедрения любой), запускаем lineageii.exe, заходим со своим логин/пароль, на странице выбора серверов переключаемся на пакетхак, включаем галочку "перехват", ждем немного 10-15 сек, переключаемся в клиент, выбираем сервер, чар, обычно, на соединении 1.
PS: только что проверял, заходит, чар в списке соединения, пакеты в логе видно.
RayTraceR
30.12.2008, 14:04
Я видел твои посты про 72 ревизию,но как я уже писал: решил свою проблему, правда убив shieldconsole, который увеличивал мне пинг до 500+ а иногда и до 900+ так что я останусь при своем решении, но всеравно спс.
Revision: 73
Author: nlobp
Date: 03:33:00, 31 декабря 2008 г.
Message:
Поднял иконки вверх на вкладке "Просмотр";
Добавил парочку групбоксов для однообразия;
Репозиторий мертв. Tortose подвисает при попытке соединения. Браузер говорит, что мол несчем соединятся. Хотеть последнюю версию.
72 тупо не видит,хотя после перехвата при выборе серверов и определяет клиент и при самой игре он отображается но перехвата пакетов нет.Другие версии не пробовал
DrFall, возможно были временные проблемы связи, счас всё пашет
ааа, люди, а висте это работает? а то мб я идиот, и забыл четакое клёпанный куяк , и поээтому и не пашет у меня?
Revision: 74
Author: nlobp
Date: 00:05:00, 02 января 2009 г.
Message:
[-] Исходник почему-то лежал в plugins\Coding.pas (мешало компиляции);
Мелкие исправления заголовков групбоксов;
Если бы еще своевременно они появлялись в скомпиленном виде=) просто для меня СВН -это лес, им я хз че тама=)
Постараюсь выкладывать по быстрее.
Не могу посмотреть репозиторий. Ни в какую. В чем может быть проблема? Остальные я так понимаю репозиторий видят...
Не могу посмотреть репозиторий. Ни в какую. В чем может быть проблема? Остальные я так понимаю репозиторий видят...
Смотри через браузер (второй пункт) или установи TortoiseSVN (первый пункт)
Все давно стоит, если смотрю через браузер, то:
You tried to access the address http://l2phx.pp.ru/wsvn/listing.php?repname=l2phx3&path=%2F&sc=1, which is currently unavailable. Please make sure that the Web address (URL) is correctly spelled and punctuated, then try reloading the page.
Make sure your Internet connection is active and check whether other applications that rely on the same connection are working.
Если Tortois'ом:
http://www.image123.net/thumbs/20090102/8suombfnm4q1.jpg
и так ооооочень долго, а потом ошибка подключения:
Error * Can't connect to host 'l2phx.pp.ru'
DrFall, даже не знаю, что сказать. Прямо сейчас проверил п.1 и п.2 оба работают.
Добавлено через 59 секунд
Если бы еще своевременно они появлялись в скомпиленном виде=) просто для меня СВН -это лес, им я хз че тама=)
Выложил. Смотри первый пост.
У меня кстати в Tortoise SVN тоже нифига не получилось, поэтому заюзал SmartSVN 5.
Может ктонить добрый зальет на рапиду/аплоад/файлфронт/вебфайл ну или хоть куданить?
Для тех кто в танке вот прямые ссылки, у меня качаеться все норм.
l2phx.3.4.1.74 (http://l2phx.pp.ru/arhive/l2phx.3.4.1.74.rar)
l2phx.3.4.1.72 (http://l2phx.pp.ru/arhive/l2phx.3.4.1.72.rar)
l2phx.3.4.1.70 (http://l2phx.pp.ru/arhive/l2phx.3.4.1.70.rar)
Я танкист. Вероятно я забанен гдето на тамошнем домене, или на хосте или хз где и как, но не качает ни в какую. Залейте 74 на рапиду пожалста.
Исправьте пожалуйста баг:
пакет UserInfo
h(CubicsSize:Loop.01.0001)h(CubicID)
А вот реально пришедший пакет. Как такое могёт быть?
0583 h CubicsSize: 0 (0x0000)
0585 h CubicID: 0 (0x0000)
Нда... своими опытами я могу сказать что на висте фишка с руоффом не пашет=(( Зато на ХР все прекрасно=)
Исправьте пожалуйста баг:чет я не понял, в чем баг?
QaK, в том что когда CubicsSize = 0 не должно быть ни одного поля CubicID
Пробывал 69 и 75 пакетхак
запускал phx до апдейтера и после (хотя разницы вроди никакой), ствил галку перехват, запускал л2, вводил логин и пароль, перед выбором серера ставил снова галку на перехват, в игру упорно не пускает, без галки пускает. Ставил также галку второй раз до ввода логина, при показе соглашения (eula), все как рыба об лед, на сервер не пускает, подскажите что нибудь...
Enable=1
NoLogin=1
NoDecrypt=0
Programs=0
isKamael=1
AntiXORkey=0
Top=274
Left=209
Widht=838
Heigth=640
Clients=l2.exe;l2walker;
IgnorPorts=5001;5002;5003;5004;2222;2106;
LocalPort=56574
MaxConections=10
kID=1000000
HookMethod=0
isNewxor=
isInject=inject.dll
isGraciaOff=1
MaxLinesInLog=100
MaxLinesInPktLog=5000
Socks5=0
AllowExit=1
ShitConsole=1
ХЗ, что делать. Меня пускает. Правда не всегда с первого раза.
NLObP, я уже около 2 часов клацаю по серверам, один раз до синего экрана доклацался, не судьба :eek: ....
NLObP, я уже около 2 часов клацаю по серверам, один раз до синего экрана доклацался, не судьба :eek: ....
Могу только добавить к сказанному, как заходить, что надо повторять всё с начала, предварительно всё выключив и пакетхак и линейку.
Прямо сейчас зашел на Waytrel, на других полным полно народу.
Может быть из-за того что у меня ADSL, а то на allcheats и многих других форумах говорят что ООГ ХорошийМальчик и Л2Рейнджер не корректно работают с адсл или вообшще не работают...или эта теори я бред, т.к. вообще не пойму причем тут адсл....
или эта теори я бредэта теория - бред
Вобщем у меня рассудок окончательно помутнился после 5-часов сношения с л2 и phx....
я даже в линуксе из под вайна пробывал :confused:
чуствую себя чем-то обделённым =)))
ты напиши последовательность твоих действий,а я те скажу что ты не так делаешь
Revision: 76
Author: nlobp
Date: 01:05:00, 07 января 2009 г.
Message:
Выводим в лог о сохранении лога пакетов, для большей информативности;
Продублировал чекбокс isGraciaOff переменной isGraciaOf;
[+] Ищем скрытые процессы by MS-Rem;
[-] Исправлена ошибка - переименованная inject.dll не инжектилась в клиент;
[-] Исправлена ошибка функции Loop в PacketsT1.ini;
[+] запрещаем загружать два раза программу:
Добавлено через 7 минут
Кто это извращение придумал?
Я тут курнул заборной корейской травки и наваял, работать должно только на руоффе, тыц (http://depositfiles.com/files/pop1wg1j4)
Нашел ошибку в пакетхаке которая не давала работать с изменённым названием inject.dll.
С твоим инжектом заходит без всякого гемороя. Спасибо.
Revision: 78
Author: nlobp
Date: 01:35:00, 07 января 2009 г.
Message:
[!] С inj_ruoff.dll by Ratvier не нужны ухищрения при входе в игру;
ЗЫЖ Однако, пакетхак с вкл. режимом перехват рекомендуется запускать до клиента!
скачал последний пнх (Revision: 78), при запуске выдаёт
Driver phunter.sys not loaded, program terminated
Добавлено через 33 минуты
И поменяйте пожалуйста метод обработки изменений в фильтрах, чтобы после выставления галочки не перебирался весь список пакетов, а формировался заново, а то пнх бывает так подвисает, что связь с серваком теряет.
Чет я окончательно офигеваю...
Скачал я phunter, так как в 78 ревизи не хватает phunter.sys, вытянул от туда и всунул в phx, пакетхак успешно запустился, а вот л2 теперь ни в какую....
Themida блочит запуск линейки со словами
A monitor program has been found running in your system.
Please, unload it from memory and restart your program.
Убил все лишние процесы, реснул тачку, ничерта не помогло:unknw:
Чет мне окончательно не везёт))))
Ось: ХРень СП3
Моск: ИнтелПень4 3.1 ГГц
ОЗУ: 2Гб
Добавлено через 13 минут
Не грузится не только руОФФ но и остальные чистые клиенты, загрузился только с4 клиент.
Перед этим ни каких действий с линейкой не делал, опасного ПО не ставил, проявилось после того самого phuntera
Мот он какойто палёный...
phunter.exe MD5:38B7C01528245D702096C463AFF9355E
phunter.sys MD5:2492777C51C4DA9A9BB18B46E3134A9A
Добавлено через 1 час 0 минут
Уже и откат системы зделал, phunter.sys поудалял где только монжно, толку "0"
Добавлено через 2 часа 50 минут
Линейка запустилась, после того как удалил плагин шашки из квипа. Из-за этого плагина квип закрывался с ошибками, ну я и решил это устранить, в ответ запустилась ла2 :lol:
Добавлено через 9 минут
07.01.2009_9.25.51 Thread Start: поток сервера Thread.SH 376/2760 id:0
07.01.2009_9.25.51 Thread Start: поток клиента Thread[id].CH 384/2736 id:0
07.01.2009_9.26.06 Считываем имя соединения...
07.01.2009_9.26.06 Имя соединения:Тарам-пам-пам
Урааа!1!!!
Всем спасибо за внимание))))
[I]Добавлено через 1 минуту
Вот такой у меня разговор идиота с дураком, тоесть самого с собой:p
Xelat, Leviy, да, забыл phunter.sys положить. Здесь (http://wasm.ru/pub/21/files/phunter.rar) можно взять. Вечером включу в дистриб.
Правда толку от показа скрытых процессов пока нет, нельзя подключиться к запущенной линейке. Видимо шитконсоль или ГГ не дает.
Добавлено через 12 минут
И поменяйте пожалуйста метод обработки изменений в фильтрах, чтобы после выставления галочки не перебирался весь список пакетов, а формировался заново, а то пнх бывает так подвисает, что связь с серваком теряет.
Я что-то не пойму, что ты хотел? Чтобы при установке в фильтре не сразу принимались установленные значения фильтра?
Сечас так:
При выборе протокола, список пакетов для фильтра создается заново на основании выбранного packets*.ini. Неизвестные пакеты в процессе работы дописываются в конец фильтра. При установке/снятии галочки в фильтре лог пакетов немедленно обновляется. При смене протокола или при перечитывании инишек фильтр сбрасывается и формируется заново. При выходе из проги, установки фильтра сохраняются в options.ini (неизвестные пакеты не сохраняются) и при повторной загрузке программы используются для установки значений фильтрации.
Добавлено через 1 час 46 минут
Выложил нормальный дистрибутив.
NLObP,
Не знаю как при переключении протоколов, я его не юзаю, но у меня всё работает так:
При перечитывании инишек лог пакетов мгновенно обновляется, а вот при выставлении/снятии галочки в фильтре пнх запинается оооооочень надолго (т.е. не отвечает ни на что, ни на мышь, ни на клаву), при условии что в логе есть пакеты, и чем их больше, тем сильнее зависает пнх.
NLObP,
Не знаю как при переключении протоколов, я его не юзаю, но у меня всё работает так:
При перечитывании инишек лог пакетов мгновенно обновляется, а вот при выставлении/снятии галочки в фильтре пнх запинается оооооочень надолго (т.е. не отвечает ни на что, ни на мышь, ни на клаву), при условии что в логе есть пакеты, и чем их больше, тем сильнее зависает пнх.
Идеи есть, как ускорить работу с логом пакетов?
Идеи есть, как ускорить работу с логом пакетов?
Ты мне сперва подробно объясни что происходит при выставлении галочки? И почему всё срабатывает куда быстрее, если я очищу лог, выставлю нужные галки, и затем загружу лог из файла, чем если с загруженным логом буду галки выставлять?
аськами,скайпами,тсами или другими средствами связи обменяйтесь или воспользуйтесь для более продуктивной уже совместной работы над программой.
Сделайте пожалуйста, чтобы когда сервер рвёт коннект, пнх отправлял клиенту так же пакет, что нет коннекта с сервером. Чтобы из клиента можно было нормально выйти не закрывая пнх.
Не знаю с чем связано, но последняя версия с inj_ruoff.dll перстала работать
08.01.2009 21:47:26 Сохраняем лог...
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:26 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:27 Перехвачен коннект на 127.0.0.1:56574
08.01.2009 21:47:32 Thread Exit: основной поток ServerListen 248/2320
08.01.2009 21:47:32 Завершил работу L2phx...
NLObP, скачал последнюю версию, повторить не удалось.
И почему в поставке нету инжекта для обычных серверов (без шилд консоли)? Этот не все соединения передает пакетхаку
Я буду откатывать назад, техконтроль не прошел =) и обязательно положу.
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot