PDA

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


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

Yegor
02.05.2009, 02:27
Да я заметил что LSP включаеться вроде как всего лишь записью 1го ключа в реестре.

По поводу inject - почему он не работает там где есть ГГ. Как ГГ находит что мы перехватили функцию из winsock connect?

xkor
02.05.2009, 03:00
Yegor, ГГ вроде сканирует несколько важных по его мнению функций на наличие джампов в начале и если находит то восстанавливает правильное начало функций
в число важных входит и connect

alexteam
02.05.2009, 12:58
ну неправильно через реестр с ним работать когда для этого есть намного более удобные API функции...
Ну, функции инсталяции там в отдельном юните, поправь того индуса, переписав его на свой лад..
а то индус кудато пропал.. видно опять какуюто глюкалку пишет :D

Sherman
02.05.2009, 13:46
Вопрос. Мне потребовалось в TXorCodingOut.EncryptGP изменить размер пакета, как лучше это сделать? Через VirtualProtect и
copymemory(@size, @newsize, 4) ? ;)

или обьявить Size не как const а как var?

Во втором варианте мне кажется пакетхак это не проглотит?

alexteam
02.05.2009, 13:53
var надежнее.

xkor
02.05.2009, 23:05
Во втором варианте мне кажется пакетхак это не проглотит?он об этом и не узнает), const от var при передаче параметров отличаются только на этапе разработки, после компиляции между ними нет разници, ну развешто переменная переданная по const может быть в области памяти предназначенной только для чтения, но это только если переменная была константой на этапе разработки что к EncryptGP точно не относиться...

Добавлено через 1 минуту
ЗЫ тут тока другой вопрос - на сколько адекватно пакетхак воспримет изменение размера ибо я не помню кода вызывающего EncryptGP...

alexteam
02.05.2009, 23:19
ну, не особо то и получиться. во всяком случае у меня в коде так уж точно.
ибо.
xorS.DecryptGP(packet.data, Packet.Size - 2);
для того чтобы было возможно должно быть аля

temp := Packet.Size -2;
xorS.DecryptGP(packet.data, temp);
Packet.Size := temp + 2; //пакеты с длинной <= 2 будут всеравно игнорироваться.

xkor
02.05.2009, 23:22
alexteam, ага, не прокатит значит), хотя ошибок по идее тоже не вызовет...

alexteam
02.05.2009, 23:26
ну, вызывать то оно и не должно. переменная явно не в защищенной памяти так как считаеться во время вызова. но и толку от такого изменения тоже нет. результат не запишеться магическим образом обратно.. а уничтожиться оптимизатором по прыжку в стеке на уровень вверх.

Yegor
03.05.2009, 05:08
В предыдущих версиях быда опция: "Пропускать логин - программа начинает работать после соединения с Game-Сервером". Кто подскажет для чего это? Из кода ниже тоже непонятно что оно делает ;).


//пропускать логин?
//если (пропускать логин и мы не в игре)
if isPassLogin and (not IsGamel) then
begin
//отсылаем данные, сначала длину, а потом сам пакет
send(CSockl,PacketB, 2, 0);
repeat
until send(CSockl, PacketB, recv(SSockl, PacketB, $FFFF, 0), 0)<=0;
end
else
begin//иначе (пропускать логин и мы в игре)
//прием пакетов
repeat
if not GetSocketData(SSockl, Packet.DataB, Packet.Size-2) then break;
if IsGamel
then PacketProcesor(PacketB, CSockl, id, 4)
else PacketProcesor(PacketB, CSockl, id, 2);
if not GetSocketData(SSockl, Packet, 2) then break;
//sendMSG('size: '+IntToStr(Packet.Size));
until False;
end;


Такое ощушение что изначально должна была быть возможность залогиниваться с помошью PH, но это так и не было реализовано.

Добавлено через 1 час 28 минут
И ещё просветите зачем функция:

function GetSocketData(Socket: TSocket; var Data; const Size: Word): Boolean;
var
Position: Word;
Len: Integer;
DataB: array[0..$5000] of Byte absolute Data;
begin
Result:=False;
Position:=0;
while Position<Size do begin
Len:=recv(Socket,DataB[Position],1,0);
if Len<=0 then Exit;
Inc(Position, Len);
end;
Result:=True;
end;


Я как понял она с помошью "recv" считывает нужное количество байт с сокета по 1 байту. Почему так сделали? Что случится если попытаться сразу считать необходимое кол-во байт одним махом.

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

xkor
03.05.2009, 11:34
Yegor, хм, кстати да, надо бы заменить
Len:=recv(Socket,DataB[Position],1,0);
на
Len:=recv(Socket,DataB[Position],Size-Position,0);

Yegor
03.05.2009, 12:38
А если так?

Len:=recv(Socket,DataB[0],Size,0);

Хотя зачем то же было сделано по 1 байту. Я так понял эта функция пытаеться считать не больше size байт с сокета но если данных будет меньше то цикл завершиться раньше:

if Len<=0 then Exit;

alexteam
03.05.2009, 12:40
лучше уж читать _все_ во временный буфер и потом разбирать на запчасти уже его.
в общем после 83й так и сделано..

Yegor
03.05.2009, 12:49
Все что считывает эта функция за 1 вызов можно считать одним пакетом или необходимо как то вручную их разделать?
Киньте пожайлуста ссылкой на тему где описана структура пакетов Л2.

alexteam
03.05.2009, 13:10
[Size = длина пакета 2 байта][Data = данные пакета длинной size-2]

Yegor
04.05.2009, 00:05
Все с логикой передачи приема пакетов разобрался. Пробовал считывать с сокета ровно столько сколько на него перешло и передавать сразу на 2ой сокет - не работает. Действительно приходиться читать сначала первые 2 байта (длину пакета) и считывать именно это количество байт.

Попутно вопрос. Почему на некоторых серверах (ГГ там нет), если внедрить inject - то даже после ввода логина и пароля клиент зависает, хотя ПХ пищет что этот коннект проигнорирован? Такое ощущение что клиент уже шлет в никуда и не получает ответ.

alexteam
04.05.2009, 00:48
нужно смотреть индивидуально. теории строить не особо хочется.

Yegor
04.05.2009, 01:12
Прикольно когда инжектишь то на том сервере показываетт что проигнорирован конект на 2106. А если LSP то показываеться что оказываеться логин сервер на 4446 порту :D.

Sherman
04.05.2009, 12:07
В релизах 102 и 106, возможно и во всех о которых мне неизвестно, обнаружен глюк.
Галка на пути к нюксор отключена.
Работа с равпакетами, выбераем работу с другой библиотекой шифрации.
Кнопка вжата. Если отжимаем кнопку, и перезагружаем равлог, продалжает расшифровывать с помощью внешней библиотеки.

alexteam
04.05.2009, 13:13
Sherman, поправил.

Sherman
04.05.2009, 13:59
А можно последний измененный скомпелированный вариант выложить в скомпилированные версии?

alexteam
04.05.2009, 15:41
мне что опять дергать правки с 3.6 в 3.5 ?... пардон, но я пас..

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

Добавлено через 24 минуты
релиз l2phx.3.5.6.109

Revision: 112
Date: 13:39:37, 4 мая 2009 г.
Message:
[-] Утечка памяти при использовании сокетного движка
[-] Проблеммы с невхор в обработчике равлогов
[-] убрал кнопку "свернуть в трей" дабы люди c нестандартные темами винды не наблюдали аксес виолейшин на старте.

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

Yegor
04.05.2009, 20:49
В вашем классе TThread объявлены 2 поля XorS и XorС одинакого класса TCodingClass.
Кто нибуть знает зачем их 2?

alexteam
04.05.2009, 20:57
хы.
мы траффик модифицируем ведь ?.
если модифицируем значит на входе и на выходе ксоринг с разными ключами ?
вот поэтому и 2.

Yegor
04.05.2009, 22:16
хы.
мы траффик модифицируем ведь ?.
если модифицируем значит на входе и на выходе ксоринг с разными ключами ?
вот поэтому и 2.

Ну не знаю, я проверил эти объекты через некоторое время работы - все их поля остаються с одинаковыми значениями.

alexteam
04.05.2009, 22:23
ага, они одинаковы. пока мы не вмешиваемся в траффик.
ты попытайся через отправку отправить хотябы 1 пакетик. и посмотри.

Yegor
04.05.2009, 23:17
Да как раз попытался - действительно меняеться

Добавлено через 48 минут
Ураа!!! пол дня мучался наконецто паравильно дешифровал пакеты в своей мини программе. Оказалось ключ брал не с 4 а со второй позиции пакета. :rolleyes:

alexteam
04.05.2009, 23:31
хех..
в текущем пх класс TencDec в модуле uencdec - являеться "почти" компонентой предназначеной для дешифровки траффика.
ей нужно прилепить 2 проперти onNewPacket (вызываеться при декоде пакета) и onNewAction(вызываеться при получении имени соединения и еще чегото..), задать настройки через рекорд TEncDecSettings
и гонять через нее траффик с помощью ее же функций DecodePacket и EncodePacket.
как гонять - можно глянуть в usocketengine или udata.
все константы и структуры используемые ею можно найти в usharedstructs и несколько констант в uglobalfuncs

xkor
05.05.2009, 00:26
alexteam, осталось ли что то в программе от меня?)
ЗЫ кстати WM реквизиты мои из окна "О программе" думаю лучше уже убрать...

alexteam
05.05.2009, 00:51
xkor, да, конечно осталось! идея!!!. :D
ок. уберу %)

xkor
05.05.2009, 01:44
alexteam, хех, учитывая что саурон везде где может орёт что авторские права на идею пакетоперехватчика принадлежат ему великому от меня в проге ничего не осталось)))

Yegor
05.05.2009, 02:04
Что если реализовать для удобства подобные функции:


unit L2Packets;

interface

type
RL2CharSelected = record
name,title:string;
charID,sessionID,clanID,sex,race,classID,x,y,z,sp, level,karma,int,str,con,men,dex,wit:longword;
currentHP,currentMP: Double;
end;

function GetL2CharSelected(const pck: string;var l2Obj: RL2CharSelected): boolean;

implementation

uses phxPlugins;

