![]() |
Добро пожаловать, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Siberian GRemlin |
![]() ![]()
Сообщение
#1
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 537 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 221 раз(а) ![]() |
Первые четыре байта -- смещение на таблицу. Здесь больше информации. Однако, там всё зашифровано! Пробовал XOR'ить -- ничего не вышло.
Образец. Корявый распаковщик. Извлекает только из папки с игрой. Ветка реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Arkane Studios\Installed Apps\Arx Fatalis", параметр "Folder". |
-=CHE@TER=- |
![]()
Сообщение
#2
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
ArxPak Viewer - тут старше версия (0.5.0.6), чем твоя (0.5.0.5). Попробуй её. Кстати, чем тебя этот распаковщик не устроил? В смысле чем он "корявый"?
|
Siberian GRemlin |
![]()
Сообщение
#3
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 537 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 221 раз(а) ![]() |
Тем что он открывает только архивы из папки с игрой, причём все сразу, может извлечь только всё сразу, а не отдельные файлы. Да и вообще мне нужен упаковщик, точнее алгоритм шифрования, упаковщик я сам напишу.
|
-=CHE@TER=- |
![]()
Сообщение
#4
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
А этот распаковщик точно работает на тех файлах, что ты выложил?
У меня игры нет (и честно говоря всю игру искать и качать лень) - он сканит каталог с теми двумя файлами, показывает их имена, но ничего не извлекает. Может ему все файлы нужны - проверить можешь? Возможно, просто ты чего-то важное упустил, что нужно ещё сделать, вот у меня оно и не работает. Как будет распаковывать, я попробую под отладчиком посмотреть где там процедура расшифровки. P.S. Пока что у меня подозрение, что он расшифровывает все файлы в каком-то порядке и ключ от файла к файлу не сбрасывается, а используется изменённый после работы с предыдущим файлом - иначе я не могу представить зачем этой программе все игровые файлы или почему она не работает на двух. |
Siberian GRemlin |
![]()
Сообщение
#5
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 537 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 221 раз(а) ![]() |
Да всё прекрасно работает и с этими двумя файлами в папке. И вот ещё один касяк в нём. Если выбрать папку для извлечения та в которой архивы, то он извлекает всё во внешнюю. Т.е. выбираем C:\Games\Arx и он извлекает в C:\Games. Проверь у себя.
|
-=CHE@TER=- |
![]()
Сообщение
#6
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Блин, редкостная программа - ей нужна именно запись в реестре, несмотря на то, что та версия, на которую я дал ссылку, если не нашла игру просит указать каталог...
Ок, сегодня поковыряю что да как и отпишусь. Добавлено: Ок, поковырял. Алгоритм шифрования и файловая стуктура весьма простые и сдались на 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 |
![]()
Сообщение
#7
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 537 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 221 раз(а) ![]() |
Спасибо большое! Ничего разжимать и сжимать мне не нужно, т.к. архив с озвучкой не сжат.
|
-=CHE@TER=- |
![]()
Сообщение
#8
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Для "спасибо" кнопка есть, меня же больше интересовали ответы на вопросы из OffTopic'а... (*улыбается*)
|
![]() ![]() |
Упрощённая версия | Сейчас: 8th September 2024 - 04:48 |