Розшифровка зображень - все для моддінгу мобільних ігор

Коли зображення в архіві з грою не в прямому доступі, і просто необхідно витяг, треба їх розшифрувати, зрозуміти, як вони зберігаються і зчитуються програмою (грою). Можна, звичайно, забити на цю справу і перейти до перекладу іншої гри, але раптом зображення захищені дуже просто, чому б не спробувати їх розшифрувати.

Найбільш часто зустрічаються «слова» це PNG - початок файлу, IEND - кінець файлу, IHDR - заголовок файлу, IDAT - дані, а також PLTE, tRNS, sRGB і т.д. Детальніше можна дізнатися в документації по структурі / специфікації PNG файлу (див.). Завжди зустрічаються в файлі PNG IHDR, IDAT і IEND.

Наступна картинка показує PAK архів, в якому виділені символи одного з зображень:

Розшифровка зображень - все для моддінгу мобільних ігор

Тепер розповім коротко про структуру PNG файлу:
1) На самому початку файлу вказується, що це PNG файл, обов'язково 8 байтів, обов'язково такі: 89 50 4E 47 0D 0A 1A 0A
2) Далі йде заголовок файлу, IHDR, в ньому вказуються розміри зображення
3) Далі можуть йти відразу дані IDAT (саме зображення)
4) У кінці файлу приписується IEND (IEND®B`,), в hex байти: 49 45 4E 44 AE 42 60 82

І ось настає той момент, коли необхідно розповісти про те, як же розробники шифрують зображення. Наведу приклади, з якими я зіткнувся.

1) Найпростіше - просто перейменувати розширення * .png на будь-яке інше
2) Зображення знаходиться в PAK архіві. Іноді в цьому ж архіві знаходиться файл ключей.
3) Розмір зображення (4 байта) приписується в початок його самого (в іграх від CWA)
4) Зображення перевертається, тобто спочатку йдуть, `B®DNEI ... GNP ‰ (в грі GoF2, FishLabs)
5) З зображення прибираються рядки PNG, IHDR і IEND (так як вони не змінюються) і додаються в програмному коді при формуванні зображення.
6) Застосовується операція xor (найчастіше xor FF)
7) У зображення «подмешивается сміття», наприклад, через кожні 20 символів виконується операція xor або віднімання.
8) Виконується віднімання з кожного символу якогось іншого.

Для дешифрування зображень пишеться дешифровщик (необхідно знати мови програмування) для прискорення процесу.

a eсли зображення в форматі .pd і при зміні формату на .png виходить дивна чорно-біла картинка, хоча я точно знаю, що це нормальне, колір зображення. Виходить, воно теж зашифровано? І чим його можна нормально відкрити для редагування?

Схожі статті