PDA

Просмотр полной версии : L2PacketHack 3.5.x


Страницы : 1 [2] 3 4 5 6

wanick
30.09.2008, 17:56
to NLObP:
Ты не мог бы выложить исходники той версии что с произвольными именами длл?

он лежит на svn, соседняя тема (http://coderx.ru/showthread.php?t=789)

xkor
30.09.2008, 18:57
Murdoc, пакетхак перехватывает соединение не как проксификаторы так что на 56574 не прокси и ничего не выйдет...

Murdoc
30.09.2008, 20:21
Murdoc, пакетхак перехватывает соединение не как проксификаторы так что на 56574 не прокси и ничего не выйдет...

я уже понял. Спасибо :)

RoZ
01.10.2008, 11:36
Не силён в потоках, но наткнулся в коде на такое:
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 тут разве должен проверяться ?

wanick
01.10.2008, 16:39
Lib тут разве должен проверяться ?

очепятка :)

Neptune
01.10.2008, 21:41
Прикрутил к последней версии работу в качесте прокси сервера SOCKS5. Т.о. перехват коннекта осуществляется средствами проксификатора (например Proxifier'а, лишь бы правила были правильно настроены). Прилагаю исходники, надеюсь что кто-нибудь соберет, т.к. у меня криво поставлены Jcl И Jvcl - постоянно течет память

П.С. название библиотек и самого л2пх изменены - защита от особо хитрых защит.

Breadfan
02.10.2008, 22:18
Иногда происходит самопроизвольное закрытие L2PacketHack, просто закрывается (безо всяких сообщений) и в клиентах рвется соединение(

Argot
03.10.2008, 09:56
Советаю избавится от этой строчки.

//ждем подключения
while not Thread[id].Connect do Sleep(1);
//подключились


так как тут есть 2 проблемы.
1. Обращение к общим данным.
2. По сути бесконечный цикл. Если клиент не подключится.


тут тоже некрасивое решение уничтожать хендл потока находсь в потоке. Раз умеете пользоватся сообщениями так решите проблему через них ))

EnterCriticalSection(_cs);
CloseHandle(Thread[id].CH);
LeaveCriticalSection(_cs);

ratvier
03.10.2008, 18:39
тут тоже некрасивое решение уничтожать хендл потока находсь в потоке.
Ничего некрасивого в этом не вижу, его можно закрывать где угодно О_о

Argot
03.10.2008, 19:38
Ничего некрасивого в этом не вижу, его можно закрывать где угодно О_о

Кому как это дурной тон в програмирование

xkor
03.10.2008, 20:00
Argot, ты не из бомонда?)

wanick
03.10.2008, 21:24
подскажите плиз, как проверить
dllScr: pointer , загружена библиотека или нет

перед вызовом FreeMemory

Argot
03.10.2008, 21:30
Argot, ты не из бомонда?)

Какого бомонда ?

xkor
03.10.2008, 23:00
wanick, а просто вызвать этот FreeMemory не заморачиваясь загружена ли либа низя?, помойму это ни к каким ошибкам не приведёт...

vovanchik
04.10.2008, 01:18
когда уже модифицируют l2phx так чтобы начало всё работать для Hellbound?

NLObP
04.10.2008, 01:22
когда уже модифицируют l2phx так чтобы начало всё работать для Hellbound?

У меня на Грации пашет 3.3.9

wanick
04.10.2008, 01:50
wanick, а просто вызвать этот FreeMemory не заморачиваясь загружена ли либа низя?, помойму это ни к каким ошибкам не приведёт...

вот именночто нельзя
если память не зарезервирована у мяня покрайней мере выпадывает с критом error и падает пакет-хак

vovanchik
04.10.2008, 02:01
У меня на Грации пашет 3.3.9
у меня файл патчит, коннектит якобы перехватывает. но пакеты не летят ))
беру нагло копирую inject с 320 и пакеты летают, правда ишибку на определённом пакете выкидывает.

NLObP
04.10.2008, 02:18
у меня файл патчит, коннектит якобы перехватывает. но пакеты не летят ))
беру нагло копирую inject с 320 и пакеты летают, правда ишибку на определённом пакете выкидывает.

Сейчас специально зашёл на астериос.ру (грация) версией из первого поста.

ps: инжектов, в одной из тем (http://coderx.ru/showthread.php?t=708), куча.

wanick
04.10.2008, 11:50
вот именночто нельзя
если память не зарезервирована у мяня покрайней мере выпадывает с критом error и падает пакет-хак

хахаха , блин придумал и проверка никакая не нужна и н Lib тоже )))

vovanchik
04.10.2008, 16:25
Сейчас специально зашёл на астериос.ру (грация) версией из первого поста.

ps: инжектов, в одной из тем (http://coderx.ru/showthread.php?t=708), куча.

короче моя проблема на asterius.ru
повторюсь:
патчит(а может и нет) но пакеты не летят. Почему возможно не патчит? потому что я выключяю пакетхак и клиент не дисконектит как будто и небыло пакетхака ))
Что делать? голова кругом идёт уже ))

wanick
04.10.2008, 22:30
короче моя проблема на asterius.ru
повторюсь:
патчит(а может и нет) но пакеты не летят. Почему возможно не патчит? потому что я выключяю пакетхак и клиент не дисконектит как будто и небыло пакетхака ))
Что делать? голова кругом идёт уже ))

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

vovanchik
04.10.2008, 23:24
как вариант играть честно , а вообще будем думать, надо самим тестировать

Это говорит человек который уже месяц на этом сайте висит? ))) и даже получает спасибки (наверное за полезный совет). О какой чесности ты? )) яя допустим на этом сайте не потому что мне хоца играть чесно ))
Хух.. о чём это я...?
вообще да... пробему нужно решать )) либо варианты какие нить ))

wanick
04.10.2008, 23:51
вообще как бы, непомню чтоб кроме NLObP мне спасибки говорил , хотя я какой ни какой вклад сделал в l2phx... насчет решать , всеравно что нибудь решим, сеня завтра надо сделать много дел ...иначе с работы нафиг выгонють :D :p, вовсе обленилсу

пакет-хак юзаю , гораздо больше месяца, и на форуме тарчу, зарегился только вот недавно

Добавлено через 12 минут
NLObP, фиксировал на SVN, последние изменения, впринципе пока глабальных недоработок не наблюдается, можно выкладывать релиз в сборке

с патокоми проблем вроде больше небыло тестил 4 суток не выключая, есдинственное что после выключения в не выгрузился из памяти а стал оперативу жрать до 100 мегов дошло я его кикнул из процессов непонятно почему :) жрал память))

xkor
05.10.2008, 16:09
сегодня постараюсь сделать поддержку длл-плагинов...

RoZ
05.10.2008, 18:07
Люди, большая просьба в первом закреплённом сообщении написать какую версию Delphi (2006, 2007) и fs, jcl, jvcl ставить. Покрайней мере кто чем компилит из основных маинтайнеров ?

xkor
05.10.2008, 18:21
RoZ, поидее скомпилиться нормально в Delphi 7, 2006 и 2007, в более ранних возможны проблемы из за Unicode кодировки модулей, но впринципе тоже скомпилить можно немного повозившись

версии дополнительных библиотек компонентов впринципе любые...

wanick
05.10.2008, 22:48
fs, jcl, jvcl , качай самые последние не ошибешся, я нашел в инете jcl, jvcl, прямо установки windows-Instaler ставится без проблем, пробовал сюда выложит
файл-манагер exe не принимает а архивом слишком тежело говорит так что.. :(

RoZ
05.10.2008, 23:55
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
Или ссылки подкинь пожалуйста

xkor
06.10.2008, 02:55
RoZ, угу jvcl (3.35) вроде тестовая под дельфи 2009...

Добавлено через 6 минут
Такс, на SVN сделал ревизию 38, добавлена поддержка плагинов.
НО!, пока поддержка плагинов не полностью стабильна, глючит если включать плагины до захода в игру, но если после захода то вроде всё пашет как надо.
Да и пока OnConnect и OnDisconnect из плагина не вызываются...

Вобщем смотрим и думаем что ещё добавить ибо счас плагин писать не очень удобно, мало встроенных возможностей.
ЗЫ исходники простейшего плагина так же на SVN...

wanick
06.10.2008, 09:45
Я так понимаю, палгины в нашем случае это тотже скрипт только уже ввиде скомпиленного dll,
это кулл, тоесть скрипты теперь не будут юзатся для изобретения сложных скриптов ну например как рыбалка это просто замечательно...

скрипты нужны щас для быстрых тестов :)

RoZ
06.10.2008, 11:50
Скинь плиз, 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 на С++ :)

xkor
06.10.2008, 15:18
воть, но структуры и функции на С++ сам переписывай.., мне пока не до этого...

xkor
06.10.2008, 16:41
кстати демонстрационный плагин просто отсылает пакет 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

Ссу кипятком! спасибо

RoZ
06.10.2008, 21:07
воть, но структуры и функции на С++ сам переписывай.., мне пока не до этого...
Как я уже говорил в Дельфи не силён...посему не пинайте сильно если что не так.
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;

xkor
06.10.2008, 21:32
RoZ, ты не прав, Info:=String(GetPluginInfo(version)) - копирует строку находящуюся по указателю возвращаемому GetPluginInfo в переменную Info так как типы PChar и String в одном месте памяти плохо ужываются ибо разные они....

RoZ
06.10.2008, 22:02
RoZ, ты не прав, Info:=String(GetPluginInfo(version)) - копирует строку находящуюся по указателю возвращаемому GetPluginInfo в переменную Info так как типы PChar и String в одном месте памяти плохо ужываются ибо разные они....Да, ты приводишь PChar к String, уже потом их приравниваешь, но строки в Дельфи очень хитрые люди делали, и они решили сэкономить на памяти и поэтому при присваивании String:=String копируется адрес, так сказать оптимизация во всей красе...
http://www.sources.ru/magazine/0804/delphistr.html - вот тут очень подробно расписаны особенности строк в Дельфи.
З.Ы. Почему собственно я это заметил, дело в том что если DLL написана на С++, то при уничтожении библиотеки, по адресу перменной Info пустота...
З.Ы.Ы. Прошу сильно не пинать :) и показать где я ошибся.

xkor
06.10.2008, 22:21
RoZ, дело в том что если преобразовывать String в PChar то получается просто указатель на первый символ строки, а вот если наоборот PChar в String, то надо перед первым символом ещё разместить счётчик ссылок и длинну строки, поэтому строка при этом копируется и получается что если есть переменная p типа PChar, то PChar(String(p))<>p

RoZ
07.10.2008, 00:17
RoZ, дело в том что если преобразовывать String в PChar то получается просто указатель на первый символ строки, а вот если наоборот PChar в String, то надо перед первым символом ещё разместить счётчик ссылок и длинну строки, поэтому строка при этом копируется и получается что если есть переменная p типа PChar, то PChar(String(p))<>pА может быть что "новый" String из PChar он создаёт в адресном протранстве DLL так как память первоначально была выделена под PChar там же? Впрочем всё это мои домыслы, пока буду разбираться в Дельфи дальше, авось чего еще и раскопаю.. :)
З.Ы. Кому интересно можно прочитать про похожую ситуацию вот тут http://forum.sources.ru/index.php?showtopic=98659# хотя она и не подходит на 100%. Завтра попробую переписать функцию по другому, как там советуют, хотя из меня Дельфист тот ещё...

xkor
07.10.2008, 01:01
ревизия 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

Grinch
07.10.2008, 16:28
О_о пипл бы хотел думаю получить скомпилированный файл анонс версии был, а первый пост не кто не перебил. лично я вдс клиент ставить не буду ибо руки кривые.:p

Emocean
07.10.2008, 19:05
А я надеялсо, что скрипты переписывать не придётсо :(

xkor
07.10.2008, 20:20
Emocean, а нах их переписывать?

Emocean
07.10.2008, 20:35
Вернее сказать, я ожидал, что переменные, функции в скриптах и плагинах будут использоваться идентичные, для совместимости.

xkor
07.10.2008, 21:00
ну они идентичны на сколько это возможно

Grinch
07.10.2008, 22:14
ну они идентичны на сколько это возможно
я бы не отказался от списка соответсвий ) а то местами запарился и описания структуры длл ) сори но я нуп в програмирование

xkor
08.10.2008, 23:54
плагинную поддержку бы ещё доделать немног перед выкладыванием, возможны небольшие но коренные так сказать изменения из за которых "старые" плагины будут работать не верно...

RoZ
09.10.2008, 09:41
ммм, народ stdcall можете заменить на cdecl ? Или должен использоваться именно stdcall ? Просто для совместимости с DLL написанной на С++ необходимо...или нереально ?

З.Ы. GetPluginInfo переделал на более безопасный вызов, вечером выложу на ваше рассмотрение.

ratvier
09.10.2008, 10:16
для совместимости с DLL написанной на С++ необходимо...
Нафиг не надо... void __stdcall myfunction(void);

RoZ
09.10.2008, 10:32
Нафиг не надо... void __stdcall myfunction(void);
И ? Получим на выходе _myfunction@16 какой нить...в то время как Дельфи использует просто myfunction. А так у нас будет экспортироваться нормальное myfunction как и в Дельфи.

Murdoc
09.10.2008, 11:17
есть предложение по модификации.
Неплохо было бы во вкладке "Просмотр", чтоб пакеты отправленные/измененные/вырезанные л2пх как то метились. При отладке скриптов было бы очень невредно.
Так же работа л2пх без инжекта как сокс прокси тоже бывает нелишним особенно на серверах со свякими защитами отлавливающими инжекты.

xkor
09.10.2008, 11:35
ratvier, майкрософт как то умудрилась весь свой API написать на С++ с соглашением stdcall, я собсно его сделал именно для совместимости с С++ и другими...

ratvier
09.10.2008, 12:02
Получим на выходе _myfunction@16 какой нить...в то время как Дельфи использует просто myfunction.
c++ и не должен экспортировать "нормальные" имена, кроме объявленных в extern c

xkor, в апи много си кода %)

RoZ
09.10.2008, 13:13
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. к чему это я... да, обращайся не по имени а по номеру функции....

RoZ
09.10.2008, 14:17
На С++ свет клином не сошелся. И если он для себя приписывает число параметров в экспорт - то это его проблемы.
Я вот пишу плагины на асме.
В WinAPI используется stdcall и я думаю что и плагины к phx должны именно так передавать параметры. В итоге получим нормальные dll.

p.s. к чему это я... да, обращайся не по имени а по номеру функции....
В том то и дело, в самом l2phx обращение идёт по имени. Что бы не плодить форки проекта под разных "программеров" хотелось бы унификации. Ладно сейчас попробую сделать через DEF альясами...посмотрим что получится из эксперимента... :) (*чувствую себя создателем Франкенштейна*)

xkor
09.10.2008, 14:31
dmitry501, точно, сделаю обращение по номеру

ЗЫ вот поэтому я и говорил что ещё поддержка плагинов не релизной версии, возможны глубокие изменения)

ЗЗЫ ещёб найти как при динамическом подключении обращаться по номеру...

ЗЗЗЫ SVN теперь тут - http://l2phx.pp.ru/svn/l2phx3/

RoZ
09.10.2008, 14:43
Про stdcall предложение я снимаю, решение для С++:
Заходим в Properties->Linker->Input->Module Definition File = наш_файл.def
В самом файле
EXPORTS
GetPluginInfo=_GetPluginInfo@4

dmitry501, точно, сделаю обращение по номеру
ЗЗЫ ещёб найти как при динамическом подключении обращаться по номеру...
ЗЗЗЫ SVN теперь тут - http://l2phx.pp.ru/svn/l2phx3/
А какие выгоды из этого можно получить ? Кроме скорости обращения ?

ratvier
09.10.2008, 15:33
1. Что такое Cardinal?
2. Как насчёт возврата из GetPluginInfo юникод строки?

xkor
09.10.2008, 15:46
RoZ, ну раз нашлось решение проблемы то не буду)

ratvier, 1. Cardinal это беззнаковое целое размером 4 байта, DWORD короче...
2. а смысл?

xkor
10.10.2008, 22:03
Ревизия: 44
Автор: xkor
Дата: 21:00:00, 10 октября 2008 г.
[ + ] Добавлен вывод подробной информации об ошибках в случае их возникновения;
[ * ] Релиз поддержки плагинов, теперь всё работает как планировалось, подробности в описании;

PS подробное описание системы плагинов выложу чуть поже, когда напишу)

Grinch
10.10.2008, 22:15
ура xkor, ток плиз с примерами :) и если возможно темку полезные функции переделать под плагины. имхо я основы разобрал тока на теме полезные функции

xkor
11.10.2008, 00:42
в соседней теме (http://coderx.ru/showthread.php?t=890) выложил основные сведения по плагинам, с примерам и полезными функциями к плагинам придётся немного подождать...

Breadfan
11.10.2008, 07:42
Кстати: возможно ли сделать опции выключения компа по команде, и при обрыве всех соединений ?

Grinch
11.10.2008, 08:46
Breadfan, думаю можно имхо длл это самостоятельная программа с доступам к системным функциям, в общем хз :) я б не стал так экспериментировать

xkor
12.10.2008, 23:15
Ревизия: 46
Автор: xkor
Дата: 19:10:00, 12 октября 2008 г.
[+] Из плагинов теперь можно добавлять в скрипты свои функции, для этого в плагине должны быть две функции: OnCallMethod и OnRefreshPrecompile;
[!] Внимание! Для корректной работы плагинов они должны быть скомпилированны в том же режиме что и L2PacketHack, тоесть если пакетхак скомпилирован с директивой Relise, то и плагины должны быть скомпилированными с ней же, в противном случае возможны конфликты в модуле FastMM4;

xkor
12.10.2008, 23:22
PS всё время забываю указывать лог ревизии и никак не могу понять как сделать чтоб его можно было менять поже, так что об изменениях можно почитать в change.log...

Argot
12.10.2008, 23:27
Ну исправте вы строчку

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;


дальше сами разберетесь ))

NLObP
13.10.2008, 00:20
Argot, может ты бы помог с кодом ListenServer, Server и Client. У меня плохо получается, а ты, я вижу, сечёш добро.

xkor
13.10.2008, 00:42
Несерьезно это.работоспособность ухудшает?, сильно сомневаюсь...

Argot
13.10.2008, 08:35
работоспособность ухудшает?, сильно сомневаюсь...

еще как ухудшает. Вот вам Смоделирую ситуацию.


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. У меня плохо получается, а ты, я вижу, сечёш добро.

Как помочь? Есть вопросы задавай если смогу отвечу )

xkor
13.10.2008, 16:44
Ревизия: 47
Автор: xkor
Дата: 15:50:00, 13 октября 2008 г.
[ * ] исправлен вход в бесконечный цикл при неудачном подключении к серверу, теперь при неудачных конектах не будут плодиться потоки, спасибо Argot;

PanAm
13.10.2008, 17:56
Для правильного отображения пакетов и соответственно фильтров необходим пакет ProtocolVersion. Есть идеи как без него обойтись? Или может в глобальной переменной протокол сохранять?может добавить в newxor.dll специальную функцию, которая будет возращать номер протокола?

Grinch
13.10.2008, 20:17
вот начал изучать "плагинописание" и встал вопрос о том как организовать такую вещь которая в скриптах стало такой привычной константы типа Name. пришла идея в самом пнх на вкладке плагин там где идёт описание плгина сделать активную зону где можно будет вводить эти константы а так же сохранять/загружать в файл.
///////////////////////////////////////////////////////////////
ответ xkor'a:
в плагине после компиляции имён переменных нету
исполняемый файл только с указателями и регистрами работает...
////////////////////////////////////////////////////////////////
Дык народ кто что придумает оригинальное и функциональное :) что реально организовать.

wanick
14.10.2008, 11:06
Grinch, а зачем вообще нужен Name, вот пример с авто-HP явно показывает что и без него можно обойтись.

PanAm
14.10.2008, 14:17
встал вопрос о том как организовать такую вещь которая в скриптах стало такой привычной константы типа Name.тут у меня две мысли -
1. Требуется дороботка ПакетХака - добавить в планины необязательные функции, которые будут вызыватся из контекстного меню в списке плагинов. как минимум для настройки и расширенной информации о плагине.
2. не требует дороботки ПХ и может быть дополнением к первому - обработка в плагине чат-строк типа "-myplugin -settings"
Далее станет вопрос сохранения и загрузка настроек, и тут опять есть два варианта -
1. возложить это полностью на автора плагина - он сам будет выбирать куда и как сохранять / грузить настройки- в реестр, INI-файл или в скрытый сектор диска с ключем шифрования на сьемном насителе.
2. Сделать анологично FAR - работать с настройками через API пакетхака.

Добавлено через 2 минуты
И есть еще пожелание - для ПХ свернутого в трей, дороботать меню - добавить подменю "Скрипты" и "Плагины" с динамическим списком и возможностью в щелчек влючать и выключать их.

Breadfan
14.10.2008, 17:10
или в скрытый сектор диска с ключем шифрования на сьемном насителе - это как раз то, что я искал )))

Grinch
14.10.2008, 17:34
Grinch, а зачем вообще нужен Name, вот пример с авто-HP явно показывает что и без него можно обойтись.
ну тут спорно конечно, допустим в пати 2 ше в плагине всё расписано и чё каждое окно зайти написать там чёта потом в другое и т.д. не спорю баферов можно организовать и без ников, а вот пла допустим я обычно играю как бд офф пати вписываю ник пла в скрипт к бд так бд может запустить кто угодно из моего клана главное в скрипте ник перебить. спросишь для чего это надо ну допустим машина не тянет 5-6 окон и ботом не охота играть вот и приходиться извращаться :) имхо нужно как то организовать ввод констант типа Name либо из файла либо с панели плагина или пакет хака.

xkor
15.10.2008, 01:58
Grinch, а как на счет ввода констант через HTML диалог прямо в игре?), можно даж в самом пакетхаке сделать встроенные функции для формирования таких диалогов, хотя это и так просто
ИМХО это самое рациональной на мой взгляд решение
ещё можно сделать возможность указывать для включаемого плагина "соединение по умолчанию" или даже выполнять его только для этого соединения

Добавлено через 5 часов 11 минут
Ревизия: 48
Автор: xkor
Дата: 00:50:00, 15 октября 2008 г.
[+] В контекстном меню иконки программы появились подменю "Скрипты" и "Плагины" в которых можно включить/выключить их не открывая окно программы;
FastMM4 настроен так чтобы плагины и программа были совместимы не зависимо от режима компиляции;

Гост
15.10.2008, 07:08
тут у меня две мысли -
1. Требуется дороботка ПакетХака - добавить в планины необязательные функции, которые будут вызыватся из контекстного меню в списке плагинов. как минимум для настройки и расширенной информации о плагине.
2. не требует дороботки ПХ и может быть дополнением к первому - обработка в плагине чат-строк типа "-myplugin -settings"
Далее станет вопрос сохранения и загрузка настроек, и тут опять есть два варианта -
1. возложить это полностью на автора плагина - он сам будет выбирать куда и как сохранять / грузить настройки- в реестр, INI-файл или в скрытый сектор диска с ключем шифрования на сьемном насителе.
2. Сделать анологично FAR - работать с настройками через API пакетхака.

Добавлено через 2 минуты
И есть еще пожелание - для ПХ свернутого в трей, дороботать меню - добавить подменю "Скрипты" и "Плагины" с динамическим списком и возможностью в щелчек влючать и выключать их.


Еще надо добавить меню для моего холодильника, чтобы он заказывал мне пиво через l2phx/ O_o
Народ, вы подождите сейчас пройдет осень, и вас отпустит ...

Argot
17.10.2008, 15:00
А задуматься что вы тут делаете ? ))

except
//добавил для исключения утечки памяти, NLObP
FreeMem(OldFunction, 255);
Exit;
end;
//добавил для исключения утечки памяти, NLObP
FreeMem(OldFunction, 255);

NLObP
17.10.2008, 16:46
Вот вся функция
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; лишнее?

xkor
17.10.2008, 21:53
А задуматься что вы тут делаете ? ))

except
//добавил для исключения утечки памяти, NLObP
FreeMem(OldFunction, 255);
Exit;
end;
//добавил для исключения утечки памяти, NLObP
FreeMem(OldFunction, 255);

а я то думал почему ShowMessage не работает...

Добавлено через 1 минуту
NLObP, освобождать надо то что больше НЕ будет использоваться...

Добавлено через 1 минуту
небольшая утечка лучше чем освобождение ещё используемой памяти...

Argot
17.10.2008, 22:05
Особождайте ее в 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;

NLObP
17.10.2008, 22:23
Особождайте ее в unhook`e

На сколько я помню он нигде не вызывается.

Argot
18.10.2008, 08:15
На сколько я помню он нигде не вызывается.

это как говорится уже ваши проблемы что вы не вызываете )).

Да и правда особой надобности нет. в Вызове.

RoZ
20.10.2008, 09:16
Шаблон 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)"

ratvier
20.10.2008, 19:48
Ну раз уж такое дело, вот хидер для си (так же совместим с с++)

xkor
24.10.2008, 18:19
ты зачем из файлового архива прогу удалил?, народ её в первую очередь там ищет, а про эту тему знают не многие...

RoZ
24.10.2008, 22:13
Баг:
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

для проверки прикрепил лог пакетов

xkor
24.10.2008, 22:54
NLObP, компилируй плиз в добавляением JCL дебаговой инфы, тогда при ошибках в программе будут указаны строки в которых ошибки возникли

ЗЫ включить добаление этой инфы можно отметив галочку "Insert JCL debug info" в меню Project (она самая нижняя)

Добавлено через 37 секунд
RoZ, пакетхак поидее в лог пустые пакеты и не пишет...

RoZ
24.10.2008, 23:10
RoZ, пакетхак поидее в лог пустые пакеты и не пишет...
Поидее да...но вот записал...хз даже почему... :)
Мои действия были стандартные, нашёл очередной сервер. Всё включил, создал персонажа. При загрузке мира ПКХ начал ругаться, лог сохранил и начал разбираться.

PIONER
25.10.2008, 19:43
http://s40.radikal.ru/i089/0810/3e/6fa5f533d1c4.jpg

Когда печатаю пакет, после написания каждого символа выскакивает такая штука, а птом вовсе не даёт писать

xkor
25.10.2008, 21:28
и всётаки зря кто то сделал:
//проверяем на выход за границу пакета
if PosInPkt>Size+10 then raise ERangeError.CreateFmt(result+' is not within the valid range of %d', [Size]);

NLObP
26.10.2008, 02:18
и всётаки зря кто то сделал:
//проверяем на выход за границу пакета
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'

на вкладке "просмотр" и "посылка" добавил показ места, где расположены данные, по клику мыши и нажатию клавиш (стрелок) вверх/вниз.

xkor
26.10.2008, 02:51
NLObP, хм, обосную плиз позицию строк
if value='range error' then exit;
потому как по хорошему они должны следовать сразу за вызовом value:=GetValue(...)
а у тебя получается что могут сработать строки типа
if param1='FUNC01' then value:=GetFunc01(strtoint(value))
когда value='range error' а это приведёт к ошибке...

NLObP
26.10.2008, 02:28
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]


Но может конечно я и ошибаюсь с местом расположения проверки.

xkor
26.10.2008, 03:11
Моё мнение эта ошибка появляется при несоответствии расшифровки пакета в packets.ini и содержимым пакета. Например пакет от грации, а расшифровка от С4.угу а ещё при ручном наборе пакета на вкладке отправка так как туда не всегда просто копируют пакет, а ещё могут и полностью или частично его воодить ручками, а поскольку пакетхак его анализирует прямо в процессе ввода то вылазиет ошибка

Argot
26.10.2008, 08:26
Еще не большой совет. Так как в используемом вами AdvApiHook.pas есть серьезные не дочеты, а конкретней не корректно работают некоторые функции. Используйте более новую версию, там решены эти проблемы )).

И пора менять метод перехвата.)) Так написать защиту от ваших методов очень просто.

xkor
26.10.2008, 13:03
Argot, что то я не видел новой версии AdvApiHook

Argot
26.10.2008, 14:36
Argot, что то я не видел новой версии AdvApiHook

то что ты не видел незначить что ее нет. Юзайте поиск.

в той версии что вы используете не всегда правильно работают функции.

SaveOldFunction, SizeOfCode... и еще какието. не помню просто в свое время я их сам начинал править потом случайно нашел, что MS-Rem :-) исправился и выпустил апграйд.

xkor
26.10.2008, 14:52
Argot, ты лучше бы ссылку выложил, не качать же каждую встречную AdvApiHook и сравнивать с имеющейся исча непойми какие изменения...

Добавлено через 1 минуту
такс, сделал удобный веб просмотр для svn:
http://l2phx.pp.ru/wsvn/
если заметите там гдето проблемы с кодировкой отпишитесь плиз

NLObP
26.10.2008, 14:56
На wasm.ru в статье про внедрение, новая версия advapi.pas?

Argot
26.10.2008, 15:19
На wasm.ru в статье про внедрение, новая версия advapi.pas?

Нет. А определить можно в коментах в начале файла )).

NLObP
27.10.2008, 00:26
Что-то не ищется новой версии. Может выложиши или ссылку дашь?

Добавлено через 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 бота, рыбачили. Решил проверить как дела идут.
Сматрю один у фишермана стоит и вроде закупку уже начал но ниче не делает, и тут в системном чате идет инфа о рыбалке, будто он рыбачит. Я подумал клиент сглючил, привел еще одного перса, и поправде стоит рядом с фишерманом ниче не делает. Хз че происходит, но складывается ощущение что пакеты одного окна шлются в другое.

NLObP
27.10.2008, 18:58
Чето намудрили вы в 3.4.1.59 и не думаю что в 60 было исправлено.
Вопщем стояли 3 бота, рыбачили. Решил проверить как дела идут.
Сматрю один у фишермана стоит и вроде закупку уже начал но ниче не делает, и тут в системном чате идет инфа о рыбалке, будто он рыбачит. Я подумал клиент сглючил, привел еще одного перса, и поправде стоит рядом с фишерманом ниче не делает. Хз че происходит, но складывается ощущение что пакеты одного окна шлются в другое.

Он ловит возле фишермена или стоит? На некоторых серваках, где угодно ловить можно. Пакетики ловли рыбы видно от рядом стоящих - рыбачащих персов. Системный чат - это в окне скрипта (если это конечно мой скрипт)? Подробнее инфу дай, можно в личку. Что за сервер, скриптом или валкером ловишь?

APXAHGEJI
27.10.2008, 19:11
Скриптом твоим пользуюсь. Системный чат это тот который в клиенте игры и от рядом стоящих там точно не может быть, точнее не должно быть, но есть. Сервер не скажу что хороший, но где попало рыбачить нельзя, да и повторюсь, приходил персом не на боте и было видно что бот не совершает никаких движений, тупо стоит у фишермана. И еще забыл, при этом отображается что инвентарь пустой, точнее там были только что купленные крючки, больше ничего.
Скриптом пользуюсь давно и много, но такое было впервые, значит что то в новых версиях пакет хака не то.

xkor
06.11.2008, 22:40
Revision: 61
Author: xkor
Date: 21:30:00, 6 ноября 2008 г.
Message:
[+] поддержка дополнительного шифрования id пакетов в Gracia на оффициальных серверах, спасибо ShadeOfNothing

Проверено на руоффе

xkor
08.11.2008, 17:37
немного поменял адрес репозитория для того чтобы отключить апач который сцуко жрёт 80% оперативной памяти сервера
теперь репозиторий тут - svn://l2phx.pp.ru/l2phx3
остальные два адреса без изменений

PanAm
11.11.2008, 18:25
мне кажется что надо немного изменить структуру программы, часть свойств перенести в XorCoding - туда добавить версию протокола (надо чтоб первый пакет тоже как-то проходил через DecryptGP) - для автоматического определения в просмотре пакетов, и имя соедениения - будет проще работать с нестандартными серверами.

Добавлено через 3 минуты
И может не стоит нагружать саму программу лишними настройками для разных хроник, а сделать разные newxor.dll а юзеры пусть уже выбирают какую загружать.

xkor
11.11.2008, 20:53
PanAm, по хорошему там минимум 30% кода надо вообще переписывать полностью...

NLObP
19.11.2008, 13:36
Revision: 62
Author: nlobp
Date: 12:18:00, 19 ноября 2008 г.
Message:
[-] Исправил работу кнопки "убирает все пакеты текущего типа из списка пакетов"

Name4Me
24.11.2008, 14:14
Подскажите можна ли вигрузить плагин командой с плагина (тоесть например в случае ерора отключить плагин...)

QaK
24.11.2008, 14:58
Подскажите можна ли вигрузить плагин командой с плагина (тоесть например в случае ерора отключить плагин...) пока нет.

Name4Me
24.11.2008, 22:11
Подскажите плиз как узнать в плагине имя соедения по его ID

xkor
24.11.2008, 22:53
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

PanAm
26.11.2008, 16:12
еще одно предложение - а нельзя -ли прикрутить к ПХ, что-то вроде "авторана"? чтобы можно было скрипты и плагины назначить на авто-запуск при старте ПХ, например прописать их в INI.

DrFall
04.12.2008, 13:06
Небольшой багрепорт. Иногда 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

xkor
04.12.2008, 13:09
DrFall, кстати да, замечал, но поскольку исправляется нажатием на одну из обведённых кнопочек пару раз, мне лень было смотреть что за нах, тем более там уже нагорожено стока не моего кода что разбираться лень)

NLObP
04.12.2008, 15:41
Небольшой багрепорт. Иногда pbx пакет от клиента обозначает как от сервера

Посмотрю, как время будет.

Name4Me
05.12.2008, 00:31
сори мож глупой вопрос но всё таки... Где в плагине лудше освобождать созданые компоненты, или можно не осфобождать? Так как столкнулся с такой проблемой если не осфобождаю плагин закриваеться нормально если освобождаю то закриваеться с еррором...

xkor
05.12.2008, 01:09
Name4Me, ну лучше всётаки особождать конечно, в процедуре Free, но это впринципе не критично...

Name4Me
05.12.2008, 21:13
Баг Не распознаёт пакет
39=RequestMagicSkillUse:d(skillID:Get.Skill)d(Ctrl Pressed)c(ShiftPressed)
Строке ID пакета пишет либо 3913,3914... в зависимости от скила

NLObP
06.12.2008, 02:18
Баг Не распознаёт пакет
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 пакет от клиента обозначает как от сервера.

Не мог бы ты дать лог пакетов с показанной ошибкой на рисунке для теста?

xkor
06.12.2008, 03:39
NLObP, не думаю что тут надо тестить, скорее всего просто гдето неверно назначается картинка или скорее она не меняется просто

NLObP
06.12.2008, 04:02
NLObP, не думаю что тут надо тестить, скорее всего просто гдето неверно назначается картинка или скорее она не меняется просто

Я поправил в одном месте, но незнаю поможет или нет.

Revision: 65
Author: nlobp
Date: 3:05:12, 6 декабря 2008 г.
Message:
[+] добавил кнопку для показа смещения в Hex/Dec с сохранением в options.ini;

Небольшие поправки...

wanick
06.12.2008, 15:31
Давно не включал L2phx
тут на оффе попробовал версию l2phx.3.4.1.65

вообще у меня име соединения не определилось
и еще вопрос packets.ini - на грацию кто-нибудь делает ?

Amorality
07.12.2008, 22:18
Такая проблема с твоим новым ПНХ, там где должны отображаться пакеты белое пустое место, их видно, только если тыкать в пустое место, исправь, не удобно

NLObP
08.12.2008, 03:41
Revision: 66
Author: nlobp
Date: 02:40:00, 08 декабря 2008 г.
Message:

Ограничение максимального количества строк в логе MaxLinesInLog, после чего скидываем в файл и очищаем лог. Настраивается в options.ini;

Name4Me
08.12.2008, 23:21
Хз всё таки не коректно расшифровывает 39 пакет от клиента непонятно по чему питаеться определить:

Tип: 0x39 (Unknow:)
Pазмер: 9+2

0002 h subID: 16 (0x0010)

xkor
09.12.2008, 03:07
Name4Me, да прост кто то в пакетхаке написал что признаком второго ID является не только d0 но и 39...

NLObP
09.12.2008, 10:30
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 его уже нет, это другое дело (в ТОДО).

xkor
09.12.2008, 14:12
NLObP, ясн, но надо бы было както тогда сделать лучше чтобы какие пакеты двухИДишный в packets.ini указывалось...

NLObP
10.12.2008, 02:08
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 минуту
Такая проблема с твоим новым ПНХ, там где должны отображаться пакеты белое пустое место, их видно, только если тыкать в пустое место, исправь, не удобно

Мне надо подробно рассказать, что приводит к такой ошибке. Я не могу повторить её.

xkor
10.12.2008, 03:03
Мне надо подробно рассказать, что приводит к такой ошибке. Я не могу повторить её.теоретически такая ситуация должна возникать когда происходит ошибка во время формирования/изменения списка пакетов

Xelat
11.12.2008, 06:39
теоретически такая ситуация должна возникать когда происходит ошибка во время формирования/изменения списка пакетов

у меня такая ситуация один раз была, помоему когда я скрипт включил, а он работал некорректно, и выдал ошибку List of bounds...

Name4Me
12.12.2008, 12:44
Предложение добавить кнопку или настройку чтоб не сбрасивался лог после вихода клиента... А то бивает нуна посмотреть что происходит перед виходом...

NLObP
12.12.2008, 14:47
Предложение добавить кнопку или настройку чтоб не сбрасивался лог после вихода клиента... А то бивает нуна посмотреть что происходит перед виходом...

Если стоит "Запоминать пакеты", то при выходе чара из игры лог пакетов сохраняется в папке ".\logs\" с именем чара и временем выхода из игры. Надо этот лог просто загрузить и смотреть.

Витя
13.12.2008, 10:07
возникла вот такая проблема в пакете 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)

NLObP
13.12.2008, 10:12
возникла вот такая проблема в пакете itemList невидет ID пухи

Надо правильно настроить packetst1.ini (он для Камаеля-Грации). Тот который в комплекте, не совсем полный и правильный.

PS: Для 0x11 (ItemList) пакета я вчера на форуме выкладывал, как можно поправить.

ratvier
13.12.2008, 12:43
Баг или фича? Шифрование пакетов начинает колбасить (грация)

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;

wanick
13.12.2008, 16:03
Зависает 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;

Grinch
14.12.2008, 16:16
wanick, виснет я хз как у тебя но после 20 секунд шифрация пакетов сбивается на оффе. и клиент зависает

NLObP
21.12.2008, 17:32
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 пакетов);

marslem
21.12.2008, 19:46
ты подружил пхк и л2ру?

ZliLO
21.12.2008, 20:41
Тоже очень интересует этот вопрос...

NLObP
22.12.2008, 00:41
ты подружил пхк и л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...

marslem
22.12.2008, 02:05
дааааа,работы еще не початый край...

ZliLO
22.12.2008, 15:11
кста... а где лежит версия 69? в скомпилированных нету

xkor
23.12.2008, 03:30
ZliLO, знач нигде пока), завтра выложу вечером если не забуду...

PIONER
23.12.2008, 05:11
Ребят, на l2server.ru понимает трафик пакетхак? нету возможности проверить сейчас.

nezabudkin
23.12.2008, 13:57
l2server.ru понимает трафик пакетхак
Там недавно обновили крипто-защиту :(

xkor
23.12.2008, 23:09
Magistr, нигде для работы некоторых файлов не хватает...

Добавлено через 25 минут
Revision: 70
Author: xkor
Date: 22:00:00, 23 декабря 2008 г.
Message:
[+] к программе можно подключаться как к socks5 прокси серверу (при установке соответствующей галочки);

ЗЫ скомпиленая версия как всегда тут - http://l2phx.pp.ru/arhive/

NLObP
24.12.2008, 16:17
xkor, подробней можно, что требуется для работы с клиентом? Я не совсем в курсе, сорри.

xkor
24.12.2008, 19:04
NLObP, с каким клиентом?
если ты про то как пользоваться сокс5 прокси в пакетхаке дык надо просто поставить в нем соответствующую галочку и любым проксификатором направлять линейку на пакетхак как на прокси сервер)

ЗЫ можно даже теоретичски на одном компе запускать пакетхак а линейку с проксификатором на другом)
ЗЗЫ порт на который направлять трафик проксификатором указывается при старте пакетхака - "На 56574 зарегистрирован локальный сервер"

Xelat
24.12.2008, 20:34
Кульный апдейт! :) Народ, рекомендую ProxyCap, у меня с ней никаких проблем не возникало, в линейку через неё играю.

NLObP
25.12.2008, 00:24
Кульный апдейт! :) Народ, рекомендую ProxyCap, у меня с ней никаких проблем не возникало, в линейку через неё играю.

А FAQ есть что в нем прописывать? В частности на страничке Proxies.

Xelat
25.12.2008, 01:06
А FAQ есть что в нем прописывать? В частности на страничке Proxies.

Дак там же всё интуитивно понятно...
Добавляешь в Proxies новый сервер, выбираешь сокс 5, вводишь свой айпи, и порт 56574.
Затем в Rules добавляешь приложение shieldConsole.exe, указываешь его роутить через твой прокси, который ты добавил в Proxies.
И всё, весь траффик линейки после этого будет роутиться на пнх.

NLObP
25.12.2008, 05:00
Указываю:
в 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 не грузятся, пока не выгружу пакетхак.
Что делаю не так?

Xelat
25.12.2008, 06:07
Хм... та же фигня... :(
Лёха, а ты хоть тестил это?

xkor
25.12.2008, 10:59
конечно висим, пакетхак тока трафик в котором первые два байта это размер понимает!, а от shieldConsole даже трафик линейки идет зашифрованный полностью (включая байты размера) вот пакетхак и не может размер распознать...

NLObP
25.12.2008, 13:04
конечно висим, пакетхак тока трафик в котором первые два байта это размер понимает!, а от shieldConsole даже трафик линейки идет зашифрованный полностью (включая байты размера) вот пакетхак и не может размер распознать...

А алгоритм шифрации в shieldconsole.exe тот же или другой?
Почему не получается трафик с l2.exe завернуть на пакетхак?

xkor
25.12.2008, 13:08
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 поста выложили :)

xkor
25.12.2008, 13:31
nezabudkin, ну обьяснение в моём предыдущем посте, поддержки l2.ru пока что нету...

NLObP
25.12.2008, 13:36
А можно ли перехватить трафик между клиентом и консолью?

Я пакетхаком перехватываю (лог выше выложен), вижу пакеты (правильные или нет на 100% не отвечу), но, послать свои нельзя, рвется связь.

ZliLO
25.12.2008, 15:04
а я даже пакеты не вижу... создаеться два чара... и нифига, ни одного пакета нету=(
[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

PanAm
25.12.2008, 16:05
WSA error 10061 - это номер ошибки сокета? а второе число что значит?

NLObP
25.12.2008, 16:11
WSA error 10061 - это номер ошибки сокета? а второе число что значит?

Вот чего значит
sendMSG('WSA error ' + inttostr(WSAGetLastError)+'/'+inttostr(hsocket));

Попытка обхода shieldConsole.exe на l2.ru;
После внедрения в клиент, галочка "Перехват" сбрасывается. =)
Потом "Перехват" снова ставим, перед выбором сервера.

PS: Версия 70 тоже работает, в режиме перехват.

nezabudkin
26.12.2008, 01:53
NLObP,

ЗАРАБОТАЛО!!!
и пакеты удается отсылать и серверу и клиенту!
за первый час тестирования вылетов небыло.
Только подключиться удалось с третьего раза.

ZliLO
26.12.2008, 14:37
а у меня нету ни перса, ни пакетов=(

NLObP
26.12.2008, 14:50
ЗАРАБОТАЛО!!!
и пакеты удается отсылать и серверу и клиенту!
за первый час тестирования вылетов небыло.
Только подключиться удалось с третьего раза.

В настройки изменения вносил или как есть запустил и работает?

Добавлено через 11 минут
ZliLO, перехват перед выбором сервера включай.

nezabudkin
26.12.2008, 16:37
В настройки изменения вносил или как есть запустил и работает?
Взял твою сборку PHX, НИЧЕГО не трогал в настройках, включал перехват как ты и описал. Удалось залогиниться где-то с 3го - 4го раза.


Пакеты начинает выдеть после того, как выберешь чара и войдешь в игру...
Почему-то всегда получается id соединения = 1

Grinch
26.12.2008, 19:49
nezabudkin, а ты пробовал отправить пакет?

ZliLO
26.12.2008, 19:55
в том то и дело... у меня логинится, чаром заходит... а чар не появляеться, и пакетов нету=((( ну еще попробую, отпишусь=-)

NLObP
27.12.2008, 00:03
Почему-то всегда получается id соединения = 1
Да, так и есть. В старых хрониках с 0 соединения начиналось, сейчас оно не успевает освободиться и используется 1 и выше. Почему? Я не знаю.

nezabudkin
27.12.2008, 00:32
nezabudkin, а ты пробовал отправить пакет?
Да, отправлял Say2 и серверу и клиенту, все работает, бана пока нету...

NLObP
27.12.2008, 00:47
Да, отправлял 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: с первого раза не заходит на сервер - это наверное с пакетхаком не связано.

Xelat
27.12.2008, 02:24
PS: с первого раза не заходит на сервер - это наверное с пакетхаком не связано.

У меня с первого раза зашло! Спасибо огромнейшее! ))
Кстати, а ты ещё не пробовал отвязать клиента? :) Всмысле послать клиенту логаут, а пнх оставить за главного? :)

xkor
27.12.2008, 03:56
Кстати, а ты ещё не пробовал отвязать клиента? Всмысле послать клиенту логаут, а пнх оставить за главного? а вот этого на оффе точно не советую, на пакеты геймгварда пока умеет отвечать только геймгвард...

Xelat
27.12.2008, 05:27
Сделайте пожалуйста, чтобы при снятой галочке на плагине - файл плагина можно было перезаписать.

xkor
27.12.2008, 05:52
Xelat, вообщето так и сделано изначально)
пока галочка плагина снята с ним можно делать что угодно...

Xelat
27.12.2008, 06:33
Xelat, вообщето так и сделано изначально)
пока галочка плагина снята с ним можно делать что угодно...
ппц... полчаса назад не работало! :) Сейчас после твоей мессаги решил перепроверить - и заработало! :) я в шоке!
PS. есть подозрение что тогда не работало, т.к. в процессе выполнения плагина возникала ошибка, которая не убивала плагин, он работал дальше, но видимо уже нормально не отвязывался.

Grinch
27.12.2008, 13:33
через час работы клиент подвисает :( хз бывает что и без пакт хака виснет. посадил еще раз на тест.

nezabudkin
27.12.2008, 19:09
через час работы клиент подвисает хз бывает что и без пакт хака виснет. посадил еще раз на тест.

Это Иннова логает. Вчера вечером у меня тоже логало, а ночью я 5 часов был в онлайне и не одного лага!
Вчера вечером переписал свой скрипт Бота-локомотива под Грацию. Если бан не схвачу, в понедельник вечером выложу на всеобщее обозрение!!!

Гость1
27.12.2008, 19:47
Что такое бот локомотив? :)

Гость5
27.12.2008, 19:52
Ах да, кстати, пакетхак подключаеться к клиенту норма ) то что там трафик шифрованый( но все равно. Я вот например уже соски автоматически крафчу :) пакет один и тот же отправляю на сервер через каждые 80 секунд, вот он и крафтит ) так что уже польза есть ;) Ждем еще обновлений пакетхака ;)

Жалко бота нету( или я не нашел еще ( Может есть у кого ? )

Xelat
27.12.2008, 21:20
Добавьте плиз в Options.ini опцию отключения подтверждения выхода из пнх.

nezabudkin
28.12.2008, 02:55
Что такое бот локомотив?
Поиск рулит :)

Xelat
28.12.2008, 03:12
Пожалуйста сделайте, чтобы пнх понимал скрипты в папке scripts не только с расширением .txt, но и .pas.

Xelat
28.12.2008, 08:10
Вот все инишки к руоффу. Если хотите, можете в релизы включить, я думаю многим пригодится.

А так же, если кому надо - список серверов (с их айдишниками).

NLObP
28.12.2008, 18:19
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;

Xelat
28.12.2008, 21:20
Кстати, на l2.ru в пакетах от сервера InventoryUpdate и ItemList каждый набор параметров одного итема сожержит на 1 параметр типа dword больше. Что он означает пока незнаю, но значение у него всегда -9999.

ratvier
28.12.2008, 23:14
[+] ShitConsole в Options.ini включает обход ShielConsole
Кто это извращение придумал?

Я тут курнул заборной корейской травки и наваял, работать должно только на руоффе, тыц (http://depositfiles.com/files/pop1wg1j4)

NLObP
29.12.2008, 00:10
Кто это извращение придумал?

Я тут курнул заборной корейской травки и наваял, работать должно только на руоффе, тыц (http://depositfiles.com/files/pop1wg1j4)

Что-то не пашет, виснет при выборе сервера. Твоё решение точно работатет? На какой версии?

ratvier
29.12.2008, 00:38
NLObP, на 68 и 70 нормально. Естесственно, новая опция обхода должна быть выключена

NLObP
29.12.2008, 00:42
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

xkor
29.12.2008, 04:46
ratvier, что то я из дебагера плохо понял что эта длл делает с WSPStartup из mswsock.dll и куда это прыжок - "jmp far ptr 0BFB1h:0F33E0011h"

ratvier
29.12.2008, 08:26
NLObP, только что вообще без всяких извращейний зашел, нипоняяятно


jmp far ptr 0BFB1h:0F33E0011h
Это часть данных, забавно ида это место дизасмит

nezabudkin
29.12.2008, 13:35
Revision: 72
Author: nlobp

Пробовал на РУ ОФФ 5 раз в подряд зайти, каждый раз с разними ошибками не конектится :(

NLObP
29.12.2008, 16:44
Пробовал на РУ ОФФ 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.

NLObP
30.12.2008, 10:33
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+ так что я останусь при своем решении, но всеравно спс.

NLObP
31.12.2008, 04:36
Revision: 73
Author: nlobp
Date: 03:33:00, 31 декабря 2008 г.
Message:

Поднял иконки вверх на вкладке "Просмотр";

Добавил парочку групбоксов для однообразия;

DrFall
01.01.2009, 06:58
Репозиторий мертв. Tortose подвисает при попытке соединения. Браузер говорит, что мол несчем соединятся. Хотеть последнюю версию.

krendel
01.01.2009, 09:01
72 тупо не видит,хотя после перехвата при выборе серверов и определяет клиент и при самой игре он отображается но перехвата пакетов нет.Другие версии не пробовал

xkor
01.01.2009, 15:25
DrFall, возможно были временные проблемы связи, счас всё пашет

ZliLO
01.01.2009, 19:06
ааа, люди, а висте это работает? а то мб я идиот, и забыл четакое клёпанный куяк , и поээтому и не пашет у меня?

NLObP
02.01.2009, 01:32
Revision: 74
Author: nlobp
Date: 00:05:00, 02 января 2009 г.
Message:
[-] Исходник почему-то лежал в plugins\Coding.pas (мешало компиляции);

Мелкие исправления заголовков групбоксов;

ZliLO
02.01.2009, 01:50
Если бы еще своевременно они появлялись в скомпиленном виде=) просто для меня СВН -это лес, им я хз че тама=)

NLObP
02.01.2009, 02:48
Постараюсь выкладывать по быстрее.

DrFall
02.01.2009, 06:19
Не могу посмотреть репозиторий. Ни в какую. В чем может быть проблема? Остальные я так понимаю репозиторий видят...

NLObP
02.01.2009, 06:29
Не могу посмотреть репозиторий. Ни в какую. В чем может быть проблема? Остальные я так понимаю репозиторий видят...

Смотри через браузер (второй пункт) или установи TortoiseSVN (первый пункт)

DrFall
02.01.2009, 06:50
Все давно стоит, если смотрю через браузер, то:
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'

NLObP
02.01.2009, 07:02
DrFall, даже не знаю, что сказать. Прямо сейчас проверил п.1 и п.2 оба работают.

Добавлено через 59 секунд
Если бы еще своевременно они появлялись в скомпиленном виде=) просто для меня СВН -это лес, им я хз че тама=)

Выложил. Смотри первый пост.

Xelat
02.01.2009, 13:01
У меня кстати в Tortoise SVN тоже нифига не получилось, поэтому заюзал SmartSVN 5.

DrFall
02.01.2009, 16:33
Может ктонить добрый зальет на рапиду/аплоад/файлфронт/вебфайл ну или хоть куданить?

ZliLO
02.01.2009, 17:34
Для тех кто в танке вот прямые ссылки, у меня качаеться все норм.
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)

DrFall
03.01.2009, 18:48
Я танкист. Вероятно я забанен гдето на тамошнем домене, или на хосте или хз где и как, но не качает ни в какую. Залейте 74 на рапиду пожалста.

Xelat
05.01.2009, 06:15
Исправьте пожалуйста баг:
пакет UserInfo
h(CubicsSize:Loop.01.0001)h(CubicID)

А вот реально пришедший пакет. Как такое могёт быть?
0583 h CubicsSize: 0 (0x0000)
0585 h CubicID: 0 (0x0000)

ZliLO
05.01.2009, 12:40
Нда... своими опытами я могу сказать что на висте фишка с руоффом не пашет=(( Зато на ХР все прекрасно=)

QaK
05.01.2009, 13:22
Исправьте пожалуйста баг:чет я не понял, в чем баг?

xkor
05.01.2009, 17:43
QaK, в том что когда CubicsSize = 0 не должно быть ни одного поля CubicID

Leviy
05.01.2009, 21:30
Пробывал 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
05.01.2009, 21:37
ХЗ, что делать. Меня пускает. Правда не всегда с первого раза.

Leviy
05.01.2009, 21:47
NLObP, я уже около 2 часов клацаю по серверам, один раз до синего экрана доклацался, не судьба :eek: ....

NLObP
05.01.2009, 23:44
NLObP, я уже около 2 часов клацаю по серверам, один раз до синего экрана доклацался, не судьба :eek: ....

Могу только добавить к сказанному, как заходить, что надо повторять всё с начала, предварительно всё выключив и пакетхак и линейку.

Прямо сейчас зашел на Waytrel, на других полным полно народу.

Leviy
06.01.2009, 00:05
Может быть из-за того что у меня ADSL, а то на allcheats и многих других форумах говорят что ООГ ХорошийМальчик и Л2Рейнджер не корректно работают с адсл или вообшще не работают...или эта теори я бред, т.к. вообще не пойму причем тут адсл....

NLObP
06.01.2009, 00:12
У меня адсл.

QaK
06.01.2009, 01:57
или эта теори я бредэта теория - бред

Leviy
06.01.2009, 02:49
Вобщем у меня рассудок окончательно помутнился после 5-часов сношения с л2 и phx....
я даже в линуксе из под вайна пробывал :confused:
чуствую себя чем-то обделённым =)))

marslem
06.01.2009, 18:28
ты напиши последовательность твоих действий,а я те скажу что ты не так делаешь

ZliLO
06.01.2009, 22:27
Мб у тебя виста?

NLObP
07.01.2009, 02:31
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 не нужны ухищрения при входе в игру;

ЗЫЖ Однако, пакетхак с вкл. режимом перехват рекомендуется запускать до клиента!

Xelat
07.01.2009, 04:46
скачал последний пнх (Revision: 78), при запуске выдаёт
Driver phunter.sys not loaded, program terminated

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

Leviy
07.01.2009, 11:26
Чет я окончательно офигеваю...
Скачал я 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

NLObP
07.01.2009, 15:14
Xelat, Leviy, да, забыл phunter.sys положить. Здесь (http://wasm.ru/pub/21/files/phunter.rar) можно взять. Вечером включу в дистриб.

Правда толку от показа скрытых процессов пока нет, нельзя подключиться к запущенной линейке. Видимо шитконсоль или ГГ не дает.

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

Я что-то не пойму, что ты хотел? Чтобы при установке в фильтре не сразу принимались установленные значения фильтра?

Сечас так:
При выборе протокола, список пакетов для фильтра создается заново на основании выбранного packets*.ini. Неизвестные пакеты в процессе работы дописываются в конец фильтра. При установке/снятии галочки в фильтре лог пакетов немедленно обновляется. При смене протокола или при перечитывании инишек фильтр сбрасывается и формируется заново. При выходе из проги, установки фильтра сохраняются в options.ini (неизвестные пакеты не сохраняются) и при повторной загрузке программы используются для установки значений фильтрации.

Добавлено через 1 час 46 минут
Выложил нормальный дистрибутив.

Xelat
07.01.2009, 21:22
NLObP,
Не знаю как при переключении протоколов, я его не юзаю, но у меня всё работает так:
При перечитывании инишек лог пакетов мгновенно обновляется, а вот при выставлении/снятии галочки в фильтре пнх запинается оооооочень надолго (т.е. не отвечает ни на что, ни на мышь, ни на клаву), при условии что в логе есть пакеты, и чем их больше, тем сильнее зависает пнх.

NLObP
07.01.2009, 23:49
NLObP,
Не знаю как при переключении протоколов, я его не юзаю, но у меня всё работает так:
При перечитывании инишек лог пакетов мгновенно обновляется, а вот при выставлении/снятии галочки в фильтре пнх запинается оооооочень надолго (т.е. не отвечает ни на что, ни на мышь, ни на клаву), при условии что в логе есть пакеты, и чем их больше, тем сильнее зависает пнх.

Идеи есть, как ускорить работу с логом пакетов?

Xelat
08.01.2009, 02:26
Идеи есть, как ускорить работу с логом пакетов?
Ты мне сперва подробно объясни что происходит при выставлении галочки? И почему всё срабатывает куда быстрее, если я очищу лог, выставлю нужные галки, и затем загружу лог из файла, чем если с загруженным логом буду галки выставлять?

marslem
08.01.2009, 05:27
аськами,скайпами,тсами или другими средствами связи обменяйтесь или воспользуйтесь для более продуктивной уже совместной работы над программой.

Xelat
08.01.2009, 17:51
Сделайте пожалуйста, чтобы когда сервер рвёт коннект, пнх отправлял клиенту так же пакет, что нет коннекта с сервером. Чтобы из клиента можно было нормально выйти не закрывая пнх.

NLObP
08.01.2009, 22:48
Не знаю с чем связано, но последняя версия с 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...

ratvier
08.01.2009, 23:25
NLObP, скачал последнюю версию, повторить не удалось.
И почему в поставке нету инжекта для обычных серверов (без шилд консоли)? Этот не все соединения передает пакетхаку

NLObP
08.01.2009, 23:58
Я буду откатывать назад, техконтроль не прошел =) и обязательно положу.