Вход

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


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

NLObP
06.09.2009, 14:36
alexteam, я прописывал пути к сурсам фастскрипта и удалял путь к установленным либам. Может криво?

QaK
06.09.2009, 16:19
QaK, тебе больше всех надо было ? марш проверять!залейте в архив плз, скомпилированную версию. =)

alexteam
06.09.2009, 18:36
залита давно ужо. l2phx.3.5.20.134

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

Добавлено через 2 часа 3 минуты
NLObP, C:\Program Files\FastReports\FastScript\
uninstall.exe или как то так.
после этого установить вручную dclfs*.dpk для твоей версии делфи.

NLObP
06.09.2009, 23:37
залита давно ужо. l2phx.3.5.20.134

Мне кажется архив битый, не распаковывается.

PS: у себя фастскрипт поправил, твой скрипт отрабатывает нормально.

alexteam
07.09.2009, 13:37
блин, и правда не долился архивчик. перезалил...

Добавлено через 1 час 38 минут
плюшки в l2phx.3.5.21.137
[+] научил лсп помимо перехвата данных прям в соединении перенаправлять соединения на сокетный движок пх. добавил соответствующую опцию в настройки.
[!] лсп библиотека несовместима с пред версиями пх и наоборот.

"новшество" связано с тем что с утра увидел топик с кучей антипх дллок. %)

xkor
07.09.2009, 13:51
alexteam, мм, а как же ключ шифрования определить посредь соединения?

alexteam
07.09.2009, 14:07
а это тут при чем ?..
я просто добавил флаг в дллку который при установке перенаправляет соединения с помошью лсп на сокетный движек при коннекте. (на манер инжект.длл)

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

xkor
07.09.2009, 15:38
alexteam, аа, я сначала подумал что ты научил лсп перенаправлять уже давно установленные соединения...

alexteam
07.09.2009, 18:23
если бы... в этом случае пункт "передать ключ" - был бы самой мелкой проблемой.

Добавлено через 1 час 51 минуту
плюшки в l2phx.3.5.22.139

[+] тип Int64 в скриптовый движек
[+] ReadQ/WriteQ туда же. (ф плагины добавлю вечером.. если горючее еще будет)

измененные сурсы фастскрипта в файловом архиве.

Добавлено через 14 минут
[+] поняв что горючего будет много добавил WriteQ,WriteQEx,ReadQ,ReadQEx в плагины не дожидаясь вечера.

перезалил под тем же билдом (3.5.22.139)

nezabudkin
07.09.2009, 19:13
Господа программеры! Очень Вас прошу опубликовать в начале этой темы ссылочку на последнюю стабильную (по вашему мнению) версию на программу. Как мне кажется, большенству пользователей, особенно новичкам, совершенно непонятно какую версию пакетхака надо скачивать, чтобы не получать криты на каждом пакете.

alexteam
07.09.2009, 19:25
какие криты ? лог !?

nezabudkin
07.09.2009, 19:34
какие криты ? лог !?
я образно,
хотя согласись, ты сам по несколько раз в день заливаешь - перезаливаешь новую версию.

alexteam
07.09.2009, 19:39
и.. ? обновляйтесь по мере "важности" для вас обновлений.
Последняя сбилденная версия - всегда есть тут (http://l2phx.pp.ru/arhive/)
за изменениями можно следить вот тут (http://l2phx.pp.ru/wsvn/log.php?repname=l2phx3&path=%2F&rev=0&sc=0&isdir=1).
проверенная на работоспособность базовых функции версии висит приколотой тут (http://coderx.ru/downloads.php?do=cat&id=1) (ее можно назвать стабл. но, имхо. стаблом так же является и последняя текущая. тем более что на данный момент, в текущей версии есть несколько важных вещей по типу: readq/writeq/int64/профикшеные readx в плагинах)
так что качайте последнюю. будут какие-то проблемы связаные с явным багом в билде - пишем сюда прилагая всю имеющуюся по багу информацию. будет профикшено.

NLObP
07.09.2009, 23:39
alexteam, глючек в последней версии: окно настроек всегда поверх всех окон. Вторая страничка в настройках сбилась вннизу.

alexteam
07.09.2009, 23:42
Блин... это из за временного назначение главной формы(сплеша) как фсстайонтоп.. завтра попробую чтото сделать с этим...
на сегодня уже наклюкался до поросячего визгу.. за делфу не сяду -)

TAMBIK
08.09.2009, 11:52
l2phx.3.5.22.139
http://img7.imageshost.ru/imgs/090908/f4a01312e6/e4fa0.jpeg (http://imageshost.ru/)
ItemList
с второго блока по моему пошел сбой
Tип: 0x11 (ItemList)
Pазмер: 2165+2
Время прихода: 10:36:37:890
0002 h ShowWindow: 1 (0x0001)
0004 h ListSize: 30 (0x001E)
[Начало повторяющегося блока 1/30]
0006 h ItemType1: 4
0008 d ObjectID: 278772182
0012 d ItemID: Свиток Воскрешения ID:737 (0x02E1)
0016 d LocationSlot: 5
0020 d Count: 5
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: -1
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
0078 d ?: 1992622080
[Конец повторяющегося блока 1/30]
[Начало повторяющегося блока 2/30]
0082 h ItemType1: 4281
0084 d ObjectID: 283
0088 d ItemID: Деревянная Стрела ID:17 (0x0011)
0092 d LocationSlot: 1
0096 d Count: 0

пакет:

alexteam
08.09.2009, 12:52
этот пакет сумарная длинна которого - 2165 байтикоф
из них заголовок - 5 байтикоф и репиты по 76байтика. исходя из заголовка репитов - 30 штук.
тобиш пакет должен быть длинной 5+76*30 = 2285 байтикоф судя по т1. а у нас.. 2165.
исходя из простейшего расчета каждый "репит" в предоставленном пакете равен 72 байта вместо 76
зы. пх отображает данные верно. чтото не так в т1.

Добавлено через 2 минуты
возможно последний элемент в репите все таки лишний ? %)

Добавлено через 10 минут
NLObP, все таки... 3.5.x\Build\settings\PacketsT2.ini - правой кнопочкой мыши - tortoise (наверняка) - add
ну и коммит.. естественно...

nezabudkin
08.09.2009, 14:47
Затестил вчера l2phx.3.5.22.139.
Проблема следующая: у меня почему-то не работает перехват через inject.dll.
Скрин прикладываю.
ОС: Win XP sp3, сежепереустановленная; антивиры, фаеры отключены.
Клиент: Gracia Final от инновы с папкой system от MKS и настройки от его тестового сервера.
Скрин прикладываю. В то же время на версии l2phx.3.4.1.83 все нормально перехватывается!

То же тестирую через LSP-перехват, все в норме, все пашет.

alexteam
08.09.2009, 15:30
на версии 83 с стандартным инжектом идущим в поставке 83 или отдельным (одним из антинопх)?
спрашиваю потому что инжект в 100+ базируется на стандатном 83.
в любом случае гляну, что там может быть не так.
(правда у мну соединение на эмуле хватает)

пользуйтесь лсп в режиме перехвата соединения, от инжект.длл отличаеться лиш одним. 100% хватает соединение -)

nezabudkin
08.09.2009, 17:22
на версии 83 с стандартным инжектом идущим в поставке 83 или отдельным (одним из антинопх)?
спрашиваю потому что инжект в 100+ базируется на стандатном 83.
использовал стандартную inject.dll

alexteam
08.09.2009, 20:15
nezabudkin,
проверил дллку, на голом клиенте прекрасно хватает соединение.
в общем ради интереса - прошу стянуть debugview (http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx), запустить, запустит тот клиент в котором возникают проблеммы с инжектом.
и после логина поискать характерное "бла бла бла --<<by Fyyre>>--" в логе debugview'а

nezabudkin
09.09.2009, 00:36
alexteam, сегодня затестил еще на одном клиенте, на этот раз интерлюд, та же фигня. 83 релиз работает, а новые релизы перехватывать не хотят! Запустил я debugview, но по моему, ничего интересного она мне не показывает. Лог прикрепил.

nezabudkin
09.09.2009, 00:46
Завтра попробую на другом компе.

nezabudkin
09.09.2009, 17:29
лсп ведь хватает все подяд
LSP так LSP, бдем юзать LSP :)

xkor
09.09.2009, 21:30
лсп ведь хватает все подядну не всё подряд а только WinSock уровень, хотя параноиков отправляющих пакеты с помощью своего драйвера я ещё не видел)

alexteam
09.09.2009, 21:32
свят свят свят. сплюнь %))))

pascalpwnz
11.09.2009, 11:47
alexteam, однако действительно появилась ошибка.
Версия 128 нормально перехватывает клиент (en хб, грация) или бот(вмх под шок).
Версия 132, 133(4),139 - патчит, но не перехватывает соединение.

alexteam
11.09.2009, 16:26
вернул назад структуру инжекта.
по ходу получить доступ к мапфайлу находясь внутри клиента не всегда у инжекта получается.
билд будет только тогда когда выверю полностью все изменения которые сделал за последние 2 дня а их там уже 9 коммитов...
патчит, но не перехватывает соединение.
на самом деле даже 83 будет писать пропатчен, даже если он нифига технически не был пропатчен.. это сообщение следует воспринимать как "клиент был найден"..

alexteam
11.09.2009, 16:26
l2phx.3.5.23.143[test].rar
выложен для теста. полностью не успел проверить. так что вливайтесь -)

Включает следующие изменения:
[+] Галочка Kamael-helbound-gracia в настройках будет устанавливаться автоматически после выбора протокола. при этом ее состояние можно будет сменить после выбора протокола.

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

в плагинах в онконнкт/дисконнект/онпакет тип параметра cnt был изменен на integer; был cardinal. (при ошибке сокет может принимать отрицательное значение (!))

[+]В Скриптовый движок добавлены:
var UseForConnectName: string;
var UseForConnectID: Integer;
их значение действует на работу следующих функций:
SendToClient,
SendToServer,
NoCloseFrameAfterDisconnect,
CloseFrameAfterDisconnect,
NoCloseClientAfterServerDisconnect,
CloseClientAfterServerDisconnect,
NoCloseServerAfterClientDisconnect,
CloseServerAfterClientDisconnect,
Disconnect,
SetName

Так же их действие распространяется на поступление pck в тело скриптов.
пояснение: При установке к примеру UseForConnectName := 'MyCharacter'; тело функции между "begin" и "end." будет вызываться только при совпадении UseForConnectName и имени соединения.
вывод: проверки в скрипте по типу "if ConnectName = 'MyCharacter' then " становятся ненужны в большинстве случаев. скриптовый движок будет "запускаться" реже и только там где это требуется (экономим цп ^_^)

Порядок обработки этих переменных
1. UseForConnectName
2. UseForConnectID (если не задано UseForConnectName)
3. если ни UseForConnectName первое ни UseForConnectID не задано - SendToClient, SendToServer, и т.д. действуют по старому.


пример:
UseForConnectName := 'testchar'
будут отсылать buf с помощью SendToClient по такой схеме
Сначала провериться назначено ли UseForConnectName если эта переменная задана то buf будет отослан соединению с этим именем.
если UseForConnectName не назначено то проверяется назначен ли UseForConnectID если да то отсылает buf соединению с этим айди
если не UseForConnectName не UseForConnectID не назначены то SentToClient отрабатывает как и раньше.

alexteam
11.09.2009, 16:33
(..ограничение по длине сообщения...)
Продолжение:

изменена функция OnCallMethod в плагинах. ее объявление:
TOnCallMethod = function(const ConnectId, ScriptId: integer; const MethodName: String; var Params,
FuncResult: Variant): Boolean; stdcall;

в функцию были добавлены ConnectId, ScriptId
где ConnectId это айди соединения получаемого с учетом UseForConnectName и UseForConnectID
а ScriptId это уникальный идентификатор "скрипта" вызвавшего OnCallMethod

таким образом OnCallMethod может идентифицировать с большой вероятностью (при использовании UseForConnectName и UseForConnectID в самом скрипте)
идентификатор соединения связанного с "экземпляром скриптового движка" вызвавшим метод либо использовать для этих целей ScriptId.
для чего это нужно: если плагин расширяющий функции скриптового движка используется в нескольких скриптах то достаточно часто (все зависит от "направления" функций реализуемых) требуется идентифицировать соединение для которого будет выполняться "расширение" либо "экземпляр скрипта"


[+] Следующие функции добавлены в структуру плагинов
Function SerScriptVariable(scriptid:integer; varname:string; varvalue:variant):boolean;
Function GetScriptVariable(scriptid:integer; varname:string):variant;
function IsScriptIdValid(scriptid:integer):boolean;
позволяют менять значение глобальных переменных скриптового движка в OnCallMethod плагинов.

[-] При редирректе соединения с помощью лсп в лог писался локальный порт вместо удаленного

[+] Соответствующая надпись для перенаправления соединения при использовании лсп в режиме "перехват соединения".

Вернул инжект к старой схеме определения хендла главного окна.

[+] В скриптовый движок добавлены следующие процедуры:
procedure WriteMask(Mask:string; parameters : array of variant)
procedure ReadMask(Mask:string; var index:integer; var parameters : array of variant)

