Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Игровой клиент (https://forum.zone-game.info/forumdisplay.php?f=54)
-   -   L2.exe - и все по нему (https://forum.zone-game.info/showthread.php?t=27699)

KilRoy 24.03.2013 00:00

L2.exe - и все по нему
 
Я конечно понимаю, что форум далеко не кракЛаб и подобное. И вроде как реверсинг ладвы не попадает под 13й пунтк правил :)
----
Собственно по топику:
Все же не являюсь реверсером, и вообще близко не росту в данном направлении, но все же, решил копнуть в эту сторону, и не ждать анпакнутого бинарника. Собстна скинуть с этой батвы темиду - труда не составляет, да и думаю с скриптами LCF-AT - это смогет сделать любой школьник :)
Далее встал вопрос - что же хочет это чудо, для лоада в память всего состава дат файлов и конфигураций(ини). Полез, естественно без знаний :)
Нашел сегменты и функции которые все это уг грузят, декриптуют:

 
1090A49A ; ---------------------------------------------------------------------------
___:1090A49A
___:1090A49A loc_1090A49A:                           ; CODE XREF: sub_1090A3A0+AAj
___:1090A49A                 mov     eax, ?GMalloc@@3PAVFMalloc@@A ; FMalloc * GMalloc
___:1090A49F                 mov     ecx, [eax]
___:1090A4A1                 mov     edx, [ecx]
___:1090A4A3                 push    offset aL2decryptfiler ; "L2DecryptFileReader"
___:1090A4A8                 push    4Ch
___:1090A4AA                 mov     eax, [edx]
___:1090A4AC                 call    eax
___:1090A4AE                 mov     ebx, eax
___:1090A4B0                 test    ebx, ebx
___:1090A4B2                 jz      short loc_1090A4CF
___:1090A4B4                 push    edi             ; int
___:1090A4B5                 push    0               ; lpFileSizeHigh
___:1090A4B7                 push    esi             ; hFile
___:1090A4B8                 call    GetFileSize
___:1090A4BE                 push    eax             ; int
___:1090A4BF                 mov     ecx, [ebp+arg_8]
___:1090A4C2                 push    ecx             ; int
___:1090A4C3                 push    ebx             ; int
___:1090A4C4                 mov     ecx, esi        ; hFile
___:1090A4C6                 call    sub_109097E0
___:1090A4CB                 mov     esi, eax
___:1090A4CD                 jmp     short loc_1090A4D1
___:1090A4CF ; ---------------------------------------------------------------------------
 
Code: C++
Хрень для меня мало-понятная, но все же :) Через это уг проходят все конфигурационные файлы. Собственно тот же loc_1090A4D1 (он же l2.ini), который тянет за собой 2ва варианта развития сюжета - либо кильнуть процесс(если файл не найден, либо не может быть прочитан), либо начинать вгружать его.
Вот тут и встал вопрос, где же плать это все чудо, проверяет(я просто не знаю как это назвать) файл(может сравнивает все по хешу(подобное видел чуток ниже), либо еще что-то), и по неведомой причине, измененный(хоть на байт больше или меньше) файл - отказывается грузить, скидывая все на "appRequestExit"
----
Кому интересно порыться, присоединяйтесь :) Ниже выкладываю бинарник линдвиора(темида офнута, валидный ехе).
----
П.С - понимаю фразу "не знаешь, не лезь", но интересно все-таки :)
----
Линк на L2.exe(Lindvior)

Zubastic 24.03.2013 01:15

Re: L2.exe - и все по нему
 
Дядь, да вот к примеру:
http://klikr.org/e55627545ab9f05978c205831b1d.png

Ashe 24.03.2013 01:17

Re: L2.exe - и все по нему
 
Цитата:

Сообщение от Zubastic (Сообщение 286893)
Дядь, да вот к примеру:
http://klikr.org/e55627545ab9f05978c205831b1d.png

Ну то, что L2.exe юзает API винды не сильно удивительно.

KilRoy 24.03.2013 01:24

Re: L2.exe - и все по нему
 
