Sign in Join

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

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

DataFrog_Zfc_Zmd

View on GitHub

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