[+] в хелп добавлено их (и не только их) описание в разделе "Перечень поддерживаемых функций/процедур, переменные." (http://l2phx.pp.ru/arhive/l2ph_help/index.htm#page=scripting.htm) (хелп так же был обновлен под текущую версию)

Модифицирован обработчик рантайм ошибок в testInit и testFree (Вместо системной "операция завершена успешно" будет отображаться класс и сообщение конкретной ошибки)



обновленные сурсы фастскрипта перезалиты на фтп

PIONER
11.09.2009, 17:12
А как у видеть трафик логин сервера? а то он вроде показывается не сначала и не расшифрованный. Нада бан по ид обойти.

//alexteam: пх не предназначен для работы с траффиком ЛС.

nezabudkin
11.09.2009, 20:43
l2phx.3.5.23.143[test].rar
выложен для теста. полностью не успел проверить. так что вливайтесь -)
Перехват через inject.dll вроде заработал...
НО, раньше можно было нажать галочку "перехват" уже на загруженном клиенте (до соединения с ГС), а теперь надо включать перехват до загрузки клиента. :(

alexteam
11.09.2009, 20:53
Раньше это в версиях 83 и ниже которые позволяли себе по нескольку раз внедрять библиотеку в целевой процесс.

когда я взялся за перекройку то в первую очередь исключил все варианты повторного инжекта библиотеки в приложение (бсоды любите ?) именно с помошью внедрения ТОЛЬКО в новые запущенные процессы.
можно конечно пересмотреть этот момент и исключить повторный инжект с помощью мьютексов. (если ничего другого не останеться в связи с тем что в этой тестовой версии я ничего не накосячил - сделаю именно так)

кстати. инжект можно прилепить к линейке с помошью appinit (думаю поняли о чем я)

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

nezabudkin
11.09.2009, 23:07
Инжект в уже запущенный процесс фишка крайне нужная.
По поводу диагностики всего остального не гони лошадей, дай народу спокойно потестить.
Еще нюанс, при первом запуске пакетхака, у меня окно с настройками спряталось за главным окном пакетхака.

alexteam
11.09.2009, 23:14
Инжект в уже запущенный процесс фишка крайне нужная.
знач будет.

Еще нюанс, при первом запуске пакетхака, у меня окно с настройками спряталось за главным окном пакетхака.
есть такая штука
" поубивал к чертям практически все стайонтопы."
к ней на свн приписка:
"надо будет написать какойто отдельный управляемый движек для управление zorder окон."

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

TAMBIK
12.09.2009, 12:33
l2phx.3.5.23.139
если выбрано не обрабатывать пакеты
то нельзя удалить лог
не сохранить
не обновить

alexteam
12.09.2009, 15:43
ну да, в принципе отключаеться автосохранение пакетов и дисейблиться вся панель инструментов..
убрал эту фичу ибо и правда глуповато получилось.

Добавлено через 59 минут
23.141 перезалит


больше не отключается панель инструментов после отключения "обработки пакетов" в фрейме соединения.

Инжект в приложение будет осуществляться независимо от порядка запуска ПХ и Целевого приложения, но не более чем один раз в процесс.

Z-order теперь в порядке :)

замечены неточности в дефолтном скрипте скриптового движка
[-] Исправлена опечатка в названии функции SetScriptVariable

als by xkor обновлен до существующей ревизии. добавлены GetScriptVariable, SetScriptVariable, IsScriptIdValid, ReadQ, ReadQEx, WriteQ, WriteQEx. Поправлен GoFirstConnection и GoNextConnection
[+] Восстановлена логика WriteXEx ReadXEx

В соответствии с этими изменениями поправлен хелп.

[+] als.dll плагин добавлен в архив билда.


Добавлено через 1 час 53 минуты
в детальной расшифровке отключил перенос по словам (имхо так лучше);
это, при работе с хтмл... не лучше :(( пока все выделишь чтоб скопировало - рехнешся.
сделал контекстное меню позволяющее его включить.

nezabudkin
12.09.2009, 16:47
На какой версии Делфи сейчас пакетхак компилируется?

23.141 перезалит
Запускаем phx (галочка перехват не стоит), запускаем клиент, ставим галочку перехват, жмем сохранить. Ничего не происходит :(

alexteam
12.09.2009, 20:31
на 7й. компилируеться легко и на вышестоящих. главное чтобы либы были -)
Запускаем phx (галочка перехват не стоит), запускаем клиент, ставим галочку перехват, жмем сохранить. Ничего не происходит
ща проверю.. однозначно работает если пх стартует после клиента с уже включенным перехватом.
заодно еще один косяк ковыряясь с плагинами нашел... в подсказках скриптового движка.

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

Добавлено через 3 часа 6 минут
гады %)
хоть ктото из вас пытался скрипты запускать ?..
сомнительно, ибо сразу же был багрепорт что оно "НЕ работают".
если бы я не сел за ультрамегаплагин реализующий логику бота в плагине (учет обьектов, шмота, скилов, патчпоинты, хтмл рожа и прочую ахинею) с управлением из под скрипта (или наоборот) то черт его знает когда бы пофиксил.
поправил, перезалил под тем же билдом. выводы сделал.

TAMBIK
12.09.2009, 20:55
я пробовал
но несмыслю в проге
я скрипт проверял думал ошибка из за скрипта

alexteam
12.09.2009, 21:02
readmask так же сломан.
хех.

Shizo
15.09.2009, 20:37
немагу скрипт запустить!

вылетает ошибка постоянно!

Access violation at address 0066584D in module 'l2ph.exe'. Read of address 00000014.

alexteam
15.09.2009, 21:51
а где все остальное ?

Shizo
16.09.2009, 09:31
а где все остальное ?

это чтоли?
Variant or safe array index out of bounds.

Exception class: EVariantBadIndexError
Exception message: Variant or safe array index out of bounds.
Exception address: 00415A10
------------------------------------------------------------------------------
Stack list, generated 15.09.2009 18:24:31
(00014A0B){l2ph.exe } [00415A0B] SysUtils.Finalization + $17
(00014B58){l2ph.exe } [00415B58] SysUtils.Finalization + $164
(0001BF5D){l2ph.exe } [0041CF5D] Variants.NullCompare + $65
(00132ECC){l2ph.exe } [00533ECC] OleCtnrs.TOleForm.GetBorder + $4C
(00130920){l2ph.exe } [00531920] advApiHook.ProcessRelocs (Line 1032, "units\advApiHook.pas" + 6) + $2
(00131DF5){l2ph.exe } [00532DF5] siLangCombo.TsiLangCombo.DrawItem + $A5
(00131D11){l2ph.exe } [00532D11] siLangCombo.TsiLangCombo.Destroy + $1
(0013229E){l2ph.exe } [0053329E] siLangCombo.TsiLangCombo.UpdateInfo + $1DA
(00131D11){l2ph.exe } [00532D11] siLangCombo.TsiLangCombo.Destroy + $1
(0012EA67){l2ph.exe } [0052FA67] JvExComCtrls.TJvExPageControl.WndProc + $10B
(0013334E){l2ph.exe } [0053434E] OleCtnrs.TOleForm.ClearBorderSpace + $2E
(00257D2B){l2ph.exe } [00658D2B] fs_iinterpreter.TfsScript.Create (Line 2070, "fs_iinterpreter.pas" + 4) + $7
(000A9AEC){l2ph.exe } [004AAAEC] Controls.TDockTree.RemoveControl + $0
(00086E30){l2ph.exe } [00487E30] Forms.TCustomForm.AlignControls + $44
(00086EB5){l2ph.exe } [00487EB5] Forms.TCustomForm.CMBiDiModeChanged + $5D
(00086E0B){l2ph.exe } [00487E0B] Forms.TCustomForm.AlignControls + $1F
(00087009){l2ph.exe } [00488009] Forms.TCustomForm.GetBorderIconStyles + $25
(000A9954){l2ph.exe } [004AA954] Controls.TDockTree.PositionDockRect + $74
(000AC9B3){l2ph.exe } [004AD9B3] Themes.TThemeServices.GetElementDetails + $17F
(00086954){l2ph.exe } [00487954] Forms.TCustomForm.WndProc + $33C
(000A9724){l2ph.exe } [004AA724] Controls.TDockTree.PaintDockFrame + $CC
(000ACAEB){l2ph.exe } [004ADAEB] Themes.TThemeServices.GetElementDetails + $2B7
(000AD143){l2ph.exe } [004AE143] ImgList.TCustomImageList.Initialize + $37
(000A9954){l2ph.exe } [004AA954] Controls.TDockTree.PositionDockRect + $74
(000AC9B3){l2ph.exe } [004AD9B3] Themes.TThemeServices.GetElementDetails + $17F
(00023844){l2ph.exe } [00424844] Classes.TRegGroups.GetClass + $3C
(00037858){l2ph.exe } [00438858] JclRegistry.RelativeKey + $1C4
(000AC630){l2ph.exe } [004AD630] Themes.TThemeServices.GetElementDetails + $BC
(000AC9B3){l2ph.exe } [004AD9B3] Themes.TThemeServices.GetElementDetails + $17F
(000AC630){l2ph.exe } [004AD630] Themes.TThemeServices.GetElementDetails + $BC
(00030454){l2ph.exe } [00431454] Classes.ConvertValue + $3E0
(000ACA97){l2ph.exe } [004ADA97] Themes.TThemeServices.GetElementDetails + $263

Shizo
16.09.2009, 09:32
(000A9EF4){l2ph.exe } [004AAEF4] Controls.WriteControlName + $0
(002684CD){l2ph.exe } [006694CD] LSPInstalation.savereg (Line 50, "LSPInstalation.pas" + 0) + $35
(000A9954){l2ph.exe } [004AA954] Controls.TDockTree.PositionDockRect + $74
(000AC9B3){l2ph.exe } [004AD9B3] Themes.TThemeServices.GetElementDetails + $17F
(000AC7DB){l2ph.exe } [004AD7DB] Themes.TThemeServices.GetElementDetails + $B7
(000AC9B3){l2ph.exe } [004AD9B3] Themes.TThemeServices.GetElementDetails + $17F
(00086954){l2ph.exe } [00487954] Forms.TCustomForm.WndProc + $33C
(000AC630){l2ph.exe } [004AD630] Themes.TThemeServices.GetElementDetails + $BC
(00030454){l2ph.exe } [00431454] Classes.ConvertValue + $3E0
(0003B9CE){l2ph.exe } [0043C9CE] IniFiles.TStringHash.HashOf + $22
(00098EEB){l2ph.exe } [00499EEB] Controls..TControl + $217
(00098F22){l2ph.exe } [00499F22] Controls..TControl + $24E
(00099142){l2ph.exe } [0049A142] Controls..TControl + $46E
(0028566C){l2ph.exe } [0068666C] uVisualContainer.TfVisual.SavePacketLog (Line 414, "units\uVisualContainer.pas" + 27) + $C

alexteam
16.09.2009, 11:38
410 115 alexteam i := 1;
411 alexteam while i <= Length(charname) do
412 alexteam begin
413 alexteam if pos(lowercase(charname), 'qwertyuiopasdfghjklzxcvbnm1234567890.') > 0 then
414 alexteam inc(i)
415 alexteam else
416 alexteam delete(charname,i,1);
417 alexteam end;
я принципиально не вижу здесь ошибки.
что за скрипт и ГДЕ ты пытаешься его запустить ?

[I]Добавлено через 2 минуты
и вообще.. какойто бредовый репорт... ассорти чемто напоминает

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

Sashafaq
16.09.2009, 11:50
могу выложить лог ероров еси надо вот там асорти будет чем перекусить :D

alexteam
16.09.2009, 15:39
от последней версии онли.
при чем действитлельно последняя есть только у мну и у тех кто апдейтиццо и компилит для себя.

Добавлено через 4 минуты
Shizo, вот такая вот ошибка ?
http://i.piccy.info/i4/02/b9/7cfb493a35faac27639182be365f.jpeg (http://i.piccy.info/i4/53/a4/a25a8b02b7f60cb3850e4417c1a0.jpeg)

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

Добавлено через 3 часа 39 минут
l2phx.3.4.1.83
исправте PacketsT1
alexteam
Код:

11=ItemList:h(ShowWindow)h(ListSize:Loop.01.0021)h (ItemType1)

все с ошибкой лежит
поправил.. но это капля в море... во всяком случае на т1.
Поправил обратно на 22.
могу привести пакет итемлиста при котором без последнего д в лоопе все едет.

alexteam
18.09.2009, 21:24
это вопрос ?

pascalpwnz
20.09.2009, 23:47
По поводу стабильности пх.
Раньше использовал для мини задач, вылеты были достаточно частые, но не всегда. Недавно попробовал использовать как фильтр кривых пакетов для небольшой бот пати, итог - стабильно вылетает после 10-60 минут работы (часто по тихому, даже винда не всегда сообщает о закрытии пх из-за ошибки), а error.log при этом остается пустой.
Во время работы (в 128) постоянно появляются ошибки чтения из памяти(без деталей), которые, если их не трогать, не мешали дальнейшей работе пх, но после его окончательной кончины и этих ошибок нет в error.log.
Хотя 141 смог записать одну такую ошибку, не знаю только стала ли она причиной вылета или была до нее. (Первая в файле)

Вобщем вопрос: чем воспользоваться, чтобы диагностировать причину вылета?
PS Подобное наблюдаю на двух разных машинах и системах.
PSS В 141 появилась ошибка интерфейса, которая возникает при попытке его закрыть. Приходиться убивать через диспетчер. (Вторая в файле)

alexteam
20.09.2009, 23:57
Обе предоставленые - касательно скриптового енджина и выполняющихся в ним функций.
такой сбитый трейслог я видел несколько раз при попытке запускать полноценный скрипт в "дополнительно"
могу глянуть на сам скрипт/скрипты в этот момент запущенные ?

pascalpwnz
21.09.2009, 00:29
все 4 скрипта вида:

if fromserver\client and (pck[1]=#$xx) ... and (pck[x]=#$xx) then
pck:=''; // в одном случае тут pck:=HSTR('xx xx xx');


Добавлено через 12 минут
------------------------
Касательно второй ошибки в тот раз появилась так:
Открыл вкладку скрипты (2 фильтр скрипта по умолчанию включены), изменил сторонний скрипт, закрыл вкладку, нажал выход - ошибка. Соединения не перехватывались (или были проигнорированы). Повторить не удалось, но ошибка именно в 141, (ну по крайне мере до 128 включительно я ее никогда не видел) уже не первый раз. Но это очень не критично.

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

alexteam
21.09.2009, 00:34
Порылся немного.
поправил пару жестких косяков с вкладкой дополнительно (ух и давно же я туда не смотел) -)

PSS В 141 появилась ошибка интерфейса, которая возникает при попытке его закрыть. Приходиться убивать через диспетчер. (Вторая в файле)
неправильный порядок разрушения объектов при наличии соединений. нашел. исправил. хотя не критично.

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


все эти симптомы возникают при использовании простейших скриптов изменяющих/убивающие пакет без использования write/readX ? (ответ сузит круг поиска)

Добавлено через 3 минуты
Погоняй пока вот это http://l2phx.pp.ru/arhive/l2phx.3.5.23.141[test.somefixes].rar
мне будет проще фиксить непофикшеное.
эррор логи приветствуются.

pascalpwnz
21.09.2009, 08:04
все эти симптомы возникают при использовании простейших скриптов изменяющих/убивающие пакет без использования write/readX ? (ответ сузит круг поиска)

Да. Все выглядит именно так, как в коде предыдущего поста.

Вспомнил, что в 3.4.* возникали проблемы при использовании pck:='';
Сделаю сейчас вместо этого pck[1]:=#$D5; (D5 вроде свободный пакет от сервера к клиенту... надеюсь...)

Добавлено через 38 минут
Замена pck:=''; не помогла, 141 somefix завершился ошибкой, без error.log

Добавлено через 8 минут
error.log 141
http://dump.ru/file/3450768
error.log 122 (со второй машины на удивление всего 2 записи об ошибке, хотя там я его использовал постоянно и он часто вылетал)
http://dump.ru/file/3450769

Добавлено через 4 часа 44 минуты
Похоже предыдущий вылет был по иной более редкой причине.
А так после замены pck:=''; ПХ работает нормально уже 4+ часа.
С удивлением обнаружил, что один из фильтруемых пакетов постоянно приходит при каче (надо будет разобраться почему), отсюда и не стабильность относительно "мини задач". Но! Версия 3.4.* сразу ругалась на ошибку чтения из памяти, если скрипт(или оператор) ниже пытался прочитать пустой пакет, тогда как в 3.5 этого не происходит, да и вообще этот используемый скрипт-фильтр все это время стоял ниже всех, могу только предположить, что уже где-то далее программа пытается прочитать пустой пакет, используя какое-то редко активируемое условие. Хотя тут вам видней.

Добавлено через 1 час 50 минут
Через 6+ часов работы пх опять закрылся ошибкой без логов. Это уже явно другая ошибка, как ее диагностировать ?

alexteam
21.09.2009, 11:43
pck[1]:=#$D5
не надо так делать...
pck:=#$D5 - воттак лучше..
а еще лучше
pck:=''
ибо если pck = '' то выражение вида pck[1] приведет к ошибке.

вот так тоже не надо делать:
if pck[1] = xx and pck [10]= yy then
при условии что у нас пакет длинной ниже 10.
так что проверяй длинну пакета либо делай так
if pck[1] = xx then
if pck [10]= yy then //это условие будет проверяться только если тип пакета = хх (при условии что пакет хх имеет по определению такую длинну)
либо через кейс.
при чем после обнуления пцк убедись что ниже нет условий обращающихся к его элементам (pck[1] и т.д.)
+1 в копилку за кейс.

к стати вот такие вот проебы могут стать причиной вылета. при чем ты ошибку максимум в статус баре увидишь. если увидишь -)