Цитата:

Сообщение от Zubastic (Сообщение 286893)
Дядь, да вот к примеру:

Не, это не то :) Там оно выше пропускается еще и через некий хейгтСериализатор + неведомый ААрхив. В общем инфы вагон :) Прально Васек говорил, несколько бессонных ночей в обнимку с дебагерами и кофейком :)
---
Сравнив с анпаком ГоД бинарника от фьюри - изменений в данном сегменте вообще не нашел :) Рою дальше...
---
Интересные вещи с 10905B49 начинаются...Куча экспорт функций с core используется. Веселый Logf, который там все что можно логирует О_о Надо его поюзать :)

Код:

(03:21:51) Critical: FL2GameData::LoadL2DataBin
(03:21:51) Critical: FL2GameData::AbnormalDefaultEffectDataLoad
(03:21:51) Critical: FL2GameData::Load
(03:21:51) Critical: UGameEngine::Init

(03:21:51) Critical: InitEngine
(03:21:51) Log: Kill Thread SplashThread
(03:21:51) Exit: Executing UObject::StaticShutdownAfterError
(03:22:47) Log: Waiting for file streaming thread to finish...
(03:22:48) Uninitialized: Name subsystem shut down
(03:22:48) Uninitialized: Log file closed, 03/24/13 03:22:48


Zubastic 24.03.2013 02:25

Re: L2.exe - и все по нему
 
Дядь, как ты это делаешь, научи :))). Вообще поковырял бы, но опыта в этом пока еще очень мало...

KilRoy 24.03.2013 02:27

Re: L2.exe - и все по нему
 
Цитата:

Сообщение от Zubastic (Сообщение 286917)
Дядь, как ты это делаешь, научи )). Вообще поковырял бы, но опыта в этом пока еще очень мало...

Я научным методом "тыка" :) Пиши завтра в ICQ(в ПМ номер свой кинь), поразбираем 2мя лицами необразовщин xD

darkevil 24.03.2013 02:58

Re: L2.exe - и все по нему
 
Было бы время помог бы с ковыряниями.

P.S. Не пойму что ты хочешь получить разобрав l2.exe?

KilRoy 24.03.2013 03:10

Re: L2.exe - и все по нему
 
в первом посте же писал :) вообще для начала - валидно грузить измененные файлы. Ибо офф бинарник отказывается грузить перепакованые файлы клиента. Так сказать начать нарабатывать почву для дальнейших махинаций с статик данными клиента.

Добавлено через 13 часов 28 минут
До кучи анпакнул engine.dll (полностью валидный). Так же с кор. линдвиора(526). По бинарнику - пока ток поверхностно разбираюсь :)
Engine.dll:
http://image.zone-game.info/images/2...4/g75Ko.th.png

Линк на Engine.dll(Lindvior)
---
Прошли сутки, и все таки нарыли мы с товарищем Zubastic'ом, то, что было перед глазами xD
Собственно вся батва по ключам(РСА):
Код:

  sub_10914D80("97df398472ddf737ef0a0cd17e8d172f0fef1661a38a8ae1d6e829bc1c6e4c3cfc19292dda9ef90175e46e7394a18850b6417d03be6eea274d3ed1dde5b5d7bde72cc0a0b71d03608655633881793a02c9a67d9ef2b45eb7c08d4be329083ce450e68f7867b6749314d40511d09bc5744551baa86a89dc38123dc1668fd72d83", "00000035", v4, v3, v5, &v8, 128, 124);
Все же, самообучение дает какие-то плоды :) Понимаю что вопрос был из раздела "дно, ты смотри внимательней", но куда без этого :)
----
Но разборы полетов на всемогущем бинарнике - открыты, разбираем дальше xD

Zubastic 24.03.2013 23:33

Re: L2.exe - и все по нему
 
Апну темку :)

elastic 24.03.2013 23:50

Re: L2.exe - и все по нему
 
Познавательно, да и нужное дело. Тоже поковыряюсь, чтоль.


Текущее время: 08:54. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot