Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

DataFrog_Zfc_Zmd

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

DataFrog_Zfc_Zmd

Сборщик ZFC и ZMD файлов для консоли Data Frog.

Структура формата ZFC и ZMD:

Формат ZFC и ZMD это файл состоящий из 2х частей.

1 часть это превьюшка в формате raw, размерами 144х208, ориентация вертикальная.

Блок 0-119807 получается 119808 байт превьюшка.

Каждый пиксель состоит их 4х байтов, цвета расположены в таком порядке BGRA. Альфа канал (A) всегда 0хFF.

Чтобы получить превьюшку в формате RGB надо поменять в BGRA 2 байта B и R местами.

2 часть это ZIP (PKZip) архив, но немного модифицированный.

У этого архива изменены точки входа. Чтобы их восстановить надо поменять следующие байты на нормальные.

Находим 57 51 57 03 -> Меняем 50 4B 03 04 file header

Находим 57 51 57 02 -> Меняем 50 4B 01 02 central directory file header

Находим 57 51 57 01 -> Меняем 50 4B 05 06 End of central directory record

После восстановления архива, надо расшифровать имя файла, которое находится в архиве.

Его зашифровали функцией XOR с ключем E5.

Имя в архиве встречается 2 раза.

Первый раз имя встречается (это первая буква имени) с 119838 и длина его записана в блоке 119834-119835 (2 байта или word).

Второй раз имя встречается в конце central directory file header и длина его все так же в блоке 119834-119835 (2 байта или word).

3 часть не совсем часть то все же, это как отображается имя игры в консоле.

Тут все просто оно берется из названия файла ZFC или ZMD.

Литература для понимания формата:

Структура PKZip файла

https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html

XOR шифр

https://www.dcode.fr/xor-cipher