function GetL2CharSelected(const pck: string;var l2Obj: RL2CharSelected): boolean;
var
i: integer;
begin
Result:= false;
if pck[1] <> #$0B then exit;
i:= 2;
l2Obj.name:= ReadS(pck, i);
l2Obj.charID:= ReadD(pck, i);
l2Obj.title:= ReadS(pck, i);
l2Obj.sessionID:= ReadD(pck, i);
l2Obj.clanID:= ReadD(pck, i);
inc(i, 4);
l2Obj.sex:= ReadD(pck, i);
l2Obj.race:= ReadD(pck, i);
l2Obj.classID:= ReadD(pck, i);
inc(i, 4);
l2Obj.x:= ReadD(pck, i);
l2Obj.y:= ReadD(pck, i);
l2Obj.z:= ReadD(pck, i);
l2Obj.currentHP:= ReadF(pck, i);
l2Obj.currentMP:= ReadF(pck, i);
l2Obj.sp:= ReadD(pck, i);
inc(i, 8);
l2Obj.level:= ReadD(pck, i);
l2Obj.karma:= ReadD(pck, i);
inc(i, 4);
l2Obj.int:= ReadD(pck, i);
l2Obj.str:= ReadD(pck, i);
l2Obj.con:= ReadD(pck, i);
l2Obj.men:= ReadD(pck, i);
l2Obj.dex:= ReadD(pck, i);
l2Obj.wit:= ReadD(pck, i);

Result:= true;
end;

end.


зы: в функциях ReadS и.т.д. поправил что бы был инкремент передаваемого индекса на количество считанных байт.

dmitry501
05.05.2009, 06:08
Реализуй, ради бога. В скриптах делай что хочешь. В пакетхаке не надо. Если на твоем сервере структура пакета такая, то это не значит что ее надо железно в пакетхаке делать. Существуют сервера С1,С2,С3 и т.д. до CT2 final, кроме того есть множество серверов, типа абисса, C4+CT1,5 и т.д.

Yegor
05.05.2009, 09:57
Это я привел пример для стандартного пакета из камаель - хелбоунд. Можно наклепать функция под разные протоколы и оформить их как разные модули. Конечно это лишняя работа, но зато размер скрипта станет меньше и он будет более читаемым. Я буду делать и подобные функции для модификации основных типов пакетов и даже создания некоторых с нуля.

alexteam
05.05.2009, 12:11
xkor,а, это тот дядка которй ломал когдато мною написаный "античит",... ух и шороху та глюкалка наделала, правда програминг был на уровне "дети, а вот туда лучше не смотреть"...
я того дядку вообще не уважаю.. у него толи комплекс неполноценности толь еще чего, прости господи, он мне чемто напоминает товарища Рак В.И. (есть у нас в городе архитектор такой) который заявил свои права на бмзшную серию (гостовскую). при чем никакого отношения к разработке этой серии он не имел.

NLObP
05.05.2009, 12:32
alexteam, может на СВН ответвление (Branch?) сделать с кодом включающим паксскрипт, на случай появлении исправлений в текущей версии?

alexteam
05.05.2009, 12:33
сделаю. как только будет что бранчить %)
я вчера сел плотненько посидел за ним, ибо в последнее время из за работы мало уделял времени.
отключил дебаг, его не будет пока не найду способ ставить бряки в таймерах и в процедурах содержащих не threadsave вызовы.
ибо вылет всей проги из за переполнения стека - нехорошо. так что пока без дебага. и так прелестей хватает, имхо.

Grinch
05.05.2009, 15:42
xkor,а, это тот дядка которй ломал когдато мною написаный "античит",... ух и шороху та глюкалка наделала, правда програминг был на уровне "дети, а вот туда лучше не смотреть"...
я того дядку вообще не уважаю.. у него толи комплекс неполноценности толь еще чего, прости господи, он мне чемто напоминает товарища Рак В.И. (есть у нас в городе архитектор такой) который заявил свои права на бмзшную серию (гостовскую). при чем никакого отношения к разработке этой серии он не имел.
угу на счет этого дядьки согласен :) меня на ач он забанил недавно хотя месяца 2-3 точно я там не постил, и причину бана поставил темку в которая была закрыта до того как я там зарегался, во номер! так что согласен может он и умный малый, но ему бы попроще стать. если у меня хобби проектировать фасадные системы это не значит что я их придумал, хотя изменения в технологию я иногда большие вношу :)

J-Fobos
05.05.2009, 17:57
Можно и мне в клуб тех кто не любит саурона? Он бан мне влепил на ач за то что я там гайд по пх выложил :)

NLObP
05.05.2009, 18:20
alexteam, скачал 109 версию. Прослушивать порт стоит 7788, в логе пишет "На 27678 зарегистрирован локальный сервер". Ставлю порт 7789, в логе пишет "На 27934 зарегистрирован локальный сервер". Вроде и не в хекс цифра порта. Так должно быть?

В редакторе скриптов в списке скриптов кнопка "Ниже" не работатет.

Лог пакетов, при включенной опции "Автоматически сохранять лог пакетов", так никуда и не сохраняется.

dmitry501
05.05.2009, 19:06
раз уж пошел оффтоп,

xkor,а, это тот дядка которй ломал когдато мною написаный "античит",... ух и шороху та глюкалка наделала, правда програминг был на уровне "дети, а вот туда лучше не смотреть"...
я того дядку вообще не уважаю.. у него толи комплекс неполноценности толь еще чего, прости господи, он мне чемто напоминает товарища Рак В.И. (есть у нас в городе архитектор такой) который заявил свои права на бмзшную серию (гостовскую). при чем никакого отношения к разработке этой серии он не имел.

Так это ты автор пресловутого "античита"? Тебя до сих пор на ПП некоторые ищут :)

J-Fobos
05.05.2009, 19:11
Я уже писал об этом в сообщении 702 (http://coderx.ru/showpost.php?p=28569&postcount=702). На вкладке "посылка" при выборе направления посылки "серверу" пакет отображается (в правой части окна) как пакет для клиента, а когда выбрать направление "клиенту" то пакет будет отображается как для сервера. в 109 так и осталось.

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

alexteam
05.05.2009, 19:59
NLObP, поправил все описаное...
править в обоих сурсах сразу - зло както ((

dmitry501, если речь идет про чтото с копирайтами AT (дай бог памяти) имеющее консольную версию серверной части )для запуска на дебиане под вайном) то вроде мое детище, правдо недоработаное пипец.

Добавлено через 4 минуты
зы. такая же темка была и для муонлайн, и даже доработана.
кстати... здается я знаю у кого один нехороший человек спи**л идею внутреннего проксика
зы2. хай ищут. если проект и будет возобновлен то он будет закрытым, и будет делаться только для одного сервера.

Добавлено через 2 минуты
Я уже писал об этом в сообщении 702 (http://coderx.ru/showpost.php?p=28569&postcount=702). На вкладке "посылка" при выборе направления посылки "серверу" пакет отображается (в правой части окна) как пакет для клиента, а когда выбрать направление "клиенту" то пакет будет отображается как для сервера. в 109 так и осталось.
вот.. блин.. у в 3.6 это место поправлено..
а в 3.5 нет... одновременное редактирование - зло.. вечно забываеш чтото поправить в "другой" версии.

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

Добавлено через 39 минут


Релиз 3.5.7.110

Revision: 114
Date: 17:55:19, 5 мая 2009 г.
Message:
[-] кнопки "к серверу" и "к клиенту" были поменяны местами.
[-] автосохранение логов
[-] кнопка "вниз" в списке используемых скриптов.
[-] порт на который стартует пх теперь будет указыватся корректно.

NLObP
05.05.2009, 20:53
alexteam, ты вторую выкладывай, мы её тестить начнем. =)

J-Fobos
06.05.2009, 01:42
7.110 отлично работает :)

И опять предоложения по улутшению программы: сделать в меню в трее (которое вызывается при клике правой кнопкой мышки) побольше пунков.
Например добавить:
Опции
Показать лог L2ph
Показать лог RAW
Плагины -> список плагинов с возможностю их включить/выключить
Скрипты -> список скриптов с возможностю их включить/выключить
(вроде в 95 похожее было, незнаю почему убрали)

И еще... Есть окно Дополнительно>Процессы. Оно вроде как только для информации. А если сделать в этом окне дополнительные функции, напрмиер ставлю галочку возле процесса и пх весь его трафик начинает пропускать через себя (если это не сложно). Повысит универсальность программы :)

Yegor
06.05.2009, 02:52
Объясните далекому зачем некоторые функции например по обновлению списка соеденений вызываються из потоков через SendMessage(...), почему не напрямую?

NLObP
06.05.2009, 02:55
Yegor, для потокобезопасности. Потоки не могут изменять основную форму.

Yegor
06.05.2009, 03:52
Интересно почему не могут? В чем подвох.

NLObP
06.05.2009, 03:58
Yegor, почитай про потоки. Вот кусочек объяснения
Дело в том, что библиотека VCL, предоставляющая Delphi-приложениям различные визуальные компоненты, не является потокобезопасной. Это означает, что прямой вызов методов визуальных компонентов из различных потоков почти наверняка разрушит работу приложения. При работе с параллельными потоками требуется обеспечить синхронизацию таким образом, чтобы методы визуальных компонентов вызывались только из основного потока приложения (VCL-потока).

TAMBIK
06.05.2009, 13:33
Здравствуйте.Я извиняюсь нечо непонимаю в програмирование.
у мне вопрос нельзя в проге по аналогу фильтр для просмотра пакетов
сделать также для блокирования пакетов. то есть ставиш галочку и пакет блокируется

QaK
06.05.2009, 13:48
TAMBIK, а смысл? тебе этот пакет все равно приходит (это если ты траф хочешь сэкономить), а заблокировать можно и в скрипте (для других нужд).

TAMBIK
06.05.2009, 14:21
зачем скрипт если моно будит в проге убивать пакеты
ПРОСЬБА к разработчику Верните кнопку Запоминать пакеты
как до в 83 версии

скрипт убивать пакет чтоб выбирать можно какой
пример откуда взчть

или скрипт блокировать пакет будит когда я ставлю галочкув проге какой смотреть

NLObP
06.05.2009, 14:25
Верните кнопку Запоминать пакеты

Есть такая (правее замочка, как и в старых версиях). В 110 версии работает нормально.

alexteam
06.05.2009, 14:32
учимся выражать свои мысли связано.

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

TAMBIK
06.05.2009, 14:38
акак сделать скрипт чтоб ставил галочку какой пакет смотреть а в скрипте
он блокировался то есть инфа о том какой пакет блокировать в скрипт поступала из проги

//alexteam: написать скрипт создающий форму с перечнем пакетов загружаемых из packets.ini и в нем же и блокировать.
стоп оффтоп.

NLObP
06.05.2009, 15:16
акак сделать скрипт чтоб ставил галочку какой пакет смотреть а в скрипте
он блокировался то есть инфа о том какой пакет блокировать в скрипт поступала из проги