и НЕ забывать делать
if pck = '' then exit; в САМОМ начале последующих скриптов.
я чуть попожже все таки добавлю такую проверку в самом пх, и он просто не будет запускать скрипт в цепочке при условии что пцк пуст (был обнулен)
а так больше замечаний нет.

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

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

TAMBIK
21.09.2009, 11:46
а еще лучше
pck:=''
exit;

alexteam
21.09.2009, 15:07
сделал отключение чтения значений из фастскрипта при скрытом ватчлисте.
ускорит работу и уберет излишний геморрой с вартайпаррай.
перезалил.

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

вход в редактор в "дополнительно". был поправлен вчера.
(00271A9D){l2ph.exe } [00672A9D] uScriptEditor.TfScriptEditor.EditorEnter (Line 396, "units\uScriptEditor.pas" + 1) + $1D

разрушение обьектов когда енкдек разрушался перед автоматическим сохранением лога пакетов при выходе (где использовался енкдек.коннектнаме).
еще вчера поправил. это все ексепшины имеющее строчку:
(0026ADC0){l2ph.exe } [0066BDC0] uVisualContainer.TfVisual.deinit (Line 246, "units\uVisualContainer.pas" + 12) + $A

вот это по идее только что поправил опять же связано с неправильным порядком разрушения объектов при выходе с пх (некритично):
(00272CB9){l2ph.exe } [00673CB9] uScripts.TScript.Destroy (Line 317, "units\uScripts.pas" + 4) + $F
(002732D1){l2ph.exe } [006742D1] uScripts.TfScript.DestroyAllScripts (Line 413, "units\uScripts.pas" + 2) + $D

вот это вылезло при компиляции скрипта, когда он не смог определить позицию ошибки в тексте (некритично).
поправил пытаться отмечать строчку не будет, будет только выводить в статус ошибку.
(0027C554){l2ph.exe } [0067D554] uData.TdmData.Compile (Line 1035, "units\uData.pas" + 5) + $28

вот это вообще ХЗ что. очень похоже на юзанье инжекта более старой версии
(00267FF5){l2ph.exe } [00668FF5] uMainReplacer.TfMainReplacer.ReadMsg (Line 228, "units\uMainReplacer.pas" + 2) + $7
(000A98DC){l2ph.exe } [004AA8DC] Controls.TControl.WndProc + $188
(000AC93B){l2ph.exe } [004AD93B] Controls.TWinControl.WndProc + $157
(0009297D){l2ph.exe } [0049397D] Forms.TCustomForm.WndProc + $421
(000AC5B8){l2ph.exe } [004AD5B8] Controls.TWinControl.MainWndProc + $2C
(000303DC){l2ph.exe } [004313DC] Classes.StdWndProc + $14
(00098E03){l2ph.exe } [00499E03] Forms.TApplication.ProcessMessage + $13
(00098E92){l2ph.exe } [00499E92] Forms.TApplication.ProcessMessages + $A
(0026EDC8){l2ph.exe } [0066FDC8] uSettingsDialog.TfSettings.ReadSettings (Line 114, "units\uSettingsDialog.pas" + 5) + $7
(00270825){l2ph.exe } [00671825] uSettingsDialog.TfSettings.Init (Line 455, "units\uSettingsDialog.pas" + 10) + $2
(0028402C){l2ph.exe } [0068502C] l2ph.l2ph (Line 84, "" + 22) + $7

и еще одна
думаю что она одна и таже, но отследить ее не могу ибо трейс сбит.
заканчиваеться вот такой фенькой
uVisualContainer.TfVisual.SavePacketLog
при чем выше по трейсу идет вообще билеберда, с рандомным порядком используемых юнитов упирающихся в ФС.
в общем, делетим еррор лог и пробуем переаплоаденный.
делимся впечатлениями.

Добавлено через 18 минут
в общем перезалил.

xkor
21.09.2009, 15:51
вот так тоже не надо делать:
if pck[1] = xx and pck [10]= yy then
при условии что у нас пакет длинной ниже 10.
так что проверяй длинну пакета либо делай так
if pck[1] = xx then
if pck [10]= yy then //это условие будет проверяться только если тип пакета = хх (при условии что пакет хх имеет по определению такую длинну)
не бурусь гарантировать что в скриптовом движке это работает как и в дельфи, но в дельфи писать "if pck[1] = xx and pck [10]= yy then" было бы правильно ибо если первое условие ложно то второе уже не проверяется

alexteam
21.09.2009, 15:55
даже если аналогично тому как в делфе.
у него таких проверок под ряд походу не 1 штука.
обнуление пакета и скрипт загибаеться на следующей проверке.

xkor
21.09.2009, 16:25
alexteam, ну это да

pascalpwnz
21.09.2009, 20:10
http://l2phx.pp.ru/arhive/ - Не работает :( Не могу новую версию получить.

Сегодня проведу несколько тестов по поводу всего этого, результаты тут отпишу.

alexteam
21.09.2009, 20:51
закомитить я то что делал после 11 часов тож не могу, да и не помню ничерта если честно, какието некритичные мелочи. даже фейс в редакторе поправил кое где..

мозги варятся. температура.
срочную работу доделаю и возможно на день - два пропаду (дома нета нет).

xkor
22.09.2009, 03:15
http://l2phx.pp.ru/arhive/ - Не работает Не могу новую версию получить.работать работает, тока доступа почему то к серваку в целом нету, тока через глобальное управление серваком он виден, видимо чтот с каналами...

alexteam
22.09.2009, 19:04
снова в строю. оказалось непищевое отравление.
новости с фронта есть ?

pascalpwnz
22.09.2009, 21:57
Проверил работу if, как в дельфи, если первый элемент неверный, то дальше условия не проверяются. Также поставил перса в гиран и протестировал работу одновременно двух скриптов обнуляющих пакеты - без ошибок.
Теперь надо бы проверить стабильность при долгой работе (ибо версия без фикса вылетала без юза скрипта на обнуление пакета), но это потом, когда организую ботфарм 24\7.

Ну а так только словил 2 редкие, незначительные ошибки интерфейса:
1. Редактируя пакет в меню посылка, умудрился как то так кликнуть мышкой, что словил 4 подряд ошибки чтения из памяти, после чего пх завис намертво. (лог 1-4)
2. Таже ошибка, что и раньше, при попытке закрыть пх, правда в этом случае со второго раза все-же закрылась. (5 лог)
http://dump.ru/file/3460288

Ну а так пока все чудесно.

Добавлено через 7 минут
Ща опять словил ошибку при выходе (2 подряд, но потом вышло)
http://dump.ru/file/3460380

alexteam
22.09.2009, 22:35
(0028596C){l2ph.exe } [0068696C] uVisualContainer.TfVisual.tbtnFilterDelClick (Line 459, "units\uVisualContainer.pas" + 8) + $3
сдя по этому - в строке есть только таймстамп и дирекшин.. т.е. в думп писались "обнуленные" пакеты.
исключил такую возможность.

к стати... а в остальном - данные лога мало относятся к описаным проблемам %)

pascalpwnz
23.09.2009, 11:50
а в остальном - данные лога мало относятся к описаным проблемам %)

Ну что же я врать что ли буду ? %)

Добавлено через 11 часов 4 минуты
Хм.. в течении 6 часов 2 раза такое:
http://dump.ru/viewer/preview/biggest/3462421.jpg (http://dump.ru/file/3462421)
(и далее еще куча подобных ошибок, а потом вылет пх)

Без лога.
Юзал скрипт с readD и один общий фильтр (стоит в конце отфильтровывает "помеченные" пакеты).

Добавлено через 1 час 23 минуты
и 3 раз тоже самое, где-то раз в 3 часа выскакивает.

Добавлено через 7 минут
В readD есть проверка на длину? А то мб на шоке боты еще и криво отправляют пакеты.

alexteam
23.09.2009, 15:45
pascalpwnz,
я про то что все предоставленые ошибки в логах одинаковы.
и максимум относились к первому пункту.
отапдейтил менеджер памяти, кой чего поправил (связаное с проверкой длинны в реадх), перекачивай. смотри что получилось (танцы с бубном пошли...)

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

pickwick
23.09.2009, 16:12
Собсвенно найдены такие ошибки в новой версии пакет хака:

1. в новой версии не работает массив со строками
2. При установке программы Proxifier, перестаёт работать LSP перехват так как l2ph не хочет регистрировать порт. Смена на другой порт не помогает.
Не удалось зарегистрировать локальный сервер на порт 7788
Возможно этот порт занят другим приложением

alexteam
23.09.2009, 16:25
массив со строками говоришь...
http://i.piccy.info/i4/bd/73/e3333c8533224774fb1fb2e82488.jpeg (http://i.piccy.info/i4/ae/2d/abfc96285227145d59db3e8e8994.jpeg)

по поводу Proxifier. выключай лсп в пх, ставь режим проксика и используй сам Proxifier для заворота траффика.

pickwick
23.09.2009, 18:04
Насчёт массивов отписал в лс...
В старой версии настройки стоят точно такие же как и в новой. Но в новой версии скрипт запускается но не работает.
//alexteam: интересно.. при чем пх к хромающей логике скрипта

alexteam
24.09.2009, 00:14
нашел забавную штуку.
критикал секцию там.. где ее и в помине быть не должно.. (долго думал какого черта у меня 2 окна на плагине боте переодически вешают пх)
убил к чертям... полегчало..

pascalpwnz
24.09.2009, 11:02
мля...
генерация дебагинфы была обрубленна...
удивительно что он вообще лог писал.. хоть какойто...
включил.. перезалил.
Те ошибки, которые у меня выскакивали, возможно из-за кривых шогоботов и моего недосмотра (я скоро проверю это), но я к другому, когда они сегодня по выскакивали error.log все равно не появился...

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


PS Планирую на днях создать фуллку тестеров на кельтирах, чтобы все проверить.

alexteam
25.09.2009, 00:10
бедные келтиры :D
галку "обрабатывать пакеты" в опциях - дополнительно - сделаю

Добавлено через 11 часов 53 минуты
Сделал. попутно прикрутил в каллметоде трайекцепт.
ибо если в плагине с ним косяк - чтобы это не отображалось на пх. (проблемы ведь в плагине не так ли)
перезалил.

nezabudkin
25.09.2009, 03:00
Примеры плагинов из репозитория, можно в delphi 2010 компилить? И вообще, они должны работать (примеры плагинов) ?

xkor
25.09.2009, 03:20
nezabudkin, 2009 и 2010 дельфи из за глобального перехода на юникод взамен ANSI не полностьб совместимы с предыдущими версиями так что с типами строк возможно придётся повозиться...

alexteam
25.09.2009, 13:02
7ка рулила, рулит и будет рулить -)))

xkor
25.09.2009, 14:02
alexteam, ну 2007 тоже 7ка, тока с небольшой приставкой)))
ЗЫ следущая рульная будет 2017)))

alexteam
25.09.2009, 15:07
да ну... бдс тайп ?

Добавлено через 50 минут
по просьбе и при помощи TAMBIK'a прикрепил к ПХ augmentsid.ini
поправил т1 и т2 ини всунут туда :get.augmentid

поправил баг с FE пакетами.. когда структуру он брал от пакета die (в отправлялке и в составлении пакета)

перезалил.
если все будет ок - будет след версия на базе этой.

alexteam
25.09.2009, 19:39
я ужо перезалил...
не забывай для себя в loop уменьшать цифферку на 1.

Добавлено через 3 часа 9 минут
Билд l2phx.3.5.24.142
все значительные модификации в период существования 141(тестовом) за это время.
билд залит на фтп. и обновил в файловом архиве. все остальное поубивал.

