IPB

Добро пожаловать, гость ( Вход | Регистрация )

> Arx Fatalis [.PAK]
Siberian GRemlin
Aug 10 2010, 16:46
Сообщение #1


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Первые четыре байта -- смещение на таблицу. Здесь больше информации. Однако, там всё зашифровано! Пробовал XOR'ить -- ничего не вышло.

Образец.
Корявый распаковщик. Извлекает только из папки с игрой. Ветка реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Arkane Studios\Installed Apps\Arx Fatalis", параметр "Folder".
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
-=CHE@TER=-
Aug 12 2010, 19:36
Сообщение #2


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Блин, редкостная программа - ей нужна именно запись в реестре, несмотря на то, что та версия, на которую я дал ссылку, если не нашла игру просит указать каталог...
Ок, сегодня поковыряю что да как и отпишусь.

Добавлено:
Ок, поковырял. Алгоритм шифрования и файловая стуктура весьма простые и сдались на 5 минуте отладки, а вот использование PKWARE explode() выжрало мозг на час с лишним - кто же мог предположить, что там даже не "stdcall", а "cdecl"?..
Но и на этом проблемы не кончились - максимум распаковывается 1 файл через explode() и всё падает. Почему-то нельзя использовать память выделенную через GetMem() - нужно обязательно указывать статический буфер. Я там под это дело 64К завёл (0..$FFFF-1) - на тех архивах что ты выложил, вроде бы, хватает и ничего не падает с ошибками. Отчего такая фигня - почему указатель нельзя освободить - даже представить не могу. Причём ладно бы он поменялся, так тот же самый... То ли какая защита вешается на эту область памяти во время работы, то ли ещё что - короче, ничего непонятно.
Кстати, товарищ Axsis! Может ты глянешь почему там всё при использовании указателя валится? Может быть это я где-то туплю...

Если надо делать перепаковку - то это функция implode() - см. в исходных кодах ссылки на два сайта - там можно найти заголовок этой функции (там 6 параметров, вроде бы). В принципе, можно и без упаковки (FlRec^.Pack = 0), но тогда после патча игра раздуется. Хотя, конечно, это куда меньше геммороя, чем с этими долбанными функциями... А! Если ты будешь через InnoSetup делать, то я тебя обрадую - там Callback функции. Т.е. либо делать ещё одну .DLL и её вызывать (т.е. будет две: repack.dll вызывающая impborl.dll), либо искать реализацию implode / explode на Delphi, что, скорее всего, фиг где попадётся.

Вот программа и исходные коды:
Arx Fatalis .PAK unpacker

[OffTopic]

Siberian GRemlin! Почитал твой сайт - что-то ты ударился в создание руссификаторов. Это, конечно, хорошо, но Кирандия простаивает... Единственный, кто сейчас делает и может доделать хороший перевод для всей трилогии это ты, но, видимо, оно то ли не интересно стало, то ли ещё что... Я вот уже 5 лет (а может и больше - даже и не помню сколько точно) всё жду когда ж ты перевод трилогии закончишь. Видимо я на пенсию уйду раньше. (*улыбается*)
Мне просто интересно: ты соревнуешься с zoneofgames (или как он там называется - сайт с переводами откуда ничего никогда скачать нельзя) по количеству и, бесспорно, качеству руссификаторов?
Впрочем, конечно, каждый занимается тем, что ему на данный момент больше по душе.
Я не подгоняю и ничего против твоих увлечений не имею, просто про себя скажу: если начинаю распыляться из-за каких-то других вещей, на главное уже сил не хватает, а потом и просто всё равно становится - слишком выматываешься...
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщения в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 1st June 2024 - 06:32