Сповіщення
Очистити все

DB-архіви


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

Формат .db архівів фінальної версії гри

Формат блоку хідера наступний:

Довжина імені - беззнакове 2 байт.

Розмір файлу - беззнакове 4 байт

Розмір стисненого - беззнакове 4 байт

crc файлу - беззнакове 4 байт

Далі йде ім'я файлу розмір = Довжина імені (дивимося вище)

Зміщення у файлі - беззнакове 4 байт

+ все це повторюється для всіх фаїлів

Як знайти потрібний чанк(блоки даних у файлі):

З початку файлу читаємо 4 байти - id блоки, слід. 4 байти - розмір блоку.

Ну а далі не проблема пропустити блоки з непотрібним id

Автор: Neo

Додаток:

Взагалі файл складається з індексу та даних. Індекс містить назви файлів, зміщення та розміри. У ТЧ індекс зашифровано різними ключами для різних версій гри. У ЧН він не зашифрований, різниця між англ і рус версіями архівів виключно в коді яким зашифровано індекс. На початку файлу лежить таблиця із шляхами. Вона стиснута і зашифрована, на зразок зипа, але тільки швидшим алгоритмом.

Код Хаффмана – загальний алгоритм стиснення. Він слабкий, але простий та швидкий. Є хмара різних реалізацій. Одна з них використовується у Сталкері. Для того, щоб отримати таблицю з шляхами потрібна саме та сама реалізація.


   
Цитата