[+] Следующие функции добавлены в структуру плагинов
Function SetScriptVariable(scriptid:integer; varname:string; varvalue:variant):boolean;
Function GetScriptVariable(scriptid:integer; varname:string):variant;
function IsScriptIdValid(scriptid:integer):boolean;
function CallScriptFunction(scriptid:integer; Name: String; Params: Variant; var error:string): Variant;
[+] В скриптовый движек добавленны следующие процедуры:
procedure WriteMask(Mask:string; parameters : array of variant)
procedure ReadMask(Mask:string; var index:integer; var parameters : array of variant)
[+] В Скриптовый движек добавленны:
var UseForConnectName: string;
var UseForConnectID: Integer;
[+] в скриптовый движек добавлен тип int64
[+] в скриптовый движек добавлены ReadQ, WriteQ.
[+] Вебхелп дополнен и расширен.
[+] Соответствующая надпись для перенаправления соединения при использовании лсп в режиме "перехват соединениея"
[+] возможность включить перенос по словам в детальном просмотре пакетов с помошью контекстного меню.
[+] augment.ini и соответствующая функция в парсере
[+] умолчание для "обрабатывать пакеты" в настройках\дополнительно

[-] При редирректе соединения с помошью лсп в лог писался локальный порт вместо удаленного
[-] Вернул инжект к старой схеме определения окна пх
[-] баги связаные с ватчлистом
[-] баги связаные с ReadX
[-] глюки с Z-order окон
[-] Восстановлена логика WriteXEx ReadXEx в плагинах
[-] дублирование элементов подсказок по ctrl+space при переактивировании плагинов добавляющие свои функции в скриптовый движек
[-] аксесвиолейшины в вкладке дополнительно
[-] все явные аксесвиолейшины связаные с неправильным разрушением(порядком) обьектов найденные за время активного использования пх мной и все которые удалось локализировать по багрепорту пользователей
[-] убрана ненужная критическая секция вешающая пх время от времени.
[-] сплиттер в составлении пакета был невидим.
[-] баг с определением FE пакетов от сервера. при котором структура бралась от 00 пакета (дай) в конструкторе пакетов и отправке

оптимизация TdmData.CallMethod

точное определение ошибки в Init и Free методах.

не отключаеться панель информации после отключения "обработки пакетов" в фрейме соединения.

Инжект в приложение будет осуществляться независимо от порядка запуска ПХ и Целевого приложения, но не более чем один раз в процесс.

als by xkor обновлен до существующей ревизии. добавлены GetScriptVariable, SetScriptVariable, IsScriptIdValid, ReadQ, ReadQEx, WriteQ, WriteQEx. Поправлен GoFirstConnection и GoNextConnection

Сприпты будут получать пакет после обработки его встроеными средствами (получение имени соединения)

fastmm обновлен, генерация дебагинфы вновь включена.

Leviy
26.09.2009, 05:24
alexteam, c l2phx.3.5.24.142 странные траблы, список процессов пустой и не обновляется, само собой и клиент не находит, старые версии норм (l2phx.3.5.5.106)

З.Ы. WinXP sp3

alexteam
26.09.2009, 11:50
в опциях перехват включить ? не ?

Leviy
26.09.2009, 12:50
alexteam, в том то и дело что включен...

alexteam
26.09.2009, 13:07
вопрос.. встречный... а почему у меня работает ? XD

Leviy
26.09.2009, 13:28
хз =), на другом сервере через инжект находит и инжектится, списка процесов всеравно нет, а тут мне нужен лсп, а он в никакую не хочет...

или я сильно лошу, или хз =)

up
проблемой оказалось первое, но теперь клиент отваливается, ушел парить мозг, простите за беспокойство....

pascalpwnz
26.09.2009, 19:48
С новой версией не могу зайти наш шог, при попытке зайти на сервер, создается соединение в пх, но оно пустое, без пакетов на ключ и пртокол версию:
http://img22.imageshack.us/img22/3368/bagph2.jpg

после небольшого простоя само собой обрывается ошибкой 10060.
При использовании последней версии 141 - все нормально.

PS да опять словил этот незначительный баг, при закрытие пх(ласт 141):
http://dump.ru/file/3480864

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

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

pascalpwnz
28.09.2009, 00:11
Извиняюсь :(
Чудной фаерволл заблокировал пх, но вместо сообщения вылетел...

nezabudkin
28.09.2009, 00:44
alexteam, вчера весь вечер пробовал заставить работать плагины, собственно безуспешно. Использовал последнюю версию пакетхака. Исходники плагинов скачал из репозитория. Откомпилировал в D2007. Дальше пишу про "Автовыпивалку HP бутылок". При запуске в клиенте вподряд выводится несколько одинаковых сообщений, типа плагин запущен, и потом пакетхак зависает, некаких ошибок не выводится. В принципе, закоментировал потом почти весь код плагина, только после этого виснуть перестало:) Такое ощущение, что почти все функции экспортируемые в плагин, не работают, либо работают криво, либо пакет в плагин передается как то криво.

Добавлено через 3 минуты
P.S. Тестировал на сервере MKS, номера и формат пакетов в плагине подправил согласно хроникам установленным на сервере.

alexteam
28.09.2009, 01:22
в последний раз когда тестил разборку пакета в плагине вродь бы работало...
...во всяком случае в д7, в д2к7 вайдстринги как бы.. -)

Добавлено через 1 минуту
Чудной фаерволл заблокировал пх, но вместо сообщения вылетел...
пх отомстил 0_о

Добавлено через 1 минуту
nezabudkin, в жостком скриптинге есть пример как можно обвязать плагин (логику) скриптом (работа с пакетами)
точно работающий -))
(я на нем спойла и еешку тягаю)

TAMBIK
04.10.2009, 10:23
при подключение к серверу клиент шлет
пакет 0x0E (ProtocolVersion)
он программой обробатывается ?

NLObP
писал что у некоторые сервов пакеты бывают
от клиента интерлюд а от сервера грация или хз

предложение
правда если не займет много времени
сделать в проге по умолчанию АВТО. настройки протокола по пакету от клиента
ProtocolVersion
и разделить настройки протокола от сервера и от клиента
примерно так
версия протокола
АВТО. РУЧНАЯ
ручная будит делиться на настройки версии протокола отдельно
и от клиента и от сервера
если нетрудно

alexteam
04.10.2009, 13:00
я пас %)

alexteam
07.10.2009, 16:41
релиз 3.5.25.145.

[-] некритичная бага с WM_ProcessPacket при вызове его с плагина при условии что тунель уже умер, приводящая к спаму ошибкой

[+] в TCodingClass добавленны:
procedure PreDecrypt(var Data; var Size: Word);
procedure PostEncrypt(var Data; var Size: Word);

схема выполнения:
обычный "сниффинг"
Client/Server>>PreDecrypt>аккумулятор сокетного движка>DecryptGP>(PH. плагины и скрипты)>EncryptGP>PostEncrypt>>Server/Client

для произвольной отправки пакета (плагинами, скриптами)
плагин/скрипт>EncryptGP>PostEncrypt>>Server/Client

в PreDecrypt поступают необработанные данные только что вытянутые из тцп стека. после обработки в PreDecrypt данные должны принять вид - "первые 2 байта = длинне пакета"
дабы сокетный движек обрабатывал это данные без помех.

в PostEncrypt должны поступают данные в формате "первые 2 байта = длинна", на выходе - данные понятные серверу/клиенту.

если нужды в PreDecrypt/PostEncrypt нет то оставить эти функции пустыми.
[+] в PluginCodding добавлен невксор с стандартным ксорингом для серверов без шифрации. с учетом этих изменений.

все "методы" TcoddingClass смогут менять длину пакета.


Все что касается обсуждения этих изменений вынесено отдельной темой (http://coderx.ru/showthread.php?t=2472).
перенаправление на эту тему так же есть и в этом разделе. чтобы не потерялось.

Добавлено через 3 часа 13 минут
[-] баг когда при снятия галочки с ньюксора пх вылетал при перехвате следующего коннекта. по причине того что пх все таки пытался использовать функции с уже выгруженной длл.

незначительный баг. отдельно оформлять релиз не буду. перезалил текущий.

alexteam
09.10.2009, 13:13
[-] Проблема с отправкой пакетов на сервер. (критичный баг)
[+] Лсп с режимом перехвата данных подогнан под новый тип ньюксора.
[-] двойная загрузка библиотеки ньюксора при старте пх.
Перезалил 3.5.25.145.

QaK
09.10.2009, 15:08
Вай, репозиторий лежит! Что же будет с нами!!!!!

alexteam
09.10.2009, 15:10
ну, на работу черепашки это не влияет -)

alexteam
11.10.2009, 14:51
релиз l2phx.3.5.26.148.
[+] Возможность запускать соединения через SOCKS5 прокси. Соотвествующие настройки, в настройках -)

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

Добавлено через 13 часов 46 минут
[+] Лсп в режиме перехвата соединения так же сможет заворачивать траффик через соцкс 5. (чет я про него совсем вчера забыл, ... всю ночь снилось.. что и де надо поправить... ппц..)
[+] При перехвате соединения которое не требуеться дешифровать фрейм соединения будет иметь единственную кнопку "закрыть соединение".
[+] procedure ShowBaloonnHint(Msg: string) в скриптовый движек. (в сетингах обычный сендмесейдж был не очень к стати, заменил его балонхинтами с трея, заодно и в скрипты добавил.)
[-] поправлено довольно много мест в коде... ну я вчера по пйане и наваял..

Добавлено через черт знает сколько
[-] поправил сломаный "открыть лог пакетов"
[-] баг при разрушении редактора скриптов при возникновении которого выдавался запрос на сохранение всех загруженных скриптов, и при сохранении сохранялись пустышки, при этом терялись скрипты.
l2phx.3.5.26.148 Перезалит.

alexteam
21.10.2009, 23:58
[-] Баг когда при дисконнекте (с сокетной ошибкой_ одного из клиентов Пх уходил в вечный цикл в одной из нитей и затем вываливался с ошибкой (ерроркоде5)
критичный. не наблюдался при работе с клиентом линейки.. поэтому не был пофикшен раньше.
релиз l2phx.3.5.27.150
помечен как стабильный, прикреплен в файловом архиве.
все остальные релизы 100+ потерты с фтп.

alexteam
25.10.2009, 15:12
l2phx.3.5.28.151
[-] NoCloseServerAfterClientDisconnect, NoCloseClientAfterServerDisconnect.
Будет проводиться перекрестная проверка, и эти функции смогут работать отдельно друг от друга.

При возникновении ИС в теле скрипта pck будет изменен если он был модифицирован в теле скрипта до возникновения ошибки.
Так же помимо вывода сведений об такой ошибке в статусбары они будут выводиться и в лог ПХ.
[+] при отключения соединения помимо затенения кнопки "отправить" в отправке так же будет отключаться таймер

[+]В отправке пакетов можно задать погрешность при отправке по таймеру. к примеру 20 +- 2 секунды = случайное время отправки между 18 и 22 секундами.

перезалил.

xkor
20.11.2009, 05:48
alexteam, что за ExceptionLog в uses проекта фигурирует?, на свн его нет, компилиться и без него...

Добавлено через 12 минут
ЗЫ начал внедрять поддержку AION...

Добавлено через 2 часа 10 минут
alexteam, а ты разве не фиксил неудобство что окно настроек может залезать под окно пакетхака?

alexteam
20.11.2009, 13:06
alexteam, что за ExceptionLog в uses проекта фигурирует?, на свн его нет, компилиться и без него...
eurekalog, хорошая штука.

alexteam, а ты разве не фиксил неудобство что окно настроек может залезать под окно пакетхака?
ну, это при первом запуске токо.. и то, не всегда..
да и 2 раза нажать ctrl+o мона...

Добавлено через 1 минуту
кстати.. с еурекой я так и не сделал билд... ну и фиг с ним -)

xkor
20.11.2009, 16:39
ну, это при первом запуске токо.. и то, не всегда..
да и 2 раза нажать ctrl+o мона...и зачем так извращаться, когда можно было просто в TfSettings.CreateParams добавить:
Params.WndParent:=fMain.Handle;

eurekalog, хорошая штука.неужель на столько лучше JVCL Debug?

alexteam
20.11.2009, 17:37
неужель на столько лучше JVCL Debug
ну, э... имхо - да. -)

xkor
20.11.2009, 19:20
alexteam, ну я предпочитаю не юзать крякнутые компоненты когда есть бесплатные аналоги со всеми нужными функциями...

alexteam
20.11.2009, 22:11
а я предпочитаю юзать фулсурс... :)

Добавлено через 18 минут
ня Скачать файл EurekaLog 6.0.21 Enterprise FullSource.exe (http://dump.ru/file/3800700)
желательно убить перед этим "дебаг методы" JCL переустановив его и исключив эту опцию.

Добавлено через 44 минуты
ты чего с репозиторием сделал, изверг!! ))
зы. 3.5.29.158
с списком изменений облом...

xkor
20.11.2009, 23:56
alexteam, нашел две переменные настроечные - isNoProcessToClient и isNoProcessToServer, но я так понял что они всегда False, спрашивается зачем они?)
ты чего с репозиторием сделал, изверг!! ))
зы. 3.5.29.158
с списком изменений облом...во первых там видать один из демонов упал)
во вторых уже пашет
в третьих, блин как нам теперь изменения наши объединить?), выкладывай короч, буду объединять...

alexteam
21.11.2009, 00:00
блин как нам теперь изменения наши объединить?)
merge ? XD
я практически не менял код... 3.5.29.158 уже был на свн (ревизии 222-230).. просто не выкладывался релиз..
сейчас просто сменил версию.. чуть чуть подстроил еуреку.. и сделал релиз..

xkor
21.11.2009, 02:42
выложил 3.5.30.159:
[+] поддержка AION (EuroOff и RuOff, packetAion.ini пока содержит очень мало пакетов)
[+] галочки запрещающие обработку пакетов в определенном направлении (так как из за фтоста на RuOff направление Client -> Server не поддаётся обработке и её надо отключить)
[+] ReadN и WriteN для скриптов, а так же тип n (Single) в котором у AION передаются координаты

