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

[SRC="c++"]
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 ; ---------------------------------------------------------------------------
[/SRC]

Хрень для меня мало-понятная, но все же Smile Через это уг проходят все конфигурационные файлы. Собственно тот же loc_1090A4D1 (он же l2.ini), который тянет за собой 2ва варианта развития сюжета - либо кильнуть процесс(если файл не найден, либо не может быть прочитан), либо начинать вгружать его.
Вот тут и встал вопрос, где же плать это все чудо, проверяет(я просто не знаю как это назвать) файл(может сравнивает все по хешу(подобное видел чуток ниже), либо еще что-то), и по неведомой причине, измененный(хоть на байт больше или меньше) файл - отказывается грузить, скидывая все на "appRequestExit"
----
Кому интересно порыться, присоединяйтесь Smile Ниже выкладываю бинарник линдвиора(темида офнута, валидный ехе).
----
П.С - понимаю фразу "не знаешь, не лезь", но интересно все-таки Smile
----
Линк на L2.exe(Lindvior)
Ответ
#2
Дядь, да вот к примеру:
[Изображение: e55627545ab9f05978c205831b1d.png]
Ответ
#3
Zubastic Написал:Дядь, да вот к примеру:
[Изображение: e55627545ab9f05978c205831b1d.png]

Ну то, что L2.exe юзает API винды не сильно удивительно.
Fortuna - non penis, in manus non recipe.
Ответ
#4
Zubastic;286893 Написал:Дядь, да вот к примеру:
Не, это не то Smile Там оно выше пропускается еще и через некий хейгтСериализатор + неведомый ААрхив. В общем инфы вагон Smile Прально Васек говорил, несколько бессонных ночей в обнимку с дебагерами и кофейком Smile
---
Сравнив с анпаком ГоД бинарника от фьюри - изменений в данном сегменте вообще не нашел Smile Рою дальше...
---
Интересные вещи с 10905B49 начинаются...Куча экспорт функций с core используется. Веселый Logf, который там все что можно логирует О_о Надо его поюзать Smile

Код:
[B](03:21:51) Critical: FL2GameData::LoadL2DataBin
(03:21:51) Critical: FL2GameData::[U]AbnormalDefaultEffectDataLoad[/U]
(03:21:51) Critical: FL2GameData::Load
(03:21:51) Critical: UGameEngine::Init[/B]
(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
Ответ
#5
Дядь, как ты это делаешь, научи Smile)). Вообще поковырял бы, но опыта в этом пока еще очень мало...
Ответ
#6
Zubastic;286917 Написал:Дядь, как ты это делаешь, научи )). Вообще поковырял бы, но опыта в этом пока еще очень мало...
Я научным методом "тыка" Smile Пиши завтра в ICQ(в ПМ номер свой кинь), поразбираем 2мя лицами необразовщин xD
Ответ
#7
Было бы время помог бы с ковыряниями.

P.S. Не пойму что ты хочешь получить разобрав l2.exe?
[Изображение: 61b684.png]
Ответ
#8
в первом посте же писал Smile вообще для начала - валидно грузить измененные файлы. Ибо офф бинарник отказывается грузить перепакованые файлы клиента. Так сказать начать нарабатывать почву для дальнейших махинаций с статик данными клиента.

Добавлено через 13 часов 28 минут
До кучи анпакнул engine.dll (полностью валидный). Так же с кор. линдвиора(526). По бинарнику - пока ток поверхностно разбираюсь Smile
Engine.dll:
[Изображение: g75Ko.th.png]

Линк на Engine.dll(Lindvior)
---
Прошли сутки, и все таки нарыли мы с товарищем Zubastic'ом, то, что было перед глазами xD
Собственно вся батва по ключам(РСА):
Код:
sub_10914D80("97df398472ddf737ef0a0cd17e8d172f0fef1661a38a8ae1d6e829bc1c6e4c3cfc19292dda9ef90175e46e7394a18850b6417d03be6eea274d3ed1dde5b5d7bde72cc0a0b71d03608655633881793a02c9a67d9ef2b45eb7c08d4be329083ce450e68f7867b6749314d40511d09bc5744551baa86a89dc38123dc1668fd72d83", "00000035", v4, v3, v5, &v8, 128, 124);
Все же, самообучение дает какие-то плоды Smile Понимаю что вопрос был из раздела "дно, ты смотри внимательней", но куда без этого Smile
----
Но разборы полетов на всемогущем бинарнике - открыты, разбираем дальше xD
Ответ
#9
Апну темку Smile
Ответ
#10
Познавательно, да и нужное дело. Тоже поковыряюсь, чтоль.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)