В поиске третим постом (http://coderx.ru/showpost.php?p=27729&postcount=2) идет.

TAMBIK
06.05.2009, 17:51
В поиске третим постом (http://coderx.ru/showpost.php?p=27729&postcount=2) идет.

эт я видил
там над номер пакета писать какой блокировать
а было бы удобно отметил в проге и все пакет заблокирован
если можно пример приведите как сделать как написал
/alexteam: написать скрипт создающий форму с перечнем пакетов загружаемых из packets.ini и в нем же и блокировать.
как менять номер пакета из проги
if FromClient and (pck[1]=#$0C) then pck:='';

alexteam
06.05.2009, 18:08
а на кой черт тебе из проги !?
СДЕЛАЙ ФОРМУ В СКРИПТЕ. и бери данные с нее.
и вообще - эта тема для кажется для багрепортов и предложений. твое предложение отвергнуто.

еще раз: стоп оффтоп.

Yegor
07.05.2009, 00:36
Добавил всего 1 визуальный JV елемент на форму и программа сразу стала компилироваться в 5 раз дольше. :mad:

Sherman
08.05.2009, 15:46
Кто нибуть сталкивался с вылетом АВ при массированном прохождении пакетов от сервера?
У меня после порядка 2-3 минут работы вылетает пакетхак. Релиз последний из выложеных 110 помоему. Пока локализовать ошибку не успел. Но м.б. есть какие то идеи? И эм... нубский вопрос а где в пакет хак галочка "запоминать пакеты" :)

alexteam
08.05.2009, 15:59
от сервера - не сталкивался.
недавно тестил утечку памяти. забежал в интерлюд локацию, врубил инвул и проагрил почти весь лес на себя. и ушел курить.
пх за 10 минут работы и такого издевательства над ним выжил.. куда уж массовей..
а кнопки запоминать пакеты там нет. в 3.6 есть.

Sherman
08.05.2009, 16:26
от сервера - не сталкивался.
недавно тестил утечку памяти. забежал в интерлюд локацию, врубил инвул и проагрил почти весь лес на себя. и ушел курить.
пх за 10 минут работы и такого издевательства над ним выжил.. куда уж массовей..
а кнопки запоминать пакеты там нет. в 3.6 есть.

Я использовал l2phx.3.5.7.110 с newxor.dll
Смысл в том что спокойная беготня вполне нормально работает, и пакетхак ведет себя стабильно.
Ситуация с АВ возникала в Хирорифте например, или во время массовых замесов например за Антараса.

Хм... думаю надо смотреть в сторону newxor, единственное слабое место может быть лишь одно - смена ключей шифрования. Если существует более одного потока параллельно использующих один и тот же экземпляр TXorCoding или TXorCodingOut то в момент когда я делаю смену ключа посредством Move, другой поток может его читать.....
Вопрос в следующем, а может ли существовать в пакетхак параллельный поток использующий тот же экземпляр TXorCoding или TXorCodingOut ?

Grinch
08.05.2009, 19:51
Sherman, а ты какие скрипты пользуешь в этот момент?

alexteam
08.05.2009, 19:59
а может ли существовать в пакетхак параллельный поток использующий тот же экземпляр TXorCoding или TXorCodingOut ?не должно. ибо пока не обработана порция данных - следующая порция не поступит на обработку.
в любом случае. смотри в сторону tcriticalsection и им подобных.

Sherman
09.05.2009, 10:01
Sherman, а ты какие скрипты пользуешь в этот момент?

простой скрипт:

var
gObjID,gX,gY,gZ:Cardinal;

begin
if FromServer and (pck[1]=#$0C) then
begin
gObjID:=ReadD($6);
gX:=ReadD($E);
gY:=ReadD($12);
gZ:=ReadD($16);
PickUp(gObjID,gX,gY,gZ);
end;
end.

NLObP
10.05.2009, 22:49
Xkor, почему-то по ссыке "Удобный просмотр через браузер тут (http://l2phx.pp.ru/wsvn/listing.php?repname=l2phx3&path=%2F&sc=1)" все время сообщение "The page you are looking for is temporarily unavailable. Please try again later."

alexteam
10.05.2009, 23:06
это "чтото" лежит... и пахнет...
хкор грит что апача..

Grinch
10.05.2009, 23:12
Sherman, если это весь скрипт то я хз в чем трабла, у меня как правило траблы были во время осад только со спамом банок и автотаргетом :) пх загинался

xkor
11.05.2009, 03:35
NLObP, alexteam, угу, лежит, тока не апач а РНР, причем вчера лёг окончательно, теперь вообще не запускается сука, даже после переустановки(

alexteam
11.05.2009, 13:33
гадюшники подчисть ;)

xkor
11.05.2009, 15:33
alexteam, не нашел я никаких гадюшников...

alexteam
11.05.2009, 15:36
гадюшники - ака логи.

xkor
11.05.2009, 15:41
alexteam, РНР делал тока один лог, наделал 7 метров, я его удалил, ничего не изменилось...

alexteam
11.05.2009, 16:10
гм, а больше изменений в файловой системе он и не делает.
разве что mysql еще. (что более вероятно)

xkor
11.05.2009, 17:00
alexteam, mysql у меня вообще нет)

pcoder
11.05.2009, 23:42
Подскажите пожалуйста, в Висте инжект работает или нет?

QaK
12.05.2009, 08:29
pcoder, а проверить самому никак? Где-то работает, где-то нет.

xkor
12.05.2009, 22:23
фух, PHP всё таки воскресил, правда хз как стабильно теперь будет пахать, думать он походу стал дольше...
короче удобный просмотр репозитория снова пашет

creaDo
12.05.2009, 22:28
что-то я ничего не могу понять в последних версиях ПХ...
русоф смогли коректно вскрыть? если да то что в настройках ставить?

alexteam
12.05.2009, 22:30
надо будет убрать ту галочку с настроек, либо хотябы переименовать.

NLObP
12.05.2009, 22:53
надо будет убрать ту галочку с настроек, либо хотябы переименовать.

Убирать не надо. ведь она для всех офов подходит, а на фришках еще нет такого (или не на всех).

creaDo
12.05.2009, 22:55
ну по описанию я суть галочки понял :D
в настройках что надо прописывать? кста процес л2 называеться lineageii.exe а не l2.exe и нужен ли вообше инект, в дефолте он не включен... я в пх неочень хорошо розбираюсь, использовал только гибрид 2ух версий 3.4.1.6х на ява-криво-грации, немного помучался с версиями 7х-8х которые чз несколько мин после входа на русоф убивали клиент и ща немогу понят как вообше идет перехват в новых версиях :confused:

alexteam
12.05.2009, 23:14
плохо видно понял. если и дальше речь про руофф ведешь.
а по поводу lineageii.exe, инжекта я лучше вообще промолчу... ибо мне еще предупредилку за мат влепят...

Sherman
13.05.2009, 12:39
Столкнулся с тем, что в лог не попадают пакеты, отправляемые с закладки. Есть сервера, где помимо смены ключей шифрования существует еще и подписывание пакетов, что вличет за собой увеличение длинны пакета. В таких случаях было бы удобно отображать, дла анализирования подписи, пакеты отправляемые через пакетхак в логах пакетхака.

.....

Только что понял что реализовать сложно, т.к. формирование подписи происходит в newxor перед шифрованием пакета, т.е. в лог такой пакет попадет в зашифрованном виде.

alexteam
13.05.2009, 12:58
очень странно. ибо первыми же строчками в отправке являются

Visual.AddPacketToAcum(Packet, not ToServer, EncDec);
Visual.processpacketfromacum;

добавляющие его в лог пакетов. с последующим отображением в списке.

Sherman
13.05.2009, 17:09
очень странно. ибо первыми же строчками в отправке являются

Visual.AddPacketToAcum(Packet, not ToServer, EncDec);
Visual.processpacketfromacum;

добавляющие его в лог пакетов. с последующим отображением в списке.

Ты наверное имеешь ввиду оправку из скрипта. Из скриптов и плагинов пакет действительно в логе виден. А вот пакет, отправляемый из закладки посылка отправляется напрямую:


sendThis(HexToString(Memo4.Lines.Text));
где:

procedure TfVisual.sendThis(str: string);
var
Packet : TPacket;
begin
if Length(str)>=1 then
begin
if Assigned(currenttunel) then
begin
FillChar(Packet.PacketAsCharArray,$ffff,#0);
Packet.Size := length(str) + 2;
move(str[1],Packet.Data,Packet.Size - 2);
Ttunel(currenttunel).EncryptAndSend(Packet,ToServe r.Down);
end;
if Assigned(currentLSP) then
begin
FillChar(Packet.PacketAsCharArray,$ffff,#0);
Packet.Size := length(str) + 2;
move(str[1],Packet.Data,Packet.Size - 2);
TlspConnection(currentLSP).encryptAndSend(Packet, ToServer.Down);
end;
end;
end;

Красным пометил. Именно в этом методе формируется подпись и увеличивается длинна пакета. И интересно было бы видеть в логе сгенерированный в newxor.dll новый пакет.

гм...
Хотя.. для целей отладки можно заставить newxor просто писать лог

ЗЫ. Только заметил.... "ЭТО НЕ ЧИТ ФОРУМ" жжж прикольно )
//QaK: это тебе прикольно, а всех уже задрал отвечать на топы типа: дайте плз пакет на адену, ну очень надо

alexteam
13.05.2009, 17:34
может быть я тупой... может я очень тупой... но мля.. отправка и в скриптах, и в плагинах, и в табе "отправка" происходит через один метод EncryptAndSend и первыми строчками там - добавление пакета в "список пакетов".

Добавлено через 5 минут
...правда в 3.6...

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

Добавлено через 2 минуты
тяжко возится с 2мя версиями одновременно.
по крайней мере... я помню что это делал раньше...
http://l2phx.pp.ru/wsvn/filedetails.php?repname=l2phx3&path=%2F3.6.x%2Funits%2Fusocketengine.pas

Sherman
13.05.2009, 19:47
{ TODO : не проверено. отображение пакета при отправке }
//эта функция safecalled мессаги тут не надо
if assigned(Visual) then
begin
Visual.AddPacketToAcum(Packet, not ToServer, EncDec);
Visual.processpacketfromacum;
end;


if ToServer then
begin
EncDec.EncodePacket(Packet, PCK_GS_ToServer);
sSendTo := clientsocket;
end
else
begin
EncDec.EncodePacket(packet, PCK_GS_ToClient);
sSendTo := serversocket;
end;

EncodePacket в свою очередь вызывает:
CurrentCoddingClass.EncryptGP(Packet.data, Packet.Size - 2);

а у меня в EncryptGP при отправки пакета c ID=$C0 например генерируется подпись пакета состоящия из 6 word, я увеличиваю Packet.Size и дописываю в хвост Packet.data эти 6 слов. Но....

if assigned(Visual) then
begin
Visual.AddPacketToAcum(Packet, not ToServer, EncDec);
Visual.processpacketfromacum;
end;

вызывается до того как я изменил пакет... и в результате в логе оригинальный пакет. Я вот о чем.

xkor
13.05.2009, 19:50
я увеличиваю Packet.Size и дописываю в хвост Packet.data эти 6 слов.тут уже обсуждалось что newxor не может влиять на размер пакета...

Sherman
13.05.2009, 20:05
xor, как говорилось одним из старых рыцарей королевства Дельфи, нельзя, но если очень хочется, то можно, например вот так:

procedure TXorCodingOut.EncryptGP(var Data; const Size: Word);
var
i:integer;
pck:array[0..$FFFF] of Byte absolute Data;
NewSize:word;
begin
case pck[0] of
$C0:
begin
if Size = 28 then
begin
NewSize:=39;//Size;
Sign(@pck);
copymemory(@Size, @NewSize, 2); //NewSize=39
end;
end;
end;
....
и погнали ксорить

xkor
13.05.2009, 20:44
Sherman, что ты с переменной Size не сделаешь она никак на Packet.Size в пакетхаке не повлияет ибо это отдельная переменная создающаяся при вызове CurrentCoddingClass.EncryptGP(Packet.data, Packet.Size - 2);

но ты прав в одном, если очень хочется, то:
procedure TXorCodingOut.EncryptGP(var Data; const Size: Word);
var
i:integer;
pck:array[0..$FFFF] of Byte absolute Data;
NewSize: PWord;
rSize: Word;
begin
rSize:=Size;
case pck[0] of
$C0:
begin
if rSize = 28 then
begin
rSize:=39;
NewSize:=PWord(@pck);
Dec(NewSize);
NewSize^:=rSize;
end;
end;
end;
....
и погнали ксорить, тока учитывая что размер не в Size а в rSize

Добавлено через 2 минуты
кстати что такое "Sign(@pck);"

Sherman
13.05.2009, 20:48
Сигн, ф-ция генерации подписи...
кстати да.... спасибо за кусок варианта со сменой длинны...
не подумал я про это дело

xkor
13.05.2009, 20:50
Sherman, а ну тогда её тож там куда надо допишешь)

alexteam
13.05.2009, 20:56
модифицируй сразу саму функцию декода/енкода в пх. че уж там..
сурсы есть же.

Sherman
14.05.2009, 00:22
модифицируй сразу саму функцию декода/енкода в пх. че уж там..
сурсы есть же.

пакетхак у меня не компелится :(

Через ОллиДбг смотрел, содержимое пакета у меня правельно меняется, т.е. pck указывает правельно. Ф-ция в конец пакета пишет подпись, с этим все нормально. Просто хотелось визуально увидить результат, т.к. для генерации подписи используется непосредсвенно библиотека защиты моего сервера.

alexteam
14.05.2009, 01:45
"Ф-ция в конец пакета пишет подпись, с этим все нормально."
размер только не меняется. и та "подпись" будет обрезана на дальнейших шагах.

NLObP
15.05.2009, 01:33
В версии 3.5.9.113 в закладке Скрипт/скриптинг кнопка "обновить список" работает не корректо. Кинул в папку скриптов новый скрипт, а в списке не появляется. При клике на кнопку - список то уменьшается, то увеличивается. В папке 10 скриптов, при запуске пакетхака и открытии окна скриптов - показывает 7. Если свернуть и потом развернуть окно, то показывает 10 скриптов. Если нажать обновить, то сбрасывает до 7, иногда показывает 8 скриптов.

Name4Me
15.05.2009, 13:01
Уже писал но, возможно автор забыл ОГРОМНАЯ просьба добавить кнопку отключения анализа пакетов... так как варианти типа установки количекства анализируемих пакетов (MaxLinesInLog=300) пакетов в 1..10 в настройках ИМХО ето изврат так как бывает нада посмотреть что за пакети идут и каждий раз менять ини...

alexteam
15.05.2009, 13:49
NLObP, гляну.
Name4Me, в 3.6 есть.. и вообще... утечки памяти как бы нет. обработка пакета всеголишь заключается в помещении его в список... если чем-то мешает - отфильтруй все пакеты.

Name4Me
15.05.2009, 22:27
Без обид, на самом деле биг спс за програму. По ходу меня вполне устраивает 83 ревизия коей я пользуюсь... А относительно 100... то "утечки памяти как бы нет" ето не значит нет... согласен мож её нет но тогда почему прогама постоянно жрёт оперативку? И относительно "если чем-то мешает - отфильтруй все пакеты" я понимаю что заменить тормоз в машине можна якорем, или упором в столб или забор но имхо ето не выход.... В любой норм програме которая мониторит любой процес есть кнопка приостановки чтоб не жрала ресурсы... Хотя ето всё имхо и каждий так сказать ... как хочет :) без обид.

alexteam
15.05.2009, 22:41
А относительно 100
.100 это последняя ?.

Name4Me
15.05.2009, 22:46
.100 это последняя ?.
100 ето начиная с 100 ревизии, последня которую смотрел 113

alexteam
15.05.2009, 22:58
утечка в ревизии 112 была устранена. тобишь в 3.5.6
ты утверждаешь что до сих пор течет ? тобиш не топчется загзагообразно на месте (падая при очистке) а постоянно растет ?

Добавлено через 10 минут
извиняюсь.
в 3.6 не течет. в 3.5 течет.
забыл портировать код. сейчас исправлю и выложу билд.

Name4Me
15.05.2009, 22:58
Name4Me, в 3.6 есть.. и вообще... утечки памяти как бы нет. обработка пакета всеголишь заключается в помещении его в список... если чем-то мешает - отфильтруй все пакеты.

Кстати предложений вариант тож не работает так как даж если отфильтровать все пакети програма тож дуеться за 1 мин подключения размер вирос в 20 раз... и продолжает расти 5 мин размер увеличелся в 50 - 60 раз... и ето при том что в даной локации всего 30 чаров если зайти в город расти будет ещо бистрее...

alexteam
15.05.2009, 23:09
сомневался в словах потому что точно помнил что это правил, и тестировал.
дабы не быть голословным сравниваем procedure Ttunel.NewPacket
последнюю строчку в 3.6 (http://l2phx.pp.ru/wsvn/filedetails.php?repname=l2phx3&path=%2F3.6.x%2Funits%2Fusocketengine.pas&rev=123&sc=1) и 3.5 (http://l2phx.pp.ru/wsvn/filedetails.php?repname=l2phx3&path=%2F3.5.x%2Funits%2Fusocketengine.pas&rev=123&sc=1)

Добавлено через 40 секунд
я уже отписался... пардон... держать 2 версии и править одновременно обе - тяжело.

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

Yegor
16.05.2009, 01:20
Только сейчас заметил на шоке немного не такой пакет CharInfo какой прописан в PHX. В поле Title получаеться текст только с 5ой буквы. Тоесть где то убрано чего то на 8 байт . Знать бы ещё что именно убрали.

Нашел! Во всяком случае на шоке эти 2 поля лишние

FlyRunSpd
FlyWalkSpd

Уберите определение этих полей из этого пакета.

//alexteam: а пакетхак предназначен предназначен для использовании только на шоке ?

Добавлено через 20 минут
Значит можно добавить PacketsShock.ini ;).

Понятно что не только для шока, но все таки этот сайт с большим уклоном к шоку как я заметил.

А на другихсервах может тоже так будет?

NLObP
16.05.2009, 14:18
Yegor, каждый волен, под свой сервер, править все *.ini файлы

vovanchik
17.05.2009, 19:33
Кстати предложений вариант тож не работает так как даж если отфильтровать все пакети програма тож дуеться за 1 мин подключения размер вирос в 20 раз... и продолжает расти 5 мин размер увеличелся в 50 - 60 раз... и ето при том что в даной локации всего 30 чаров если зайти в город расти будет ещо бистрее...

может вообще пора mysql прикрутить :)

alexteam
17.05.2009, 20:24
куда прикрутить ?

xkor
17.05.2009, 21:37
mysql база пакетов это уже перебор...

Grinch
17.05.2009, 21:48
vovanchik, mysql мда крути.

alexteam
17.05.2009, 22:52
xkor,а че так слабо берешь ? фильтры, настройки, все инишки.. скрипты.. все на майскуель :p

зы. если комуто поддержка скуеля нужна - плагины в зубы и вперед нращивать потенциал скриптового двигла. никто не ограничивает.

Yegor
18.05.2009, 02:44
Я делал програмку для себя по созданию плей листов для винампа на основе имеющейся на Пк музыки, так тоже заморочился и зделал используя БД. Прикольно получилось. Но тут я думаю это лишнее.

J-Fobos
18.05.2009, 19:48
У меня возник вопрос: пропускается ли пакет отправленый с вкладки "посылка" через включенные скрипты?

И в связи с этим вопросом появилось предложние :) Добавить в опциях галочку "Не обрабатывать пакет с владки "посылка" скриптами". Галочка снята - пакет проходит через все включенные скрипты и потом на сервер, галочка стоит - пакет идет сразу на сервер.

xkor
18.05.2009, 23:01
не вижу смысла обрабатывать такой пакет скриптами...

J-Fobos
18.05.2009, 23:23
А смысл все-таки есть ) Проверка скриптов упростится чуть. Например, я хочу проверить верно ли скрипт среагирует на какой-то пакет от сервера, мне не надо будет в клиенте выполнять какие-то действия чтоб такой пакет пришел, просто в опциях поставлю галочку и отошлю нужный пакет, сразу наглядно увижу что произойдет. Аналогично и со стороны клиента.

Еще можно на вкладке "посылка" сделать возможность вводить количество отправок. Когда пакеты отправляться заданное количество раз вырубать таймер отправки и прекращать их отправлять. 0 раз - безконечно отправляет, пока руками не вырубить таймер(как сейчас).

alexteam
19.05.2009, 12:40
А смысл все-таки есть ) Проверка скриптов упростится чуть. Например, я хочу проверить верно ли скрипт среагирует на какой-то пакет от сервера, мне не надо будет в клиенте выполнять какие-то действия чтоб такой пакет пришел, просто в опциях поставлю галочку и отошлю нужный пакет, сразу наглядно увижу что произойдет. Аналогично и со стороны клиента.

подумаю -)

Еще можно на вкладке "посылка" сделать возможность вводить количество отправок. Когда пакеты отправляться заданное количество раз вырубать таймер отправки и прекращать их отправлять. 0 раз - безконечно отправляет, пока руками не вырубить таймер(как сейчас).
скрипты зачем ?

Добавлено через 43 секунды
NLObP, я пользуюсь тем что на фтпхе. на бдс2к6.