ЗЫ поддержка AION добавлена так чтобы не нарушить совместимость с плагинами/скриптами и т.п. для предыдущих версий (все добавления в расшариваемые структуры и классы сделаны в конец)

Yegor
25.11.2009, 01:14
[+] поддержка AION (EuroOff и RuOff

А что там еще навороченных защит нестандартных не поставили?

xkor
25.11.2009, 01:30
Yegor, ну на евроофе я думаю и не будут ничего мутить, а на руофе как и в линейке врубили фрост, так что направление Client -> Server в пакетхаке приходиться не обрабатывать...

Hint
04.12.2009, 23:56
Пришлось на днях воспользоваться программой... испытал ряд неудобств.
Буквально несколько замечаний:
1. Почему такой странный формат логов? Сделал экспорт логов из своей программы, чтобы изучить их в l2ph (мельком глянул в код, чтобы посмотреть формат). Потом долго думал, почему они не открываются. Оказалось, что пакеты должны быть в текстовом виде, а не бинарном. Довольно странное решение. Вообще крайне неудобно, что у каждой программы свой формат.
2. Переключался между пакетами стрелками на клавиатуре (смотрел очередной, переходил к следующему). Постоянно сбивался фокус. Оказалось, что нельзя наводить курсор на правую часть окна (где пакет с расшифровкой). Раздражало =)
3. Нельзя удалить выборочно пакет с клавиатуры (приходится каждый раз искать значок). А так привычно использовать клавишу Delete. Плюс при удалении каждый раз происходит "перестроение списка" (на моем стареньком ноуте на логе из 300 пакетов занимает около секунды), а потом список сбивается (приходится проматывать до нужного места и искать пакет следующий за удаленным). Ведь не сложно сохранять позицию и восстанавливать её. И наверняка можно быстро удалить одну строку (один пакет) без полного перестроения списка.
4. Бывает нужно скрыть все типы пакетов кроме определенного. По привычке вызвал контекстное меню и пытался найти "показать пакеты только этого типа" (не нашел =). А через "фильтр" это сделать не так просто (открыть окно, нажать "выделить все", потом "инвертировать", найти нужный тип, поставить галку и "применить").
5. Очень не хватает в "фильтре" сортировки по типу (приходится искать глазами нужную строку в довольно большом списке). Привычный щелчок по имени колонке в заголовке таблицы ни к чему не приводит. Довольно странно, что есть "выделить все", но нет "снять выделение со всего". Мини глюк - кнопка "фильтр" на панели почему-то переключает свое состояние (вдавливается и выдавливается), хотя в любом случае она просто открывает окно.

Функционал функционал, но про юзабилити тоже не стоит забывать =)

alexteam
05.12.2009, 11:47
обычные логи в хексе, с небольшим заголовком как и раньше, разве что вместо txt расширение pLog
а равлоги, те естественно в бинарном виде..

xkor
05.12.2009, 16:33
1. Почему такой странный формат логов? Сделал экспорт логов из своей программы, чтобы изучить их в l2ph (мельком глянул в код, чтобы посмотреть формат). Потом долго думал, почему они не открываются. Оказалось, что пакеты должны быть в текстовом виде, а не бинарном. Довольно странное решение. Вообще крайне неудобно, что у каждой программы свой формат.
ну исторически такой формат сложился, когда то очень давно мне было лень (да и с классами я тогда плохо разбирался) чтот придумывать нормальное, вот и писался лог в TStringList, а туда бинарные строки не зафигачишь, вот и переводил а хекс...

alexteam
11.12.2009, 18:05
3.5.31.162 по мотивам ревизий 233-243
[+] Фильтр пакетов будет нормально работать с пакетами идентификатор которых составляет 2+ байта (Ех пакеты) так же список пакетов в фильтре сортируеться по столбцам.
[-] Повисание нитей пх при отсоединении одного из клиентов при условии что фрейм соединения не был закрыт.
[-] Баг в парсере пакета, приводящий к отрисовке одной итеррации loop'a при его нулевом размере.
[+] конвертеры из HEX в Double/Single и обратно © xKor

множественные правки т2.ини

xkor
12.12.2009, 19:19
Я тут сделал дополнительный фильтр пакетов на основе регулярных выражений, то есть в списке пакетов при фильтрации остаются только пакеты в которых есть строка соответствующая регулярному выражению, анализируемая строка это HEX пакета без пробелов.
Возник такой вопрос: стоит ли оставлять в анализируемом хексе два байта размера пакета? Если оставить то можно фильтровать в том числе и по размеру, но по идее фильтрование по размеру не особо нужно и это сделает немного неудобным фильтрование по ID пакета что безусловно более необходимо.
Чтобы было что с чем сравнивать вот например как будет выглядеть фильтр для нахождения пакетов Say (id=4A) со словом xkor.
Если без байт размера:
^4a.*78006B006F007200
С байтами размера:
^....4a.*78006B006F007200

Разница всего в 4 точки соответствующие 4м любым символам в качестве хекса от байт размера.

alexteam
12.12.2009, 19:52
не нужно. если будет происходить поиск по чему-то то скорей всего это обжектайди или еще чтото что уже в теле пакета.
а айди можно фильтровать так как делается сейчас.

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

xkor
12.12.2009, 19:54
а айди можно фильтровать так как делается сейчас.да только вот глючит это как сейчас сильно с неизвестными пакетами а у меня в айоне таковых большинство...
ЗЫ тогда заливаю ревизию...

Добавлено через 1 минуту
xkor, это, если уж ковыряешь там... зделай пожалуйста галочку в настройках "не добавлять в лог отфильтрованные пакеты"
ибо довольно часто надо получить довольно большой лог одного-двух пакетов за длительный промежуток времени. а у нас они все идут в лог, независимо отфильтрованые они либо нет, как следствие из за неотображаемых пакетов длинна лога превышает максимально заданную и происходит его автоочистка с потерей нужных фрагментов.мм попробую найти где ты там фильтрацию при получении пакетов сделал)

alexteam
12.12.2009, 20:05
processpacketfromacum есть такая функция в ней идет добавление в dump
а вот проверка показывать ли пакет уже идет после добавление в самом конце ф-иprocesspacket. смотри флаг isshown.. можно сделать конечно так
if not isshow and ournewoption then
dump.delete(dump.count-1);
но по хорошему нужно поменять местами обработку и добавление и сделать processpacket функцией булевого типа

Добавлено через 16 секунд
млять... я шо это напамять помню ? %)))

xkor
12.12.2009, 20:21
alexteam, жжошь)

TAMBIK
13.12.2009, 15:13
PacketsT2.ini
FE33=ExSetCompassZoneCode:h(subID)d(ZoneType)

ZoneType - сюда из zonename.ini добавить

PacketsT1.ini
в Kamael-Hellbound
пакет F2 от сервера приходит каждую минуту
игровое время ? или что ?

alexteam
17.12.2009, 16:51
грр. пакетик от т2. 4E 78 AF 00 10 00 00 00 00 01 00 00 00 78 AF 00 10 62 00 6F 00 74 00 31 00 00 00 95 13 00 00 95 13 00 00 89 18 00 00 89 18 00 00 3B 0A 00 00 3B 0A 00 00 50 00 00 00 76 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 B2 CB 00 10 8F 7B 0F 00 4D 00 65 00 63 00 68 00 61 00 6E 00 69 00 63 00 20 00 47 00 6F 00 6C 00 65 00 6D 00 00 00 DE 11 00 00 DE 11 00 00 60 07 00 00 60 07 00 00 4A 00 00 00
код с сурсов джавы его формирующий

38 protected final void writeImpl()
39 {
40 writeC(0x4e);
41 writeD(_party.getPartyLeaderOID());
42 writeD(_party.getLootDistribution());
43 writeD(_party.getMemberCount() - 1);
44 for (L2PcInstance member : _party.getPartyMembers())
45 {
46 if (member != null && member != _exclude)
47 {
48 writeD(member.getObjectId());
49 writeS(member.getName());
50 writeD((int) member.getCurrentCp()); // c4
51 writeD(member.getMaxCp()); // c4
52 writeD((int) member.getCurrentHp());
53 writeD(member.getMaxHp());
54 writeD((int) member.getCurrentMp());
55 writeD(member.getMaxMp());
56 writeD(member.getLevel());
57 writeD(member.getClassId().getId());
58 writeD(0x00);// writeD(0x01); ??
59 writeD(member.getRace().ordinal());
60 writeD(0x00); // T2.3
61 writeD(0x00); // T2.3
62 if (member.getPet() != null)
63 {
64 writeD(member.getPet().getObjectId());
65 writeD(member.getPet().getNpcId() + 1000000);
66 writeS(member.getPet().getName());
67 writeD((int) member.getPet().getCurrentHp());
68 writeD(member.getPet().getMaxHp());
69 writeD((int) member.getPet().getCurrentMp());
70 writeD(member.getPet().getMaxMp());
71 writeD(member.getPet().getLevel());
72 }
73 else
74 writeD(0x00);
75 }
76 }
77 }

динамически меняющихся loop'ов у нас нет.. и вообще условий в парсере нет..
надо переписывать -(

xkor
21.12.2009, 18:29
3.5.32.163 по ревизиям 244-246:
[+] фильтр пакетов по содержимому с помощью регулярных выражений

При фильтрации не учитывается регистр и пробелы, так что следующие два правила эквивалентны:
^16ab.*00$
^16 AB.*00$
оба отфильтруют пакеты начинающиеся на 16 AB и заканчивающиеся на 00

TAMBIK
21.12.2009, 20:51
http://img7.imageshost.ru/imgs/091221/b3a1102cea/2e300.jpeg (http://imageshost.ru/)

xkor
21.12.2009, 21:37
TAMBIK, ой, забыл длл воткнуть в архив, перезалил)

alexteam
21.12.2009, 21:53
и, на свн... еще.. в папку билд...
как и PerlRegEx.pas... чтоле...

pascalpwnz
24.12.2009, 17:39
Я не понял прикола.
Перешел с 3.5.30.159 на 3.5.32.163.
Соединяюсь - нормально. Лог пакетов - есть. Но ни один скрипт не работает.
Вместо этого в логе масса флуда типа:

'ИмяСкрипта': Операция успешно завершена; on line 0 (часто 0, но бывает и другая линия, которая в скрипте может быть вообще пустой)

Это приходит при каждом пакете, от каждого включенного скрипта.

wtf?

alexteam
24.12.2009, 18:17
если с 162 таких проблем не будет ... то я даже не знаю ))

TAMBIK
24.12.2009, 18:29
alexteam,
что то не то с 163

xkor
24.12.2009, 18:35
TAMBIK, поже alexteam любит убивать совместимость, то совместимость с предыдущими версиями пакетхака (но эт хрен с ним), ну а теперь оказывается совместимость с дельфи 2007 у пакетхака отсутсвует походу, так что билдить рабочие версии может тока alexteam, а я теперь тока сорци заливать на свн могу (надеюсь хоть это не измениться)

короче ждем пока он пересоберёт последнюю версию в своей 7ой дельфе...

alexteam
24.12.2009, 18:57
релиз 3.5.33.164 пересобран, с небольшими правками. багнутую 163ю убил с фтп.
правленую версию фасткомпилера дал хкору, думаю причина в ней была -)

зы.
Plugin_demo2 чуть чуть переделан. вменсто ненужных никому дублей для showmessage и pi теперь добавляет ф-ю:
PlaySound(FileName:string;Synch:boolean=false):boo lean что позволяет играть wav файлы с скрипта.
(гдето я на форуме видел вопрос по этому поводу, да и qak очень хотел рабочий сырец плугина.)
Скомпиленный плугин выложен на думп.ру (http://dump.ru/file/4006115)

TAMBIK
24.12.2009, 20:55
alexteam,
PlaySound(FileName:string;Synch:boolean=false):boo lean что позволяет
играть wav файлы с скрипта.
спасибо
не обижай xkor
а я теперь тока сорци заливать на свн могу (надеюсь хоть это не измениться)

может новую версию так 3.6.1

pascalpwnz
24.12.2009, 20:55
релиз 3.5.33.164 пересобран, с небольшими правками. багнутую 163ю убил с фтп.
правленую версию фасткомпилера дал хкору, думаю причина в ней была -)


В новой версии заявленной проблемы вроде нету.

PS Переименуй архив, 164 а не 165 же.



Plugin_demo2 чуть чуть переделан. вменсто ненужных никому дублей для showmessage и pi теперь добавляет ф-ю:
PlaySound(FileName:string;Synch:boolean=false):boo lean что позволяет играть wav файлы с скрипта.
(гдето я на форуме видел вопрос по этому поводу, да и qak очень хотел рабочий сырец плугина.)
Скомпиленный плугин выложен на думп.ру (http://dump.ru/file/4006115)
Я как раз спрашивал, спасибо. :)

QaK
05.01.2010, 20:08
Алекстим, попробовал в плугин воткнуть обработку пакета - пакетхак слетает, видимо при рпиходе любого(первого), Read of adress 000000000.

alexteam
05.01.2010, 20:13
да... это.. обработка пакетов там не работает..кажеццо.. %)

QaK
05.01.2010, 23:21
да... это.. обработка пакетов там не работает..кажеццо.. %) :D
какашка ты, как ломать - так все чатлане =)

alexteam
05.01.2010, 23:25
ну, это... добавь в скриптовый движек функцию с плагина по типу procedure OnPacket(var pck:string;FromServer:boolean)
слепи 1 скрипт состоящий из одной строчки и гоняй через эту связку
//QaK:ага-ага, гланды через жопу =)

Yegor
10.01.2010, 01:03
В модуле uglobalfuncs.pas есть процедура
procedure GetProcessList(var sl: TStrings);

в ней есть строки:
GetModuleFileNameEx(ph, mh, ModName, sizeof(ModName));
tmp:=LowerCase(ExtractFileName(string(ModName)));

Так вот, функция GetModuleFileNameEx не для всех процессов возвращает имя. И если имени нет, то в буфере ModName остается прошлая строка или вообще мусор. Поэтому предлагаю изменить так:

var cnt: integer

....

cnt:= GetModuleFileNameEx(ph, mh, ModName, sizeof(ModName));
ModName[cnt]:= #0;
tmp:=LowerCase(ExtractFileName(string(ModName)));

Если так не сделать то пакет хак пытается инжектить не те процессы.

Например первый процесс найден нужный l2.bin. Потом идет какой то процесс без имени. А в списке опять таки получаем имя l2.bin.

Добавлено через 9 часов 8 минут
alexteam, каким образом ты реализовал возможность не обрабатывать трафик в каком то из направлений?
Ты просто читаешь с сокета сколько пришло и пересылаешь по назначению?

QaK
10.01.2010, 13:57
Yegor, по-моему
реализовал возможность не обрабатывать трафик в каком то из направлений?хкор ... или я ошибаюсь?

alexteam
10.01.2010, 14:23
ну, 50/50, флаги isNoProcessToServer, isNoProcessToClient и обработка флагов в сокетном енджине уже была.
http://l2phx.pp.ru/wsvn/blame.php?repname=l2phx3&path=%2F3.5.x%2Funits%2Fusocketengine.pas&rev=0&sc=1
добавилась аналогичная проверка в "лсп, перехват данных"
http://l2phx.pp.ru/wsvn/blame.php?repname=l2phx3&path=%2F3.5.x%2Funits%2FuData.pas&rev=0&sc=1
и выведены в настройки
http://l2phx.pp.ru/wsvn/blame.php?repname=l2phx3&path=%2F3.5.x%2Funits%2FuSettingsDialog.pas&rev=232&sc=1
сами смотрите кто %)
//QaK:Виноват, исправлюсь =)

xkor
10.01.2010, 16:02
QaK, я было хотел это сделать, но как начал копать оказалось оно уже есть тока в настройки не выведено)

Yegor
11.01.2010, 01:32
alexteam, ого, попробуй там разберись в новой технологии приема.

Yegor
26.01.2010, 00:37
alexteam, шифрация трафика сервер->клиент на руофе такая же как была в hellbound? Или есть какие то нововведения?

xkor
26.01.2010, 05:10
Yegor, шифрация стандартная в оба направления, но поверх ещё есть шифрация фроста, алгоритм которой неизвестен...

Yegor
26.01.2010, 09:03
Ну в направлении к клиенту же дешифрация работает, значит все таки как то дешифруеться. Вопрос в том - это делаеться как и раньше или есть отличия.

xkor
26.01.2010, 09:36
Yegor, с конца декабря фрост шифрует и это направления и пакетхак не работает и с ним...
ЗЫ в этом направлении фрост шифрует трафик не сразу так что первые несколько пакетов пакетхак дешифрует правильно

Yegor
27.01.2010, 00:41
xkor, да действительно, облом. Осталось попытаться перехватить коннект как это делает ингейм бот, но это для меня пока не под силу.

alexteam
30.01.2010, 22:55
http://i.piccy.info/i4/df/9d/ee1853194bb4855db30673973ee8.png

:D

xkor
31.01.2010, 00:50
alexteam, ну блин забыл хинты исправить после копирования)

QaK
13.02.2010, 14:33
есть предложение добавить в скриптовой движок следующий набор функций:
PlaySound(FileName:string;Synch:boolean=false):boo lean //зафиксировать, так сказать
GetItemName(ItemID:integer):string - получения названия предмета по его ИД
GetSkillName(SkillID:integer):string - получения названия скилла по его ИД
GetNpcName(NpcID:integer):string - получения названия моба/НПЦ по его ИД
GetClassName(ClassID:integer):string - получения названия класса/профы по ее ИД
GetAugName(AugID:integer):string - получения описания аугмента по его ИД
GetSysStrName(SysStrID:integer):string - получения описания системного сообщения по его ИД

и обратные им функции - получение ИД по строке описания

J-Fobos
14.02.2010, 13:46
Пару мыслей по поводу шифрации на ру офе.

Функции шифрации и дешифрации находится где-то в клиенте, это думаю понятно, иначе клиент бы не смог их шифровать и расшифровывать. Наверно что в шилдконсоле.ехе.
А если снять с шилдконсоли Themida, сделать с уже незащищенного ехе часть для L2PacketHack - пакеты от пакетхак направлять не на сервер, а на шилдконсоль и также пакеты от сервера пропускать через шилдконсоль и направлять на пакетхак.

Мысль частично бредовая, но может что-то из подобной комбинации что-то получится? :)


alexteam, пейджер почему то отключен, ответил через sendmessage.php :)

alexteam
14.02.2010, 13:48
про руоф - улыбнуло )

xkor
14.02.2010, 17:18
J-Fobos, никакой хемиды снимать не надо, цепляемся к шифрованию внедренной длл и всё пучком, пашет уже больше полугода)
ЗЫ тока это секрет, иннове ни слова!) ;)

J-Fobos
15.02.2010, 12:48
Ну почти год был в армии, далеко от цивилизации :) радует что мозги мне не полностью отбили там :D

Neutron
12.03.2010, 07:03
Прива Всем!
Есть предложение добавить в пунк меню "Автоматизация"
подпунк "При закрытии всех соеденений >"

"Нет действий"
"Выключить комп"
"В режим ожидания"
"В режим сна"
"Перезагруз"

То есть если все соединения порвало, можно было комп положить в режим ожидания например, что бы пол ночи он просто так не работал
Спасибо.

xenus
07.04.2010, 13:44
Прива Всем!
Есть предложение добавить в пунк меню "Автоматизация"
подпунк "При закрытии всех соеденений >"

"Нет действий"
"Выключить комп"
"В режим ожидания"
"В режим сна"
"Перезагруз"

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

Xen
16.05.2010, 17:09
В окне "Скрипты" есть горячая клавиша проверки синтаксиса? Если есть, то какая? В списке горячих клавиш не нашел такого пункта.

NLObP
16.05.2010, 17:18
В окне "Скрипты" есть горячая клавиша проверки синтаксиса? Если есть, то какая? В списке горячих клавиш не нашел такого пункта.

Она шестая с лева "ABC" (проверить синтаксис и скомпилировать)

alexteam
16.05.2010, 17:57
ctrl+f9 ?

Xen
16.05.2010, 18:06
NLObP, нет я про горячую клавишу, например в IDE Delphi 7 и выше по умолчанию горячая клавиша компиляции Ctrl+F9.
Происходит компиляция проекта, но не запуск приложения, а тут F9 и Ctrl+F9 равноценны, запускают скрипт... Было бы удобнее горячими клавишами быстро проверять синтаксис вроде Ctrl+F9, думаю такая привычка у всех олд девелоперов делфина)

NLObP
17.05.2010, 02:02
Xen, там вроде настраиваются горячие клавиши. Самая правая иконка.
ctrl+f9 как раз и работает, проверь.

Xen
17.05.2010, 08:59
ctrl+f9, щас 5 минут игрался с этой комбинацией, и выяснил, что она рендомно срабатывает, на вид там какой-то таймер, который определяет нажата ли еще дополнительно клв. ctrl, если быстро нажать эту комбинацию (как я и привык:D), то происходит запуск скрипта с шансом близким к 100%.

Т.ч. Нужно нажимать ctrl с задержкой около 1 сек, а затем ф9 и отпускать, тогда все будет ок.
Кстати в настройках нету пункта с клав. участвующими в компиляции, т.е. это не настраивается через программу 3.5.33.164.

DpblH
25.06.2010, 15:21
кашперский ругаеться на последнюю версию пнх :(

QaK
25.06.2010, 15:31
DpblH, качал откуда?

DpblH
25.06.2010, 16:02
QaK
http://l2phx.pp.ru/arhive/

QaK
25.06.2010, 16:10
DpblH, тогда добавь в исключения, для каспера

DpblH
25.06.2010, 23:08
ругаеться на inject.dll
привык доверять кашперу. говорит троян

alexteam
25.06.2010, 23:16
тогда сбилдь сам. сурсы есть на свн.

MagarakaOmfG
28.07.2010, 17:47
Проект "L2Phx" закрыт? Или может будут новые версии? Новые идеи, новые НЕ фикс паки.
У меня много предложений есть.
Так что? Проект закрыт или приостановлен?

Anafema
28.07.2010, 18:13
Проект "L2Phx" закрыт? Или может будут новые версии? Новые идеи, новые НЕ фикс паки.
У меня много предложений есть.
Так что? Проект закрыт или приостановлен?

предлагай=)

dyh9l
28.07.2010, 18:35
xkor (17:14:37 24/07/2010)
ну или разве что если руки дойдут переписать пакетхак, но эт врятли)

J-Fobos
28.07.2010, 20:48
Исходники открыты, если идеи стоящие то даже я (совсем не программист про профессии :) ) смогу что-то внедрить. Так что предлагайте.


зы: жалко что плагины не чинят :(
//QaK: +1

xkor
28.07.2010, 23:29
MagarakaOmfG, проект в спячке...
Но есть планы на версию 4 некоторые:
- отход от специализации только на lineage, как следствие переименование в PacketHack или UniPacketHack, а так же отключение вырезания первых двух байт из пакета
- доработка парсера пакетов для поддержки ветвлений и скриптов (скрипты нужны для сильно нестандартных пакетов, ибо всех типов данных или их преобразований перед отображением не предусмотришь)
- отдельные скрипты, фильтры и парсер на каждое соединение (а то счас каша получается)
- более детальное логирование пакетов (логирование пакетов до и после скриптов)
- возможно система слоёв - пакеты будут проходить через массив слоёв, где каждый слой может быть фильтром, скриптом или логером (нужность этого правда пока под вопросом)
- выделение перехватчиков в отдельную программу, основная программа будет только как socks5 сервер работать (так будет приятнее антивирям)

ЗЫ вот как руки дойдут...
ЗЗЫ я тут кстати прикрутил к форуму багтрекер, планирую там баги будущего бота собирать и будущего пакетхака (если до него всё таки дойдут руки), может и для текущей версии там место сделать? (посмотреть что это за хрень можно тут - http://coderx.ru/project.php?projectid=1 )

unknowned
29.07.2010, 02:46
MagarakaOmfG, проект в спячке...
Но есть планы на версию 4 некоторые:
- отход от специализации только на lineage, как следствие переименование в PacketHack или UniPacketHack, а так же отключение вырезания первых двух байт из пакета
- доработка парсера пакетов для поддержки ветвлений и скриптов (скрипты нужны для сильно нестандартных пакетов, ибо всех типов данных или их преобразований перед отображением не предусмотришь)
- отдельные скрипты, фильтры и парсер на каждое соединение (а то счас каша получается)
- более детальное логирование пакетов (логирование пакетов до и после скриптов)
- возможно система слоёв - пакеты будут проходить через массив слоёв, где каждый слой может быть фильтром, скриптом или логером (нужность этого правда пока под вопросом)
- выделение перехватчиков в отдельную программу, основная программа будет только как socks5 сервер работать (так будет приятнее антивирям)

ЗЫ вот как руки дойдут...
ЗЗЫ я тут кстати прикрутил к форуму багтрекер, планирую там баги будущего бота собирать и будущего пакетхака (если до него всё таки дойдут руки), может и для текущей версии там место сделать? (посмотреть что это за хрень можно тут - http://coderx.ru/project.php?projectid=1 )

и получится полный клон wpf а оно нам надо ?

xkor
29.07.2010, 03:23
unknowned, эм, что в wpf акромя первого пункта из этого списка есть и чем тебе этот пункт не угодил? + ты интерфейс в wpf видел? бывает user friendly а там fack user... ИМХО

Breadfan
29.07.2010, 07:19
А сколько долго руки доходить будут и, соответственно, сколько нам сие чудо ожидать ?:blush:

alexteam
29.07.2010, 11:24
бывает user friendly а там fack user
:D

xkor
29.07.2010, 13:50
Breadfan, боюсь не могу пообещать что вообще руки дойдут до этого.., это не самый приоритетный проект у меня.

MagarakaOmfG
29.07.2010, 20:38
xkor, на пак хаке много заработали? (Так как в пабле бесплатные ферсии)
Кто нить помогал проекту?

xkor
29.07.2010, 21:04
MagarakaOmfG, на самом пакетхаке ни копейки)
ток на обходе фроста для пакетхака и аналогов немног заработал)

Yegor
29.07.2010, 23:52
В wpf такое ощущение что все виндовые элементы сделаны через чистый winap. Интерфейс там дейтситтельно страшненткий, но программа работает стабильно.

xkor
30.07.2010, 02:33
Yegor, да, стабильность там значительно лучше(
так что есть к чему стремиться)

MagarakaOmfG
30.07.2010, 18:59
xkor, фрост? оО... Неужели на ру оффе пакеты работают?
Или что там? Фри с фростом? :D

Добавлено через 7 минут
И вообще пакеты нужно покупать.
Фри пакеты это фикс ~90%
(Покупать у достоверного источника)
+ на некоторых сервах стоит деф, от любых прог //юзаеш .тхт файл во время работы л2 он тут же офф.
И с любым процессом даже taskmgr, ( папки не считаются, они не офаются)
2 и etc окон самой л2 не будут оффаться.
Кароче офф все, что не л2 =)
И вот такое чудо как обходить? Через виртуалку?

alexteam
30.07.2010, 19:05
коим образом сии посты относятся к разработке ?

unknowned
30.07.2010, 20:11
unknowned, эм, что в wpf акромя первого пункта из этого списка есть и чем тебе этот пункт не угодил? + ты интерфейс в wpf видел? бывает user friendly а там fack user... ИМХО

Год назад пользовался впф, там все это уже было все пункты и все там понятно не для тупых. После того как у меня на серваке начали банить и впф и пх я забил :(

xkor
31.07.2010, 01:31
unknowned, ветвлений и скриптов парсер пакетов не поддерживает, парсер там не намного лучше чем в пакетхаке, хотя я давно не смотрел, но не думаю что это там появилось
логорования изменение в пакетов там тоже не припоминаю
ну и слоёв тоже нет, хотя нах они нужны ещё надо придумать...

unknowned
02.08.2010, 23:48
unknowned, ветвлений и скриптов парсер пакетов не поддерживает, парсер там не намного лучше чем в пакетхаке, хотя я давно не смотрел, но не думаю что это там появилось
логорования изменение в пакетов там тоже не припоминаю
ну и слоёв тоже нет, хотя нах они нужны ещё надо придумать...

Как это нет логирования изменений, я только ради отличного логирования изменений впф использовал, ты видимо его года три не запускал тогда он еще убогий был ваще :D Парсер пакетов там такой что я до сих пор не разобрался в количестве возможностей отдельные скрипты на парсер, там чорт ногу сломает от всего.

Счас вот я пх пытаюсь прятать в процесах, чтоб защитка не банила, но он почему то падает когда прячу :(

Сделайте в пх поиск по пакетам как в впф, чтоб всех видов переменных

NLObP
23.11.2010, 02:20
Хочу доделать форму настроек в плане разрешения только одного перехвата.
Отсюда вопрос 1: "Работать как Socks5 сервер" это тоже перехват? Или самостоятельная возможность?
Вопрос 2: ""Сокцифицировать приложение через SOCKS5 сервер" когда должно быть активно?

PS: сорри за нубство.

J-Fobos
23.11.2010, 11:58
Вопрос 2. Это типа пакетхак будет подключатся к игровому серверу через указанный SOCKS5 сервер. Я юзаю иногда чтобы реальный айпи скрывать.

xkor
23.11.2010, 21:58
Отсюда вопрос 1: "Работать как Socks5 сервер" это тоже перехват? Или самостоятельная возможность? ну это альтернатива перехвату, то есть либо пакетхак сам перехватывает, либо работает как Socks5 сервер, а перехватывает и направляет через пакетхак трафик какойнить проксификатор.

NLObP
28.11.2010, 06:22
По немногу вношу правки в код пакетхака. Выложил релиз 3.5.33.165 и последнюю версию, которая у меня была 3.4.1.84. (http://l2phx.pp.ru/arhive/) Пароль: coderx.ru
Revision: 253
Author: nlobp
Date: 0:13:42, 5 октября 2010 г.
Message:
[+] добавил поле в настройках - коэфф преобразования NpcID, необходим для правильного определения имени НПЦ, сохраняется в options.ini и равен по умолчанию kNpcId=1000000

изменил названия файлов packetAion.ini на packetsAion.ini, packetst0.ini на packetsInterlude.ini, PacketsT1.ini на PacketsGracia.ini, PacketsT2.ini на PacketsGraciaFinal.ini, добавил PacketsGraciaEpilog.ini и PacketsFreya.ini, добавил код обработки новых названий файлов и соответственно в окне настроек

мелкие правки текста в панелях настроек
[+] добавил в репозиторий файл LSPprovider.dll
----
Revision: 254
Author: nlobp
Date: 17:12:56, 18 ноября 2010 г.
Message:
[-] снова пишем лог в файл при выходе из пакетхака
----
Revision: 255
Author: nlobp
Date: 5:00:32, 28 ноября 2010 г.
Message:

мелкие правки в настройках: теперь можно включить только один вид перехвата LSP/inject/SOCKS5

мелкие правки текста в панелях, также был перепутан местами рус/англ перевод


PS: проверил архивы Kaspersky Crystal на вирусы.
PPS: нод находит в l2ph.exe DelphiInject, что это такое хз. KAV при запуске l2ph.exe предлагает запретить опасные подключения. На сам inject.dll не ругаются. =(
PPPS: обновил билд 3.5.33.165

Breadfan
01.12.2010, 19:10
procedure Init; //Вызывается при включении скрипта
begin
x:=x+1;
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
end. - при проверке синтаксиса такого нехитрого скрипта (заранее содержащего необъявленную переменную) - просит перезапустить приложение

http://s015.radikal.ru/i331/1012/49/0607c96ccf2et.jpg (http://radikal.ru/F/s015.radikal.ru/i331/1012/49/0607c96ccf2e.jpg.html)
Исправлено :)

supernewbie
01.12.2010, 23:42
после запуска нещадно хавает память
win xp sp2 x64

NLObP
01.12.2010, 23:58
supernewbie, это пакетхак? скрипты запускал?

supernewbie
02.12.2010, 00:03
пакет хак, не одного скрипта не запущено, правда я думаю это из-за колва скриптов, их давольно много...

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

dyh9l
02.12.2010, 02:48
у мну около 25 скриптов тоже, пх вобще ужас как долго грузит или открывает другой скрипт

NLObP
02.12.2010, 02:58
supernewbie, dyh9l, а 164 как вела себя?

supernewbie
02.12.2010, 03:02
нормально ведет себя только 3.5.28.151, да и то 100+ мб как-то не особенно. Все остальные уже по 400, а эта вообще гиг

NLObP
02.12.2010, 03:13
supernewbie, ок, гляну в чем отличия. Хотя я только форму настроек трогал.

Breadfan
02.12.2010, 04:59
вот 2 часа отбегал, были тп от деревни до гирана+кач до 50го лвл в прилегающих локациях (скрипты скайбот+жрет хп):
Выше этих значений - пока не поднималось потребление (вин7 32)

unknowned
02.12.2010, 05:15
Последняя версия, за семь часов нагрузило только на 250мег винда хэпэ.

Yegor
02.12.2010, 13:30
Я вижду опять ожил проект packet huck, на каких серверах сейчас работает без спец модулей для дешифровки?

Были ли добавлены новые меетоды для перехвата траффика л2 или по прежнему через TCP IP?

NLObP
02.12.2010, 14:41
Yegor, всё по старому. Добавлена защита от "дурака" - можно включить только один перехват.

В планах: прикрутить пайпы, и разбор пакетов packets.ini по другой технологии (чтобы можно было с минимум переделок использовать определение пакетов из ява исходников)

supernewbie
02.12.2010, 14:58
давайте лучше как-то решим проблему шифраций)

NLObP
02.12.2010, 15:03
supernewbie, какой шифрации?

PS: На руоффе работает. За отдельную плату.

supernewbie
02.12.2010, 17:22
щас ж дохрена других шифраций... сср, лейм гварды, анти чит гварды да и **ева туча еще

Добавлено через 26 минут
короче гря, помогите мне с этим сср гвардом пока я не спятил и не начал бегать по форуму с криками "пид**асы!!!" :D

NLObP
02.12.2010, 19:34
supernewbie, я уже писал как то, либо у нас нет гуру, либо им влом за спасибо работать. Выход один, изучай, делай, по возможности сюда выкладывай.

Breadfan
03.12.2010, 04:27
Хотелка:: иногда хочется чтоб на вкладке Просмотра принятых\отправленых пакетов - у них была раздельная нумерация, помимо общей. Т.е. от клиента к серверу 1ый, 2ой....и от сервера к клиенту 1ый, 2ой.....

F0X_
03.12.2010, 20:38
Каждый знает, l2PH файл паролей?
Я уже скачал большинство из них не в состоянии извлечь

Breadfan
03.12.2010, 20:45
The password for archive - 'coderx.ru'

Write in English.

F0X_
03.12.2010, 20:50
Tanks

supernewbie
04.12.2010, 04:12
хау абаут зохаваной мемори?

NLObP
04.12.2010, 18:03
хау абаут зохаваной мемори?

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

Yegor
07.12.2010, 17:10
Немного не в тему, но подскажите как устанвоить jwapi2.2 на Delphi 7 (скачал из ссылки с доп компонеентами).

QaK
07.12.2010, 17:15
Yegor, а в чем, собственно, проблема?

Yegor
07.12.2010, 17:29
QaK, там несколько dpk файлов в папке Packages\d7\

JediApi_DynamicDebug.dpk
JediApi_DynamicRelease.dpk
JediApi_SingleUnits.dpk
JediApi_StaticDebug.dpk
JediApi_StaticRelease.dpk


При попытке скомпилировать любой из них выдает ошибки:

[Error] JwaWinNT.pas(9373): 'IMPLEMENTATION' expected but '.' found
[Error] JwaWinBase.pas(2246): 'LPOVERLAPPED' is not a type identifier
[Error] JwaWinBase.pas(2372): 'HMODULE' is not a type identifier
[Error] JwaWinBase.pas(2460): 'LPOVERLAPPED' is not a type identifier
[Error] JwaWinBase.pas(2984): 'HFILE' is not a type identifier
[Error] JwaWinBase.pas(2987): 'HFILE' is not a type identifier
[Error] JwaWinBase.pas(2990): 'HFILE' is not a type identifier
[Error] JwaWinBase.pas(2993): 'HFILE' is not a type identifier
[Fatal Error] JwaWinBase.pas(3465): Internal error: SY2069

QaK
07.12.2010, 17:44
Yegor, ок, я завтра постараюсь посмотреть, что там ... но я вроде все ставил - норм работало ...

Yegor
07.12.2010, 17:49
QaK, попробую поставить еще дома, есть подозрение что на этой делфи у меня что то криво уже установлено.

QaK
07.12.2010, 18:14
Yegor, попробуй следующий метод: в папке Workspace, открой DJediApilib.dpk, предварительно скопировав в эту папку файлы:jedi.inc,jediapilib.inc из папки Common, и JwaRpc.dcu из Packages\d7\bin. Откомпиль пакет и жамкни Install

Yegor
07.12.2010, 19:25
QaK, пробую, компиляция пошла, уже 5 минут выполняется.

Добавлено через 11 минут
Скомпилировалось но выдало несколько сотен варнингов типа такого:

[Warning] JwaWinType.pas(90): Unsafe type 'Pointer'


При попытке инсталяции выдало ошибку:
Package DJediApilib60.bpl can`not be enstalled because it is not a design time pacckage

NLObP
07.12.2010, 23:26
как устанвоить jwapi2.2 на Delphi 7

Она понадобились для компиляции и подключения LSPControlComponent.dpk

я делал так (http://coderx.ru/showthread.php?t=6419)
4.6. Ставим компонент LSPControlComponent, для этого:
4.7. Добавляем папку \jwapi2.2a\Win32API и \jwapi2.2a\Common в пути для поиска библиотек.
4.8. Ставим компонент \SVN\l2ph\3.5.x\Components\LSP\component\LSPContro lComponent.dpk
4.9. Добавляем папку \LSP\component и \LSP\structures в пути для поиска библиотек.

xkor
08.12.2010, 01:11
Yegor, гы, я и не знал что там пакеты есть, я тупо прописывал пути к сорцам в путях поиска)

NLObP
11.12.2010, 03:35
Выложил свежую версию 3.5.33.166 (http://l2phx.pp.ru/arhive/).
Revision: 257
Author: nlobp
Date: 2:28:46, 11 декабря 2010 г.
Message:
[+] при смене языка загружается соответствующий ini файл.
[+] добавил файлы на английском языке: ClassIdEng.ini, ItemsIdEng.ini, NpcsIdEng.ini, SkillsIdEng.ini, SysMsgIdEng.ini (спасибо Breadfan)
[+] добавил галочку не вести никаких логов ни пакетов, ни сообщений.
добавил некоторые пакеты в packets.ini


Пробуем. Сообщаем о багах.

~ZooM~
11.12.2010, 20:16
извините мож не потеме но незнал куда написать такой вот трабел

http://s43.radikal.ru/i100/1012/5d/87fdac514f4bt.jpg (http://radikal.ru/F/s43.radikal.ru/i100/1012/5d/87fdac514f4b.jpg.html)

//nlobp: ничего не видно. Попробуй версию обновить. Если будет ошибка, опиши после каких действий она происходит. И прикрепи к сообщению заархивированный файл l2ph.elf.

QaK
12.12.2010, 20:49
~ZooM~, во-первых, для кого прикрепленные темы с говорящими за себя названиями в основном разделе созданы? Во-вторых, судя по скрину(глаза сломаешь ппц, пока поймешь) пакеты идут левые, отсюда 2 варианта: или шифрация дополнительная, или криво настроеный пакетхак. В любом случае не в эту тему.

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

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

Программа пишется в среде Delphi 2007 и Delphi 7 с использованием следующих дополнительных библиотек компонентов:
- 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/). (<-- TPerlRegEx есть только там)

/upd:
для компиляции последних ревизий понадобятся JCL, JVCL (ссылки выше) а так же:
jwapi2.2a, SyntEdit, TRichView.v11.0+ScaleRichView.v2.0, TsiLang (letitbit (http://letitbit.net/download/9568.e9abc119b82a7e8b364a162c4/archive.rar.html) / upload.com.ua (http://upload.com.ua/get/901032112/))
Немного подправленный FastScript искать в файловом архиве.

:sorry: новая версея пх на фрэе неработает! испробывал на 9джава серваках - гэйм гуард сразу её выпасает и отключает клиент- защиты внутри некакой клиент нс софтовский базовый патч я урезал так что внутри некакой хрени недолжно быть

alexteam
21.12.2010, 19:50
для фреи над чуть чуть модифицировать обуфускатор айдишникоф пакетов..

Добавлено через 1 минуту
procedure _init_tables(seed: integer; _2_byte_size: integer);
var
i : integer;
x : Char;
x2: Word;
rand_pos : integer;
cur_pos : integer;
begin
with CorrectorData^ do begin
_1_byte_table := '';
_2_byte_table := '';

_2_byte_table_size := _2_byte_size;

for i := 0 to $D0 do begin
_1_byte_table := _1_byte_table + chr(i);
end;
for i := 0 to _2_byte_size do begin
_2_byte_table := _2_byte_table + chr(i) + #$0;
end;
_pseudo_srand(seed);
for i := 2 to $D1 do begin
rand_pos := (_pseudo_rand mod i) + 1;
x := _1_byte_table[rand_pos];
_1_byte_table[rand_pos] := _1_byte_table[i];
_1_byte_table[i] := x;
end;

cur_pos := 3;
for i := 2 to _2_byte_size+1 do begin
rand_pos := _pseudo_rand mod i;
x2 := PWord(@_2_byte_table[rand_pos * 2 + 1])^;
PWord(@_2_byte_table[rand_pos * 2 + 1])^:=PWord(@_2_byte_table[cur_pos])^;
PWord(@_2_byte_table[cur_pos])^:=x2;
cur_pos := cur_pos + 2;
end;

{$ifdef FREYA}
cur_pos := Pos(#$11, _1_byte_table);
x := _1_byte_table[$12];
_1_byte_table[$12] := #$11;
_1_byte_table[cur_pos]:=x;
{$endif}

cur_pos := Pos(#$12, _1_byte_table);
x := _1_byte_table[$13];
_1_byte_table[$13] := #$12;
_1_byte_table[cur_pos]:=x;

cur_pos := Pos(#$B1, _1_byte_table);
x := _1_byte_table[$B2];
_1_byte_table[$B2] := #$B1;
_1_byte_table[cur_pos]:=x;

{$ifdef FREYA}
cur_pos := Pos(#$D0, _1_byte_table);
x := _1_byte_table[$D1];
_1_byte_table[$D1] := #$D0;
_1_byte_table[cur_pos]:=x;
_id_mix := true;
{$endif}
end;
end;
думаю понятно.

Breadfan
21.12.2010, 20:14
новая версея пх на фрэе неработает! испробывал на 9джава серваках - гэйм гуард сразу её выпасает и отключает клиент- защиты внутри некакой клиент нс софтовский базовый патч я урезал так что внутри некакой хрени недолжно быть
"- Вранье!
- И интереснее всего в этом вранье то, что он - вранье от первого до последнее слова." (М.Булгаков)
Все там работает, я именно новой версией и подключался и делал инишки с итемами\скилами.

unknowned
21.12.2010, 20:48
skiner4119 и
Breadfan, вы бы написали какие сервера, а то не понятно где у вас работает, а где не работает. Короч бред

Breadfan
21.12.2010, 20:52
что писать то? на сервере без защит - буит работать, на сервере с защитой - не будет...Или тяжело понять данный принцип?

unknowned
21.12.2010, 21:10
для фреи над чуть чуть модифицировать обуфускатор айдишникоф пакетов..

Добавлено через 1 минуту
procedure _init_tables(seed: integer; _2_byte_size: integer);
var
i : integer;
x : Char;
x2: Word;
rand_pos : integer;
cur_pos : integer;
begin
with CorrectorData^ do begin
_1_byte_table := '';
_2_byte_table := '';

_2_byte_table_size := _2_byte_size;

for i := 0 to $D0 do begin
_1_byte_table := _1_byte_table + chr(i);
end;
for i := 0 to _2_byte_size do begin
_2_byte_table := _2_byte_table + chr(i) + #$0;
end;
_pseudo_srand(seed);
for i := 2 to $D1 do begin
rand_pos := (_pseudo_rand mod i) + 1;
x := _1_byte_table[rand_pos];
_1_byte_table[rand_pos] := _1_byte_table[i];
_1_byte_table[i] := x;
end;

cur_pos := 3;
for i := 2 to _2_byte_size+1 do begin
rand_pos := _pseudo_rand mod i;
x2 := PWord(@_2_byte_table[rand_pos * 2 + 1])^;
PWord(@_2_byte_table[rand_pos * 2 + 1])^:=PWord(@_2_byte_table[cur_pos])^;
PWord(@_2_byte_table[cur_pos])^:=x2;
cur_pos := cur_pos + 2;
end;

{$ifdef FREYA}
cur_pos := Pos(#$11, _1_byte_table);
x := _1_byte_table[$12];
_1_byte_table[$12] := #$11;
_1_byte_table[cur_pos]:=x;
{$endif}

cur_pos := Pos(#$12, _1_byte_table);
x := _1_byte_table[$13];
_1_byte_table[$13] := #$12;
_1_byte_table[cur_pos]:=x;

cur_pos := Pos(#$B1, _1_byte_table);
x := _1_byte_table[$B2];
_1_byte_table[$B2] := #$B1;
_1_byte_table[cur_pos]:=x;

{$ifdef FREYA}
cur_pos := Pos(#$D0, _1_byte_table);
x := _1_byte_table[$D1];
_1_byte_table[$D1] := #$D0;
_1_byte_table[cur_pos]:=x;
_id_mix := true;
{$endif}
end;
end;
думаю понятно.

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

alexteam
22.12.2010, 14:21
На каком конкретней сервере это нужно ?
там где обуфускация айдишек включена.
т.е. евроофф, чайнаофф.
на джавах она просто выключена (и этот кусок кода не используется).
судя по тому что типочек выше писал чота про ГГ, думаю он про евро говорил.

meikis
22.12.2010, 14:26
Какой пароль на последний архив?

//nlobp: вот здесь (http://coderx.ru/showpost.php?p=124144&postcount=1209), здесь (http://coderx.ru/showpost.php?p=123090&postcount=1190) упоминается пароль к архиву

BioDread
07.01.2011, 01:56
При выделении любого пакеты вылазит ошибка уже в двух версиях и если не обновить инфу из *.ini она не перестаёт появлятся планируется ли её убрать?

NLObP
07.01.2011, 02:47
BioDread, у меня нет такого. Только что закончил скрипт писать. И приходилось пакеты смотреть.

ЗЫЖ больше информации давай.

BioDread
07.01.2011, 04:56
У нас на жуке все жалуются...на эту ошибку...
Так вот: http://i.zhyk.ru/?v=2612.png
в 164 небыло а в 165 и 166 есть
Я наверное забыл сказать что такая проблема в Айоне=)
П.С. А если нажать "Обновить инфу из *.ini" то выделять пакеты в списке можно сколько угодно и ошибка не вылазит=)
Во добавил этот файл=)

NLObP
07.01.2011, 05:47
BioDread, там в папке l2ph.elf должен быть запакуй раром и прикрепи.

BioDread
07.01.2011, 20:35
Обновил пост сверху и вложил файл.

aisee
10.01.2011, 21:19
Прошу прощения.. может я такой не внимательный=).. но где вы спрятали в версии l2phx.3.5.33.166 интервал скорости отправки пакетов ?

BioDread
10.01.2011, 21:35
Растяни окно проги пошире и часики появятся...:)

Elion1
26.01.2011, 03:35
а слабо придумать как из клиента вынимать способ шифравания пакетов? :D
как раньше был ключь для защиты, его сломали... теперь каждый апкеты по своему выворачивает, не круто, особенно когда после релогина все пакеты другие :(

Mulder
27.01.2011, 12:36
а слабо придумать как из клиента вынимать способ шифравания пакетов? :D
как раньше был ключь для защиты, его сломали... теперь каждый апкеты по своему выворачивает, не круто, особенно когда после релогина все пакеты другие :(

Для шифрации/дешифрации в данной программе всегда использовалась newxor.dll для каждого сервера нужна своя библиотека. Она писалась по разным причинам:
1) Была нужна математику.
2) На заказ.
3) От нефиг делать.
Слабо здесь вряд ли играет какую-то роль, учи математикаму, анализируй пакеты, делай обратную функцию и будет тебе шифратор/дешифратор в виде библиотеки newxor.dll.

NLObP
20.03.2011, 19:33
Прикрутил к парсеру разбор SWITCH CASE. Сделал расшифровку серверных пакетов для packetsFreya.ini

44=ShortCutRegister:d(type:switch.2.6)d(slot page*12)d(id скилла или object id вещи)_(TYPE_ITEM:case.1.6)d(неизвестно, если не 1, то черный квадрат)d(если больше чем -1, то показывать реюз)d(оставшееся время реюза в секундах)d(реюз в секундах)h(0)h(0)_(TYPE_SKILL:case.2.3)d(level)c(0 )d(1)_(TYPE_ACTION:case.3.1)d(1)_(TYPE_MACRO:case. 4.1)d(1)_(TYPE_RECIPE:case.5.1)d(1)_(TYPE_UNKNOWN: case.6.1)d(1)
45=ShortCutInit:d(size:Loop.1.1)d(type:switch.2.6) d(slot page*12)d(id скилла или object id вещи)_(TYPE_ITEM:case.1.6)d(неизвестно, если не 1, то черный квадрат)d(если больше чем -1, то показывать реюз)d(оставшееся время реюза в секундах)d(реюз в секундах)h(0)h(0)_(TYPE_SKILL:case.2.3)d(level)c(0 )d(1)_(TYPE_ACTION:case.3.1)d(1)_(TYPE_MACRO:case. 4.1)d(1)_(TYPE_RECIPE:case.5.1)d(1)_(TYPE_UNKNOWN: case.6.1)d(1)
62=SystemMessage:d(_messageId:Get.MsgID)d(size:Loo p.1.1)d(type:switch.0.13)_(TYPE_TEXT:case.0.1)s(St ring)_(TYPE_NUMBER:case.1.1)d(Number)_(TYPE_NPC_NA ME:case.2.1)d(Number:Get.NpcID)_(TYPE_ITEM_NAME:ca se.3.1)d(ItemID:Get.Func01)_(TYPE_SKILL_NAME:case. 4.2)d(skill_id:Get.SkillID)d(skill_level)_(TYPE_UN KNOWN_5:case.5.1)d(Number)_(TYPE_LONG:case.6.1)q(L ong)_(TYPE_ZONE_NAME:case.7.3)d(coord.x)d(coord.y) d(coord.z)_(TYPE_UNKNOWN_8:case.8.3)d(ItemID:Get.F unc01)h(Number)h(Number)_(TYPE_UNKNOWN_9:case.9.1) d(Number)_(TYPE_UNKNOWN_10:case.10.1)d(Number)_(TY PE_UNKNOWN_11:case.11.1)d(Number)_(TYPE_UNKNOWN_12 :case.12.1)s(String)
F3=ConfirmDlg:d(_messageId)d(size:Loop.1.1)d(t:swi tch.0.8)_(TYPE_TEXT:case.0.1)s(String)_(TYPE_NUMBE R:case.1.1)d(t1)_(TYPE_NPC_NAME:case.2.1)d(t1:Get. NpcID)_(TYPE_ITEM_NAME:case.3.1)d(ItemID:Get.Func0 1)_(TYPE_UNKNOWN_5:case.5.1)d(t1)_(TYPE_SKILL_NAME :case.4.2)d(skill_id:Get.SkillID)d(skill_level)_(T YPE_LONG:case.6.1)q(t1)_(TYPE_ZONE_NAME:case.7.3)d (coord.x)d(coord.y)d(coord.z)d(_Time)d(_requestId)


Так теперь выглядит SystemMessage
Тип: 0x62 (SystemMessage)
Размер: 43+2
Время прихода: 01:51:27:031
0002 d _messageId: $c1 наносит цели $c2 $s3 урона. ID:2261 (0x08D5)
0006 d size: 3 (0x00000003)
[Начало повторяющегося блока 1/3]
0010 d type: 12 (0x0000000C)
0014 s String: ЯнеБот
[Конец повторяющегося блока 1/3]
[Начало повторяющегося блока 2/3]
0028 d type: 2 (0x00000002)
0032 d Number: Гремлин ID:1018342 (0xF89E6)
[Конец повторяющегося блока 2/3]
[Начало повторяющегося блока 3/3]
0036 d type: 1 (0x00000001)
0040 d Number: 12 (0x0000000C)
[Конец повторяющегося блока 3/3]

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

regged
20.03.2011, 20:19
Народ а можно указать в Packetsxxx.ini например новый параметр, чтоб из другого Id текста взял данные как из SkillId, ItemsId и т.д? Или все новые Опознанные Id прога умеет читать только из стандартных файлов? Например хочу добавить в Packets.ini новый пакет MapId. Откуда PHX умеет читать? Я делаю так, в SkillsId.ini пишу имя карты (MapID) и указываю d(MAPID:Get.ClassId). Так вот хочется все мап-ы записать в отдельный текст файл (так как их очень много). Что нужно писать чтоб указать на этот файл? Спасибо.

J-Fobos
20.03.2011, 20:52
NLObP, можешь сделать это (http://coderx.ru/showpost.php?p=141575&postcount=6) ? :) Чтоб строка задавалась в опциях, а inject.dll читал этот параметр с option.ini

NLObP
20.03.2011, 22:34
Чтоб строка задавалась в опциях, а inject.dll читал этот параметр с option.ini

Подробнее распиши, что именно надо сделать.

Добавлено через 2 минуты
а можно указать в Packetsxxx.ini например новый параметр, чтоб из другого Id текста взял данные как из SkillId, ItemsId и т.д?

Это надо в коде прописать, чтобы вызывалась это подпрограмма.
Выложи пример файла MapId.ini и пример пакета в котором это вызывается.

J-Fobos
21.03.2011, 21:26
В юнит uSettingsDialog добавить еще один TEdit, значение которого будет сохранятся в Options.ini
В юнит uMainReplacer добавить код alexteam (http://coderx.ru/showpost.php?p=141575&postcount=6). Только вместо 'hervam' считывать строку из Options.ini
Ну и в inject.dpr надо будет поправить функцию ConnectHookProc, перед строкой apph:=FindWindow('TfMainReplacer',nil); читать значение параметра из Options.ini и использовать этот параметр вместо 'TfMainReplacer'.

Torbins
25.03.2011, 15:15
Как там дела с пакетами Айона? Я готов помочь.
P.S. В какой версии делфей лучше всего компилировать пакетхак?

NLObP
25.03.2011, 19:30
У нас на жуке все жалуются...на эту ошибку...
Так вот: http://i.zhyk.ru/?v=2612.png
в 164 небыло а в 165 и 166 есть
Я наверное забыл сказать что такая проблема в Айоне=)
П.С. А если нажать "Обновить инфу из *.ini" то выделять пакеты в списке можно сколько угодно и ошибка не вылазит=)
Во добавил этот файл=)

Нашёл и пофиксил эту ошибку.

Добавлено через 1 минуту
В какой версии делфей лучше всего компилировать пакетхак?

В первом посте написано и ещё вот здесь (http://coderx.ru/showthread.php?t=6419) мануал есть, почитай.

Добавлено через 1 минуту
Как там дела с пакетами Айона? Я готов помочь.

Надо много логов пакетов от айон (версию пишите).

Torbins
26.03.2011, 01:26
В первом посте написано и ещё вот здесь мануал есть, почитай.
Просто к свн-у я так и не смог подключится. Подумал что пост все таки старый, вдруг уже все поменялось.

Логи выложил сюда: http://narod.ru/disk/8432363001/Aion.rar.html Семь кусков я попытался подписать, остальные записались автоматически. Пароль на архив отправил в личку. Надеюсь вы не хакнете мой акк на легенде :)

xkor
26.03.2011, 03:00
Torbins, хм, чтот забыл обновить ссылочку на сам репозиторий когда его переделывал, счас обновил