Сообщение от riku.kh3
etc.afs нормально не распаковывается
|
Да, добрался до etc.afs, у меня он вообще крэшит программу.
Ну там структура контейнера примитивная. Можно и ручками повыдёргивать )))
Формат u32, первые 4 байта сигнатура AFS., следующие 4 байта - количество вложенных файлов.
И далее идёт элементарное перечисление файлов - смещение на начало и следом размер.
Короче, в этом файле кто-то напутал размеры вложений. В самом конце asf есть перечисление всех вложенных файлов, по 3 строки на каждый файл. Там последние 4 байта в каждой 3-ей строке должны указывать на размер файла. Но видимо кто-то ковырялся, либо разрабы нахимичили, потому что там идут указания вперемешку у каждого последующего файла идёт поочереди то смещение на начало, то размер файла.
Причём у первого файла
LOGO_REG.T2P записан размер
86 00 00 00, тогда как
86 - это не размер, а количество файлов в контейнере

Далее следующий файл
LOGO_CRI.T2P записан размер
00 08 00 00, хотя 0800 - это смещение на начало первого файла
LOGO_REG.T2P 
Следом третий файл
LOGO_KID.T2P, там записан размер
1D 51 00 00, хотя это размер первого файла

И так далее, всё хуже и хуже.
То есть, кто-то в конце у каждого файла проставил вместо размера - подряд все числа по 4 байта, начиная с
86000000, которые перечислены в самом хедере. Если это исправить, то должно всё извлекаться нормально.
И потом, в контейнерах часто встречаются файлы
*.T2P - это файлы
GIM. Экстрактор почему-то в начало прикрепляет лишние 5 служебных байтов. Они в принципе по смещениям там и должны быть, как служебные, но при извлечении файлов, эти первые 5 байт должны быть отсечены. Так же, правильность файла можно проверить по заканчивающемуся коду. Он никогда не может заканчиваться нечётным числом байтов в последней строке, обязательно должна соблюдаться кратность 4-ём.