NLObP
20.05.2009, 03:58
Выложил на ФТП и СВН.
3.5.10.115
Author: nlobp
Date: 02:55:00, 20 мая 2009 г.
Message:
[-] при выборе библиотеки перехвата пропадала возможность повторной работы с диалогом выбора библиотеки
[+] выгружается LSP библиотека после завершения работы программы

//alexteam: ..релиз забыл сменить...
+выгружать библиотеку - лишнее. во всяком случа по дефолту.. сделаю пожалуй галочку..
обосновать - легко. допустим есть ланчер который сканирует процессы при запуске линейки.
т.е. при запуске ланчера пх должен быть выкл.:tease:

alexteam
20.05.2009, 12:30
э...
обьясни мне...
какой смысл было править с


procedure TfSettings.ChkLSPInterceptClick(Sender: TObject);
begin
isLSP.Enabled := not ChkLSPIntercept.Checked;
BtnLsp.Enabled := not ChkLSPIntercept.Checked;
if ChkLSPIntercept.Checked then
begin
ChkSocks5.Checked := false;
ChkIntercept.Checked := false;
end;
dmData.LSPControl.setlspstate(ChkLSPIntercept.Chec ked);
end;


на


procedure TfSettings.ChkLSPInterceptClick(Sender: TObject);
begin
if ChkLSPIntercept.Checked then
begin
isLSP.Enabled := false;
BtnLsp.Enabled := false;
ChkSocks5.Checked := false;
ChkIntercept.Checked := false;
end else
begin
isLSP.Enabled := true;
BtnLsp.Enabled := true;
end;
dmData.LSPControl.setlspstate(ChkLSPIntercept.Chec ked);
end;

:(

Добавлено через 1 минуту
порадовало:

if ChkLSPIntercept.Checked then
dmData.LSPControl.setlspstate(not ChkLSPIntercept.Checked);

:D

NLObP
20.05.2009, 14:24
alexteam, по поводу выгрузки. Мне не понравилось, что в то время когда не нужен пакетхак, библиотека перехвата все равно установлена.

PS: Напаролся на косяк. Не знаю почему пакетхак стал писать, что у меня нет прав на правку реестра. Галочку LSP снять нельзя. Долго не мог понять почему, пока не глянул в лог. Полази в реестре и потер все вхождения path=lspprovider.dll. После этого пакетхак перестал ругаться на невозможность редактирования реестра и дал возможность снять/поставить галочку LSP. Может быть это из-за того, что библиотека устанавливалась из одной папки, а я хотел выгрузить из другой? (У меня много версий ПХ и все в разных папках.)

Добавлено через 23 минуты
э...
обьясни мне...
какой смысл было править

Наверное не было. Тогда и здесь надо для однообразия исправить на это
procedure TfSettings.iInjectClick(Sender: TObject);
begin
if iInject.Checked then
if not LoadLibraryInject (isInject.Text) then iInject.Checked := false
else
begin
ChkIntercept.Checked := false;
FreeMem(pInjectDll);
pInjectDll := nil;
AddToLog(format(rsUnLoadDllSuccessfully,[isInject.Text]));
end;
isInject.Enabled := not iInject.Checked;
BtnInject.Enabled := not iInject.Checked;
HookMethod.Enabled := iInject.Checked;
ChkIntercept.Enabled := iInject.Checked;
JvSpinEdit1.Enabled := iInject.Checked;

if not InterfaceEnabled then exit;
GenerateSettingsFromInterface;
end;

alexteam
20.05.2009, 14:32
Мне не понравилось, что в то время когда не нужен пакетхак, библиотека перехвата все равно установлена.она не перехватывает функции в приложениях не отмеченых для перехвата. и тем более не делает это при отсутствии пх.
в любом случае.. вынес эту опцию в настройки..

Напаролся на косяк. Не знаю почему пакетхак стал писать, что у меня нет прав на правку реестра.там есть трабл... гляну чуть попожже...

Добавлено через 2 минуты
Тогда и здесь надо для однообразия исправить на этону...

...
if iInject.Checked then
if not LoadLibraryInject (isInject.Text) then iInject.Checked := false
else else
begin
....

Vklu4atel^^
20.05.2009, 14:34
Модификация L2phx 3.2.0 (Официальное продолжение программы)

Репозиторий находится тут (svn://l2phx.pp.ru/l2phx3/) (открывать через SVN клиент)
Удобный просмотр через браузер тут (http://l2phx.pp.ru/wsvn/listing.php?repname=l2phx3&path=%2F&sc=1)
Скомпилированные версии тут (http://l2phx.pp.ru/arhive/)

Есть ли предложения по модернизации существующего кода с описанием как должно и что хотелось бы заменить/добавить?

Программа пишется в среде Borland Developer Studio 2006 или 2007 с использованием следующих дополнительных библиотек компонентов:
- FastScript (http://fast-report.com/ru/products/fast-script.html)
- JCL (http://sourceforge.net/projects/jcl/)
- JVCL (http://sourceforge.net/projects/jvcl/)

Дополнительные компоненты брать тут (http://l2phx.pp.ru/arhive/components/).

так чот непоиму где скачать переделаную ???

NLObP
20.05.2009, 14:36
Скомпилированные версии тут

В этой строчке ссылка на ФТП с готовыми прогами.

alexteam
20.05.2009, 14:39
и вообще.. там довольно много мест с дублями
работе не мешает.. но некрасиво...
меньше на перекуры надо было ходить -) и отвлекатся.

Grinch
20.05.2009, 15:09
меньше на перекуры надо было ходить -) перекур это святое.

alexteam
20.05.2009, 21:09
угу.. покурил...
r126-129 релиз 3.5.11.118
[+] форма просмотрщика пакетов (такого же как и на панели отправка). вызываеться с главного меню.

убрал генерацию и вложение дебагинфы в 3.5
[+] Автодеинсталл лсп модуля вынесена как опция

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

Добавлено через 4 минуты
чтот как то мелко плаваем -(

J-Fobos
21.05.2009, 01:40
Как понять "мелко плаваем" ?

Добавлено через 2 часа 54 минуты
Подборка багов в связи с добавлением окна. (сильно не бейте)

Скрин_http://i069.radikal.ru/0905/c5/c129712275c0.gif
Обьясняю на примере пакета CreatureSay (грация). Когда выбрать сервер>клиент тип пакета отображается верно, но самой структуры нету. Когда выбрать клиент>сервер тип опять отображается верно (он и должен говорить что пакет неизвесный) и отображается структура (которой по идее не должно быть в неизвестном пакете).

В поле где вписывается пакет нельзя писать пробела. В тоже время, с буфера обмена туда можно вставлять даже картинки :)) Текст вставляется с сохранием форматирования (цвет/размер/шрифт). Скрин_http://i043.radikal.ru/0905/95/1dfeccda5cbf.gif

alexteam
21.05.2009, 13:35
ну забыл я отключить поддержку ртф и прочей ериси...
ну и что..

гляну.. но ужо завтра. %)

Добавлено через 1 минуту
да и с кнопочками.. напутал малех :rolleyes:

Добавлено через 11 часов 33 минуты
кстати... бага связана с фиксом вотэтого http://coderx.ru/showpost.php?p=29313&postcount=792
там была такая же проблема.. только из за описания... я ее пофиксил неверно.. вот вылез косяк -)))

Добавлено через 17 минут
поправил.. перезалил под той же версией..

PanAm
22.05.2009, 14:47
чтот как то мелко плаваем -(
А по крупному - полностью переписать обработку пакетов в newxor.dll может попробовать? Сейчас от клиента первый пакет (ProtocolVersion) не обрабытывается, имя соединения генерируется в программе, а если это переместить в DLL то будет гораздо удобней работать, например можно просто сделать автоопределения протокола (хроник) - со всеми вытекающими. А если еще через newxor.dll добавить возможность пропускать трафик с других портов, как то - логин сервер, ШК, то у ПХ фактически не будет ограничений для работы хитрыми серверами.

NLObP
22.05.2009, 15:26
alexteam, может после сообщения об отсутствии конфига выводить окно настроек, чтобы их сразу начали настраивать?

APXAHGEJI
22.05.2009, 20:10
У ЛСП глюки постоянные. При запуске любого скрипта у меня прописано выводить в чат сообщения о запуске, так вот эти сообщения обычно приходят абракадаброй или букв не хватает и не в тот чат, иногда бывает что он вообще оказывается в куче различных эфектов типа стана, рута, анчора и тд визуально. Это ладно клиенту такая фигня шлется, а если кривой пакет отощлется на серв, можно и автобан схлопотать. Не знаете почему такое может быть?

alexteam
22.05.2009, 21:29
да, знаем. и тщательно скрываем.

xkor
22.05.2009, 21:31
alexteam, лучше тщательно исправлять мне кажется)

alexteam
22.05.2009, 21:35
xkor, э, извини.. канеш.. но "извращенный дебаг" как в случае с корректором тут провернуть не удастся...

xkor
22.05.2009, 23:23
alexteam, хех, если багу не удаётся победить её надо записать в особенности программы)

ЗЫ и чего извращенного было в моём дебаге?)
ну не мог я сам у себя сотворить ситуацию чтоб корректор завис ибо ботов у меня почти нет, а так юзеры подсобили)

alexteam
22.05.2009, 23:35
alexteam, хех, если багу не удаётся победить её надо записать в особенности программы)
особенности программы в конкретно взятом случае =\

xkor
23.05.2009, 01:23
угу, особенность: "в случае ядерной войны программа может не работать")

Leprikon
01.06.2009, 19:10
Под руофф пнх по прежнему не работает, имея ввиду хотябы стабильный коннект, а так-же расшифровку пакетов от финала?

alexteam
01.06.2009, 19:14
хотябы стабильный коннект, а так-же расшифровку пакетов от финала
http://www.tiga.by/img/photo/2896b.jpg

Leprikon
01.06.2009, 19:42
Ну мало-ли вдруг все-таки это было реализованно, ведь народу на нем играет побольше, чем на всяких фришках и т.п. ...
А автоматической с электроприводом не найдеться, с пультом управления? :)

Yegor
03.06.2009, 01:55
Зато ингейм бот там уже успешно работает, и геймгвард вообще при старте гасится.

xkor
03.06.2009, 03:14
Yegor, гасится наверн не ГГ а ШК?, ГГ то вообще отключается нафиг...

Yegor
04.06.2009, 02:16
Я это и имел ввиду. Кстати кто нибудь может популярно объяснит что такое ГГ, даже на шоке приходят пакеты в начале типа GGRequest, правда клиент на него отвечает пакетом с нулями

ratvier
04.06.2009, 13:24
Кстати кто нибудь может популярно объяснит что такое ГГ
http://ru.wikipedia.org/wiki/Gameguard

xkor
04.06.2009, 15:13
ratvier, ы, там и про пакетхак словечко замолвлено))

