Перейти к содержимому
NeKit

Хакинг Sonic Chronicles

1 сообщение в этой теме

Итак, что известно на данный момент:

Текст хранится в *.tlk файлах (английский - strings.tlk). Формат практически тот же, что и в Dragon Age Origins, за исключением кодировки (Windows-1252, а не UTF-8). Вот очень простой конвертатор в XML и обратно используя библиотеку GffTlk. Обращу внимание, для конвертации обратно файл должен называться strings_new.xml, а оригинальный strings.tlk присутствовать в папке.

Большинство самых вкусных файлов игры находятся в test.herf. В test_[буква_языка] находится всё, что относится к конкретному языку игры.

Что нам пока известно о herf-архивах:

Первые четыре байта, похоже, сигнатура.

По оффсету 0x04 находится счётчик файлов (dword)

Начиная с оффеста 0x08 повторяются dword блоки, количество которых соотв. количеству файлов:

-- Скорее всего ID, но точно неизвестно (dword)

-- Размер файла (dword)

-- Оффсет файла (dword)

За исследование формата отдельное спасибо softman'у и vladikcomper'у.

Интересно то, что имена файлов хранятся в файле внутри архива - erf.dict (простите за тавтологию, но вот такая вот у нас матрёшка). Формат его куда более прост: первые 8 байтов совпадают с herf, затем повторяются блоки с (возможно) ID'ом файла (dword) и именем (string).

vladikcomper также написал распаковщик - Stupid HERF-unpacker v0.1, имена файлов по причине, описанной выше, не учитываются.

Для распаковки американского test.herf с сохранением имён можно использовать этот простой скрипт для QuickBMS:

# test.herf from Sonic Chronicles USA

# script for QuickBMS http://aluigi.org/papers.htm#quickbms

goto 0x4

get FILES long

print "%FILES% files in archive"

goto 0xC

set CURNAME 45059704 ;

for i = 0 < FILES

  savepos CURRENT

  get SIZE long

  get OFFSET long

 

  goto CURNAME

  get NAME string

  math CURNAME += 132

  math CURRENT += 0xC

  goto CURRENT

  log NAME OFFSET SIZE

next i

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, войдите для комментирования

Вы сможете оставить комментарий после входа



Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×