Ну, давно не обновлял потрошилку для
data.pack. В принципе, особо обновлений и не требовала. Но всё равно решил обновить, частично подчистить код.
Ссылка для скачивания -
Epic7Ripper v.2.7 (~11 kb)
Для использования нужен питон.
Запускать через команду:
Код:
python epic7ripper_v2_7.py [optional: options] <optional: folder for rip result>
Опции:
-wtempfile - если указать эту опцию, то временный файл с декодированным data.pack не будет удалён по завершении работы. Вдруг кто любит ковыряться? Найти его можно будет в таком случае в папке с результатом потрошения под именем data.pack.decoded
Для работы необходимо:
- наличие в папке со скриптом файла
data.pack
- наличие свободного места не менее размера
data.pack * 2
Допустим, если
data.pack занимает 3 гб, то в идеале нужно свободного места в районе 6 гб. Первая половина нужна для хранения дешифрованного файла
data.pack. Вторая половина - для хранения результатов потрошения
data.pack (кучи файлов, в том числе
png-картинок).
Результат работы скрипта будет сохранён в папку с указанным именем. Если имя папки не будет указано, то будет результат будет сохранён в папку с именем даты запуска скрипта (
yyyymmdd).
Если папка существовала, то перед стартом работ скрипта она будет полностью очищена.
Алгоритм для работы с
data.pack немножко пересмотрен: выкинут в окно код по работе над декодированием
db-файлов
(формат изменился с 2021.06.10, способ декодирования не найден).
Так как скрипт скурпулёзно просматривает побайтово всё содержимое
data.pack, возможно вылавливание внезапных сюрпризов и "дублей" файлов (разные версии). Выяснить, который из этих "дублей" - последняя версия, а кто из них - "устаревший мусор", при подобном подходе к потрошению
data.pack, довольно сложно. Поэтому было принято решение просто сохранять каждый файл отдельно, дописывая суффиксы вида
(2),
(3) и т.д. к имени файла согласно их фактическому расположению в
data.pack.
Возможен вариант, что
"самая свежая версия" файла носит не оригинальное наименование, а наименование с суффиксом... например -
(3). Если будете активно работать с результатом датамайна и заметите наличие этих суффиксов в альтернативных версиях нужных вам файлов - будьте аккуратны при выборе, какой именно файл "окончательный". В случае с
db-файлами можно предположить, что
"чем больше файл по байтам - тем свежее". С картинками - сложнее.
Для
"идеального" датамайна с минимальным количеством "мусора" и "дублей", лучше всего удалить полностью файл
data.pack из папки игры на эмуляторе, после чего запустить клиент игры и пропатчеваться. Да, будет скорее всего долго (как установка игры с нуля, ~3gb патч), но оно того стоит, imho.