Добро пожаловать, гость ( Вход | Регистрация )
| Siberian GRemlin |
Aug 10 2010, 16:46
Сообщение
#1
|
|
Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 538 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 223 раз(а) |
Первые четыре байта -- смещение на таблицу. Здесь больше информации. Однако, там всё зашифровано! Пробовал XOR'ить -- ничего не вышло.
Образец. Корявый распаковщик. Извлекает только из папки с игрой. Ветка реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Arkane Studios\Installed Apps\Arx Fatalis", параметр "Folder". |
![]() ![]() |
| -=CHE@TER=- |
Aug 12 2010, 19:36
Сообщение
#2
|
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,428 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 327 раз(а) |
Блин, редкостная программа - ей нужна именно запись в реестре, несмотря на то, что та версия, на которую я дал ссылку, если не нашла игру просит указать каталог...
Ок, сегодня поковыряю что да как и отпишусь. Добавлено: Ок, поковырял. Алгоритм шифрования и файловая стуктура весьма простые и сдались на 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 Arx Fatalis [.PAK] Aug 10 2010, 16:46
-=CHE@TER=- ArxPak Viewer - тут старше версия (0.5.0.6), чем т... Aug 11 2010, 10:36
Siberian GRemlin Тем что он открывает только архивы из папки с игро... Aug 12 2010, 02:35
-=CHE@TER=- А этот распаковщик точно работает на тех файлах, ч... Aug 12 2010, 13:55
Siberian GRemlin Да всё прекрасно работает и с этими двумя файлами ... Aug 12 2010, 14:07
Siberian GRemlin Спасибо большое! Ничего разжимать и сжимать мн... Aug 13 2010, 02:14
-=CHE@TER=- Для "спасибо" кнопка есть, меня же больш... Aug 13 2010, 18:53![]() ![]() |
| Упрощённая версия | Сейчас: 20th April 2026 - 10:00 |