Yegor
04.06.2009, 23:49
Если кому надо замените в PacketsT1.ini описание пакета на информацию о продаваемых всходах манора

было:
FE2C=ExShowSellCropList:h(subID)

мой вариант:
FE2C=ExShowSellCropList:h(subID)d(CurrentCastleID) d(CropCount:Loop.01.0012)d(ObjectID)d(CropID:Get.F unc01)d(Crop_Level)c(unknown)d(RewardItemCrop:Get. Func01)c(unknown)d(RewardItemCrop2:Get.Func01)d(un known)d(Remaining)d(BuyPrice)c(reward)d(MyCropsCou nt)

Anton5
12.06.2009, 09:18
Есть одно пожелание.
Нельзя ли сделать чтобы изменения в файле скрипта автоматически обновлялись? Просто я текст скрипта пишу во внешнем редаторе и каждый раз чтобы добавить внесённые изменения приходится копировать весь скрипт и вставлять в L2PacketHack, что очень неудобно. Раньше, например в версии(3.4.1.70) скрит обновлялся автоматически.

Yegor
15.06.2009, 02:35
alexteam, а что с опцией "не дешифровать трафик" она вообще работает? Пытаюсь пропустить через phx пакеты связи с логин сервером, для последующего анализа, но после первого пакета клиент сразу закрывается, видимо траффик все таки модифицируеться.

К тому же проблемма только при использовании LSP перехвата, с inject нормально. Если с LSP пропускать логин сервер и заходить на гейм сервер - тоже все ОК

Grinch
15.06.2009, 09:04
Yegor, ну во первых логин с гейм сервером по часте шифрования не связан никак. а так попробуй УПХ там точно все работает что тебе надо

xkor
15.06.2009, 10:14
Grinch, и где он его возьмёт?)

alexteam
16.06.2009, 20:49
Релиз 3.5.12.120

Revision: 134
Author: alexteam
Date: 16:29:41, 16 июня 2009 г.
Message:
касаемо 3.5:

[-] исправлен баг с загрузкой скриптов. теперь при старте пх они загружаются и отмечаются к исполнению корректно

изменен способ определения главного окна пх из в инжект.длл

окно выбора языка [+] и окно настроек будет отображатся при первом старте пх.

в onpacket функцию плагинов теперь передается имя соединения (TOnPacket = procedure(const cnt: Cardinal; const fromServer: Boolean; const connectionname:string; var packet : tpacket); stdcall;)
[+] при получении фокуса редактором скрипта происходит проверка на изменение даты модификации файла. если она не совпадает с хранящейся датой в пх (файл был изменен внешней программой) выводиться запрос позволяющий перечитать файл.

правки переводов
Добавлено через 2 часа 8 минут
а... да.. совсем забыл
[+] Кнопочка обрабатывать пакеты.. как она мне дорога...
[+]возможность изменить заголовок главного окна в настройках.

Name4Me
23.06.2009, 21:43
Ммм Большой респект автору, но чот у меня не складиваються взаимоотношения сновим пкх...

Начну с спасибо за кнопку не обрабативать пакети (которую не плохо би подписать и сохранять состояние в настройках...), порадовала, но чот у меня при нажатии отрубились все кнопки на панели... лог очистить не льзя...
При первой попитке запустить плагин результат вирубился пкх, почитал изменил структуру процедури OnPacket пкх при включении плагина не вирубаеться но ни как на него не реагирует... Похоже поменялась не только процедура... Если можна виложите код шаблона рабочего плагина.

P.s. сори если где то тупанул чот заболел и голова варит плохо...
P.s.s. Понимаю что наверно раньше достал с кнопочкой которая "как она мне дорога..." Но имхо билоб очень неплохо вернуть Плагини на место :) А имено сделать не отдельной формой а закладкой или панелькой в просмотре... Имхо даж лучше панелькой, вобще форма для плагинов имхо ооч большая всё добро норм поместилось в панельке 160*200 имхо

alexteam
23.06.2009, 22:05
кнопки отключаются только по той причине что они не нужны..
думаю очистку лога исключу и вынесу состояние "новой кнопАчки" в настройки.. и ... включу showhint на ней... заодно..
и еще..
http://coderx.ru/showthread.php?t=1830
там где-то в конце я приводил пример..

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

Name4Me
23.06.2009, 23:13
ММ вот подумал а можна компромис? а имено назначить гарячие клавиши включению викдючению плагинов например Ctrl+1 - первий и тд.... с главной форми а не форми плагинов?

Добавлено через 39 минут
ММ вопросик а чем обусловлен отход от номеров соединения 0...9 к у меня например 1756? И на сколько проблематично сделать как било?

xkor
24.06.2009, 03:35
Name4Me, номера теперь представляют собой хендлы сокетов вроде, а к старой системе не вернуться так как порядковый номер в массиве соединений теперь вроде может меняться при удалении предшествующих соединений, да и смысл возвращаться по моему отсутствует...

alexteam
24.06.2009, 12:28
смысла нет.
массива как такового тоже нет.
есть тлист. плюсы очевидны.
любителям красивых циферок рекомендую юзать 83й ревижин.

Name4Me
24.06.2009, 14:33
А как на щот гарячих клавишь?

Murdoc
24.06.2009, 17:27
[+]возможность изменить заголовок главного окна в настройках.
За это спасибо, но было бы хорошо если бы измененный заголовок сохранялся при закрытии Л2пх

alexteam
24.06.2009, 17:32
временно:
[general]
caption=blablabla

в сеттингс.ини.

Name4Me
24.06.2009, 17:48
ММ неплохо би сохранять положение основной форми и форми плагинов в сетингс, чтоб при загрузке они появлялись там где били закрити...

NLObP
24.06.2009, 17:54
Name4Me, положение окон сохраняется.

Name4Me
24.06.2009, 20:52
ММ уменя v3.5.12.120 положение не сохраняеться хз почему...
Точнее не совсем коректно сохраняеться, положение на основном мониторе сохраняеться аесли переношу на другой нет... Исправте плз.

xkor
24.06.2009, 21:41
мм, тогда надо ещё номер монитора сохранять...

alexteam
24.06.2009, 23:01
прошу предоставить мне монитор.

Name4Me
25.06.2009, 02:38
ММ когда я в своей форме сохраняю координати

ml^.Add('Left='+inttostr(Form2.Left));
ml^.Add('Top='+inttostr(Form2.top));
ml^.SaveToFile(CurrentDir+'\Settings\My.ini');

то моя форма откриваеться на месте закрития...

la2elpy
25.06.2009, 04:53
мда, собрался я написать плагин для l2phx на C#, да крепко обломался
да, да именно на шарпе, методика экспорта функций у сборок есть
например, этот инструмент делает это автоматизированно
hxxp://netobf.com/obf_optimization_dllexport
А если руками хочется, то вот описание
hxxp://blog.undsoft.com/programming/export-managed-to-unmanaged/

А облом заключился в том что unmanaged не поддерживает соглашение о вызове fastcall :( То есть я не могу вызывать методы объекта TPluginStruct после получения его в SetStruct. В остальном то порядок, и пакеты могу смотреть и менять на лету. Через класс Marshal все волшебно делается.

Я так понял, что сейчас и на с++ не получится сделать, т.к. у него свои представления о fastcall
Может стоит пересмотреть политику в плане плагинов и сделать более открытым интерфейс для всех языков :)
И не использовать в нем частности тип string.

xkor
25.06.2009, 10:23
блин, хотел написать:
la2elpy, где в плагинах fastcall используется??, я почти все функции делал stdcall как раз для совместимости, и сомневаюсь чтобы alexteam это менялно оказывается alexteam зачем то оформил TPluginStruct как класс...
alexteam, зачем???

alexteam
25.06.2009, 12:43
"патамушо индус" ©....
чорт.. обратно менять чтоль...

QaK
25.06.2009, 12:44
alexteam, btyzq

xkor
25.06.2009, 14:26
QaK, тогда уж "vtyzq"

QaK
25.06.2009, 14:27
xkor, а, ну да, очепятался, сорь =)

xkor
25.06.2009, 14:56
чорт.. обратно менять чтоль...теперь чтобы не уплыла совместимость с текущими плагинами придется погемороиться если делать и совместимость с другими языками...

alexteam
25.06.2009, 15:06
Хочешь занятся ? а то у меня на работе завал, так что я не скоро -)

xkor
25.06.2009, 15:14
не, я лучше буду доделывать uph

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

Name4Me
25.06.2009, 16:05
ppck:=@pck;
if (pck.size<3) or (fcl) then exit;
if (user[cnt]=nil) and (FromServer)
and ((pck.pckId=$32) or (pck.pckId=$2F) or (pck.pckId=$11))then Begin ...

Результат прихода пакета видаёт ошибку инвалид поинтер...?

P.s. Автор чото слишал о понятии совместимости.... Если меняем структури нада хотя б сделать нор их описание желательно с рабочими примерами а то уже вторие сутки питаюсь переделать плагин чтоб он работал в новой версии пкх :(

//QaK:не сцать =) у мну та же шняга с плугинами.EInvalidPointer, вроде ... мое скромное мнение - что-то с переменной "ps" типом TPluginStruct

Ок ждём исправлений :)

la2elpy
25.06.2009, 16:07
Угу, именно из-за того, что как класс...
Может тупой вопрос, а если в классе прямо дописать соглашение о вызове около его методов или нельзя так? Так бы можно было кидать в функции первый параметр this. Буду благодарен за исправленную версию :)

xkor
25.06.2009, 17:14
la2elpy, ну так впринципе можно, только класс станет не совместимым с уже написанными под него плагинами, хотя сдаётся мне основная часть плагинов всё таки была написана ещё до класса и луче наверно будет вернуться к структуре...
ЗЫ есть ещё вариант не гемороиться с этими структурами и их передачей а просто експортировать нужные функции в stdcall как я делаю в uph

la2elpy
25.06.2009, 19:12
Ну было бы здорово :)
А uph это что ?

xkor
25.06.2009, 20:36
la2elpy, UniPacketHack, типа универсальный а не заточеный под линейку, поддержка линейки будет в виде плагина...

xkor
27.06.2009, 17:58
ревизия 139:
[+] Плагин переходник (als.dll) экспортирующий функции пакетхака для возможности их использования из плагинов написанных на других языках (не на Delphi)

Сорци на SVN - http://l2phx.pp.ru/wsvn/filedetails.php?repname=l2phx3&path=%2F3.5.x%2FPluginCodding%2Fals.dpr&sc=1
а сама длл + сорци тут: http://l2phx.pp.ru/arhive/components/als.rar

la2elpy
29.06.2009, 01:13
Нашел баг в uPluginData.pas
dmData.SendPacket(packet, tid, False); <--- почему false а не ToServer

и еще
вот здесь
procedure TdmData.SendPacket

есть 2 строчки TlspConnection(LSPConnections.Items[i]).Visual.processpacketfromacum;
они избыточные, т.к. потом в TlspConnection(LSPConnections.Items[i]).encryptAndSend(Packet, toserver);
итак это дело вызывается, поэтому дублируется лог

alexteam
29.06.2009, 12:44
спасибо. поправил.

Name4Me
30.06.2009, 20:45
ММ я так понял пока в 122 ошибку в плагинах со труктурой ps не исправили?

xkor
30.06.2009, 21:34
Name4Me, а какая ошибка была со структурой???

Yegor
02.07.2009, 03:19
Разобрался наконецто в пакете от сервера SystemMessage. Нашел как подставить правильные числовые параметры. Если это вам нужно напишите.

QaK
02.07.2009, 08:55
xkor, при обращении к ReadX/WriteX вылетало что-то типа EInvalidPointer

NLObP
02.07.2009, 14:59
Разобрался наконецто в пакете от сервера SystemMessage. Нашел как подставить правильные числовые параметры. Если это вам нужно напишите.

Нужно, расскажи.

Yegor
02.07.2009, 22:01
Tип: 0x62 (SystemMessage)
Pазмер: 43+2
Время прихода: 22:28:29:140
0002 d MsgID: $c1 получает от цели $c2 $s3 урона. ID:2262 (0x08D6)
0006 d typesCount: 3 (0x00000003)
0008 d typePar: тип параметра, может принимать значения:

0 - значит это строка (подставляеться вместо $cx)
1 - просто числовое значение (integer 4 байта) (подставляеться вместо $sx)
2 - id NPC (integer 4 байта) (подставляеться вместо $cx)
3 - id предмета (integer 4 байта) (подставляеться вместо $sx)
4 - id скила (integer 4 байта + ещё 4 байта которые я игнорирую) (подставляеться вместо $sx)
7 - где то видел но не нашел этого пакета в логах (12 байт)

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

x - это порядковый номер параметра, все значения в пакете идут по порядку как в строке.

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

Теперь мой вариант как прочитать этот пакет:


var
lastSystemMessage: record
msgID: integer;
msgUnformatedString: string;
msgText: string;
end;


function TL2WorldData.GetL2SystemMessage(const pck: string): boolean;
var
i, j: integer;
typesCount: integer;
parType: integer;
st: string;
objSt: string;
sPar: string;
iPar: integer;
begin
Result:= false;
if pck[1] <> #$62 then exit;
i:= 2;
lastSystemMessage.msgID := ReadD(pck, i);
typesCount:= ReadD(pck, i);
lastSystemMessage.msgUnformatedString:= sysMsgIdList.Values[IntToStr(lastSystemMessage.msgID)];
st:= lastSystemMessage.msgUnformatedString;
for j:= 0 to typesCount - 1 do
begin
parType:= ReadD(pck, i);
case parType of
0: begin
sPar:= ReadS(pck, i);
st:= AnsiReplaceStr(st, '$c' + IntToStr(j + 1), sPar);
end;
1: begin
iPar:= ReadD(pck, i);
st:= AnsiReplaceStr(st, '$s' + IntToStr(j + 1), IntToStr(iPar));
end;
2: begin
iPar:= ReadD(pck, i);
objSt:= NpcIdList.Values[IntToStr(iPar - 1000000)];
st:= AnsiReplaceStr(st, '$c' + IntToStr(j + 1), objSt);
end;
3: begin
iPar:= ReadD(pck, i);
objSt:= ItemIdList.Values[IntToStr(iPar)];
st:= AnsiReplaceStr(st, '$s' + IntToStr(j + 1), objSt);
end;
4: begin
iPar:= ReadD(pck, i);
objSt:= SkillIDList.Values[IntToStr(iPar)];
st:= AnsiReplaceStr(st, '$s' + IntToStr(j + 1), objSt);
inc(i, 4);
end;
7: begin
inc(i, 12);
end;
else
begin
SendMSG('Неизвестный идентефикатор параметра в пакета SystemMesage (ID: '
+ IntToStr(lastSystemMessage.msgID) + ') ' + IntToStr(parType));
Exit;// выходим дабы не наделать горя, так как неизвестно сколько байт считывать
end;
end;
end;

lastSystemMessage.msgText:= st;
Result:= true;
end;

QaK
06.07.2009, 13:52
alexteam, xkor или кто-нибудь еще профиксите работу плугинов. Плз.
З.Ы. Я не могу в связи с временным отсутствием среды разработки.

alexteam
06.07.2009, 20:25
а я в связи с присутствием работы %)

зы.
по хорошему там либо все надо назад возвращать, либо одно из двух.

QaK
06.07.2009, 21:06
alexteam, тогда давай назад =)

Name4Me
11.07.2009, 01:15
alexteam, тогда давай назад =)
+1

alexteam
11.07.2009, 11:59
-1
Работа прежде всего.

xkor
11.07.2009, 12:02
значит ждемс)

QaK
12.07.2009, 13:09
Name4Me, попробуй 80й билд юзать, там все норм, вроде ...
до пору до времени ...

LunaticCalm
21.07.2009, 11:20
У меня давече трабл возник : сервак на платформу хэлбаунда переехал, соответственно и клиент другой, так вот при использовании перехвата при помощи inject.dll клиент вылетает с критом, а при исползовании LSP перехвата сам пакет хак виснет при попытке посылки пакета на сервак, причем периодически наблюдаю "синий экран смерти" дасВиндовса(стоит ХП СП3). Перепробовал все билды - эффект одинаковый. Как можно это пофиксить ?

dmitry501
21.07.2009, 11:38
У меня давече трабл возник : сервак на платформу хэлбаунда переехал, соответственно и клиент другой, так вот при использовании перехвата при помощи inject.dll клиент вылетает с критом, а при исползовании LSP перехвата сам пакет хак виснет при попытке посылки пакета на сервак, причем периодически наблюдаю "синий экран смерти" дасВиндовса(стоит ХП СП3). Перепробовал все билды - эффект одинаковый. Как можно это пофиксить ?

Думаю админ Л2 сможет. Приедь к нему с пивом/паяльником и уговори отключить все свистелки и перделки.

LunaticCalm
21.07.2009, 11:47
Думаю админ Л2 сможет. Приедь к нему с пивом/паяльником и уговори отключить все свистелки и перделки.
хЫ .. шутник :) ... не факт , что там что-то в защиту поставили :) ... потому что ник перса расшифровывало :)

Murdoc
21.07.2009, 12:30
У меня давече трабл возник : сервак на платформу хэлбаунда переехал, соответственно и клиент другой, так вот при использовании перехвата при помощи inject.dll клиент вылетает с критом, а при исползовании LSP перехвата сам пакет хак виснет при попытке посылки пакета на сервак, причем периодически наблюдаю "синий экран смерти" дасВиндовса(стоит ХП СП3). Перепробовал все билды - эффект одинаковый. Как можно это пофиксить ?

пользуй сокс. а так же грохни inject.dll и newxor.dll если присутствуют в папке л2пх. еще переназови .ехе файл во что нибудь другое и поменяй заголовок окна. и будет тебе счастье

LunaticCalm
21.07.2009, 13:40
... и поменяй заголовок окна. ...
эммм .. это каким образом ?

alexteam
21.07.2009, 14:52
в настройках...

LunaticCalm
23.07.2009, 10:06
вобщем, разобрался :) ... сперва из-за каспера 8-го не хотела перехватывать, даже если занести в список исключений. поставил кис 2010 - наладилось ... а теперь грешу на 8-й эксплорер : на работе с 7-м все робит просто ПРЕКРАСНО ! :dance3:

alexteam
23.07.2009, 14:51
при чем тут експлорер ?
//QaK:Потому, что гладиолус =)

pascalpwnz
24.07.2009, 20:40
Такой баг нашел:
l2phx.3.5.13.122 ни под каким видом не хочет обрабатывать массивы в процедуре или в функции. Если подобный запрос встречается в скрипте, то на этом скрипт и заканчивается. В тоже время старый l2phx.3.4.1.83 нормально все воспринимает.

Вот пример кода:


var
mas : array [1..10] of string;

procedure msgSend(msg:string); // отправка сообщений клиенту в анносы
begin
buf:=HSTR('4A 00 00 00 00 0A 00 00 00 00 00');
WriteS(msg);
SendToClient;
end;

procedure abc(a: array [1..10] of string);
begin
msgsend('abc');
end;

begin
msgsend('111');
abc(mas);
msgsend('222');
end.

l2phx.3.5.13.122 приходит только '111', то есть в саму процедуру он не может зайти.
l2phx.3.4.1.83 нормально обрабатывает скрипт, приходит '111','abc','222'. (да что там, у меня на нем нормально работал скрипт с матрицей)

alexteam
25.07.2009, 22:17
эм.. опять же это по части фастскрипта.

xkor
26.07.2009, 01:06
который кстати работает и в 3.5.13.122 и в 3.4.1.83 одинаково на сколько я понимаю...

Yegor
26.07.2009, 01:22
В новых версиях alexteam вроде бы другой компонент с фастскрипт использует.

alexteam
26.07.2009, 13:20
тот же.
не путать попытки прилепить пакскриптер к пх с "другой версией фастскрипта"

pascalpwnz
26.07.2009, 16:37
тот же.
не путать попытки прилепить пакскриптер к пх с "другой версией фастскрипта"
Так в итоге кто виноват? ПХ или ФС?

===================
Еще одна ошибка(в поиске не нашел), на этот раз интерфейса l2phx.3.5.13.122:
Если перейти на вкладку "дополнительно", а потом щелкнуть мышкой по полю, то всегда выскакивает эта ошибка:

Exception class: EAccessViolation
Exception message: Access violation at address 00672A9D in module 'l2ph.exe'. Read of address 00000014.
Exception address: 00672A9D

причем такое у меня на двух разных машинах.

QaK
26.07.2009, 18:59
Так в итоге кто виноват?
во всем виноват alexteam =)

alexteam
27.07.2009, 00:29
/me уволен.

xkor
27.07.2009, 02:19
alexteam, ээ, как уволен, а кто дальше будет модернизацию проводить?, ну или хоть исправление ошибок?)
ЗЫ ваше заявление об увольнении было отклонено)

LunaticCalm
28.07.2009, 15:26
при чем тут експлорер ?
//QaK:Потому, что гладиолус =)
просто не первая прога, которая начинает выдавать "финты ушами" после обновления до 8-го эксплорера :)

Yegor
28.07.2009, 16:10
IExplorer и винда неразрывное целое, понятно что при его обновлении было так же заменено куча системных библиотек, так что я верю в косяки из за него.

NLObP
09.08.2009, 07:22
Revision: 141
Author: nlobp
Date: 6:19:11, 9 августа 2009 г.
Message:

правка кода работы с путями к логам и скриптам;

правка кода обновления из *.ini;

правка некоторых пакетов под Gracia Final в packetsT1.ini;

alexteam
09.08.2009, 16:01
в uScripts.pas > procedure TfScript.RefreshScripts;
ты закоментировал кусок кода, тем самым порядок выполненя скриптов не будет восстановлен.
да, там есть проблема когда скрипт запускаеться но не отмечается галочкой.
достаточно было закоментировать вот это
if Options.ReadBool('scripts','checked'+inttostr(i), false) then
newScript.ListItem.Checked := true;

или, разобратся почему тестинит производится а галочкой не отмечается в
procedure TfScript.ListViewWindowProcEx(var Message: TMessage);

NLObP
09.08.2009, 16:10
alexteam, гляну сейчас, что то не помню, чтобы я там правил. =)

alexteam
09.08.2009, 16:36
http://l2phx.pp.ru/wsvn/blame.php?repname=l2phx3&path=%2F3.5.x%2Funits%2FuScripts.pas&rev=0&sc=0
Строки 151 - 167

NLObP
09.08.2009, 16:44
alexteam, виноват, забыл расскоментить. Искал причину медленного обновления списка скриптов (1 - 2 минуты весь список составляет, при наличии порядка 20 -30 скриптов, может и вообще весь список не показать).

alexteam
09.08.2009, 16:50
Вообще по задумке, "сохранить порядок" сохраняет не только порядок а и состояние "отмечен"
правда как то коряво это состояние "отмечен" восстанавливает.... компилирует, запускает инит но скрипт не отмечает к исполнению..

именно компилирование и запуск скрипта составляющие этой 2х минутной задержки.

починить бы его -)

Добавлено через 1 минуту
если не хочешь напрягаться - заремарь
if Options.ReadBool('scripts','checked'+inttostr(i), false) then
newScript.ListItem.Checked := true;

NLObP
09.08.2009, 17:17
Revision: 142
Author: nlobp
Date: 16:03:50, 9 августа 2009 г.
Message:
раскомментил код, который убирал для теста и забыл восстановить как было

ЗЫЖ Залил на фтп.

TAMBIK
13.08.2009, 12:18
L2PacketHack 3.5.15.126
при выходе из программы если открыта вкладка скрипты
и скрипт открыт для просмотра но не отмечен
происходит ошибка .об ошибки сообщения нет винда звук
выдает об ошибки

alexteam
13.08.2009, 15:44
знаю, мешает звук ?.

TAMBIK
13.08.2009, 17:36
знаю, мешает звук ?.

да нет

pppok
28.08.2009, 10:34
извиняюсь, вчера и седня искал инфу по сайту, может плохо искал:
пакетхак на руофф работает? именно сейчас, знаю что работал, рассказывали, сейчас сам пробовал, не получается... моя ошибка или там защита какаято новая которую в пакет хак не обошли?

Grinch
28.08.2009, 10:39
не работет

pppok
28.08.2009, 10:50
не работет

ага спс. и не планируется, да? или идет работа по обходу данной проблемы?

alexteam
28.08.2009, 11:55
pppok, не планируется.

xkor
28.08.2009, 14:14
pppok, публично доступного точно не планируется...

NLObP
29.08.2009, 04:27
Revision: 3.5.16.127
Author: nlobp
Date: 03:21:00, 29 августа 2009 г.
Message:
[+] Добавил работу с packetsT2.ini для пакетов в Gracia Final;

правка пакетов Gracia Final by NLObP по данным www.l2jserver.com;

PS: репозиторий не работает

alexteam
29.08.2009, 19:16
к стати,
http://coderx.ru/showpost.php?p=35433&postcount=972
это был звук запроса "сохранить скрипт хххх?"
было поправлено. но билд я кажется не делал (нипомню, пйаный был..)

Добавлено через 2 часа 12 минут
Вопрос
http://l2phx.pp.ru/wsvn/blame.php?repname=l2phx3&path=%2F3.5.x%2Funits%2FuScripts.pas&rev=0&sc=1
161-162 строки зачем были заремарены? (снова)

NLObP
29.08.2009, 19:41
161-162 строки зачем были заремарены? (снова)

Простите! Виноват. Как прошлый раз ты подсказал, я себе сделал, а для всех убрать опять забыл.

PS: как сделать, чтобы в систрее появлялась подсказка при наведении мыши на иконку пакетхака? Очень не хватает.

alexteam
29.08.2009, 20:11
не забудь поправить/вынести в настройки/поставить там условие на "дебагмод"

как сделать, чтобы в систрее появлялась подсказка при наведении мыши на иконку пакетхака?
fMain.JvTrayIcon1.hint

pascalpwnz
29.08.2009, 23:33
правка некоторых пакетов под Gracia Final в packetsT1.ini;

Каких конкретно?

NLObP
30.08.2009, 00:18
Каких конкретно?

Сравни packetst1.ini и packetst2.ini, а то я все не вспомню. Помню id пакетов от клиента уточнял и менял, добавились трехбайтные id. Многие команды пока без расшифровки.

Прицепил файл diff.txt с отличиями T1 от T2

NLObP
30.08.2009, 03:19
Revision: 3.5.17.128
Author: nlobp
Date: 02:14:00, 30 августа 2009 г.
Message:
[+] Добавил сплэшь-скрин, грузится из отдельной длл в отдельном потоке by Юрий Зотов www.delphikingdom.com;

расскоментировал строчки 161-162 в uScripts.pas;

в systray добавил hint;


Залил в файловый архив

PS: нужен сплэшь-скрин? пока на репозиторий не заливал.

alexteam
30.08.2009, 12:16
Почему не задействовать для отображения сплеша фмаинформреплейсер ? ведь он :
1. как интерфейсный элемент вообще не используется. т.е. после создания сразу прячется.
2. является маинформой. со всеми вытекающими.

+к сплешскрину добавить "статусбар" (лейблу) в который выводить текущий шаг загрузки (авто подгрузка и компиляция скриптов, т.е. еще одну форму из проекта можно будет убрать.)
+ после загрузки скриптов не сразу прятать реплейсер а подождать секунду - две (по таймеру естесно, либо ждать клика по сплешу) дав насладится лого и уж затем прятать маинформ (реплейсер) и отображать фмаин, (и выбор языка с сеттингами при первой загрузке)

т.е.
сразу прячем кнопку приложения с таскбара (не вздумай задавать кепшин реплейсеру!!!, дабы не было казусов с защитами сканящими заголовки, отображение рамки у формы лучше вообще убрать. и временнно делать саму форму стейонтоп.)
дожидаемся полной загрузки приложения. при этом устранить все возможные "показы" "дочерних" форм.
подгружаем скрипты и компилируем их выводя попутно в сплеш имена скриптов
ждем пару секунд
прячем реплейсер, отображаем маинформу.

TAMBIK
30.08.2009, 12:38
PS: нужен сплэшь-скрин? пока на репозиторий не заливал.[/QUOTE]

спасибо!
можно

TAMBIK
04.09.2009, 10:38
на сервере _http://la2friend.ru/ грация финал
работал с l2phx.3.4.1.83

от клиента D04C был Unknown
переименовал:
D04C=RequestEnchantselectItem:h(subID)d(ObjectID)
от сервера FE81 был Unknown
переименовал:
FE81=SelectEnchantItem:h(subID)d(ObjectID)

alexteam
05.09.2009, 12:32
3.5.18.132

splashscreen. все таки надо его было давно добавить. спс за идею NLObP ;)
[-] массивы теперь можно передавать как параметр процедуры/функции (все дружно говорим спасибо гуглу за предоставленные сурсы фастскрипта)

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

Добавлено через 30 минут
NLObP, просьба закоммитить наработки касающиеся packetsx.ini

NLObP
06.09.2009, 02:12
просьба закоммитить наработки касающиеся packetsx.ini

Я эти изменения коммитил.
Сегодня косяк нашел с 39 пакетом в Грации

Revision: 152
Author: nlobp
Date: 1:09:08, 6 сентября 2009 г.
Message:

фикс пакета 39 в Грация Финал, он теперь не 2-х байтный;

в детальной расшифровке отключил перенос по словам (имхо так лучше);

в systray добавил hint;

Залил l2phx.3.5.19.133.rar
и поправил changelog.txt

alexteam
06.09.2009, 12:21
чуточку модифицированые сурсы фастскрипта залиты в файловый архив.
просьба использовать их при создании последующих билдов.
Залил l2phx.3.5.19.133.rar
матюкаюсь....
перекомпилил.. перезалил.

Добавлено через 3 минуты
простенький скрипт.
var
mas : array[0..10] of string;


procedure abc(p: array[0..10] of string);
begin
sendMSG(p[0]);
end;



procedure Init;
begin
mas[0] := 'ляляля';
abc(mas); //если редактор после тестинита не пометил это место - все в порядке.
end;

procedure Free;
begin
end;

begin
end.

QaK
06.09.2009, 12:47
alexteam, ReadX починил? =)

alexteam
06.09.2009, 13:10
в плагины я не лезу... %)

QaK
06.09.2009, 13:12
Угу, как ломать - так все бацаки, а как починить - так все чатлане =(

alexteam
06.09.2009, 13:13
я его не ломал... я эту часть "недопеределал" :P

QaK
06.09.2009, 13:15
Восстанавливай взад всё как было =)

alexteam
06.09.2009, 13:18
ну.. если учитывать что прожект был создан с нуля... и все аккуратно туда либо копипастилось либо в основном переписывалось..... то их можно просто удалить... %)

QaK
06.09.2009, 13:21
Лентяй =)

Добавлено через 20 секунд
хорошо флудить в общем =)

alexteam
06.09.2009, 14:29
я не леньтяй.. я пытаюсь понять какого черта оно в данном виде не работает прямо сейчас %)
с твоей подачи.... кстати...

Добавлено через 56 минут
Revision: 153
Author: alexteam
Date: 12:22:46, 6 сентября 2009 г.
Message:
[-] починил реадх в плагинах. (tpacket заменен обратно на стринг), в соответствии поправил демо - плагины.

изменил тип переменной для идентификации версии с интежер в лонгворд. ибо инт имеет особенность уходить в минуса.


QaK, тебе больше всех надо было ? :spiteful: марш проверять!

Добавлено через 4 минуты
хотелось бы конечно привести их в полное соответствие со скриптам (к примеру убрать из реадХ и варйтХ первый параметр... ну и в таком духе)
но вопервых все Лехи лентяи.. во вторых я еще и индус.. %)