четвер, 29 березня 2012 р.

Основы разбора и распаковки архивов неизвестных форматов

В данном посте я постараюсь показать основы анализа неизвестных архивов на примере разбора  ресурсов игры 7 Days (ссылку не даю чтобы не оказаться в пиратах :)) под Symbian. Сама потребность разбора возникла из-за отсутствия распаковщика архива данной игры. Распаковка же была нужна для перевода игры с китайской (распаковать я распаковал, а вот файлов содержащих символы так и не нашел :)).
 
Приступим. 

Сначала нам нужно распаковать установочный файл игры формата .sis. Это можно сделать программой Siscontents. Распаковав sis пакет, видим среди всех ресурсов игры только один файл res.spk размером 50 мб, который уже своим размером наводит на мысль о том, что это игровой архив, а так как этот архив (как потом выяснилось) без сжатия и неизвестного формата назовем его - псевдоархив (так обычно их называют). Открываем наш псевдоархив в hex редакторе (я выбрал HxD), и сразу в начале файла замечаем текстовые строки - это Fat таблица (таблица размещения файлов в архиве), которая подтверждает наши догадки о том, что это псевдоархив.

неділю, 18 березня 2012 р.

Подключение Digital Mars D Compiler к Code::Blocks

Есть замечательная язык D, основанный на C++  с кучой фич ). Для того чтобы потестировать его мы подключим компилятор D к Code::Blocks. Существует три компилятора D: DMD (Digital Mars D Compiler) - от разработчиков D, GDC - фронтенд GCC для D, LDC - фронтенд DMD с использованием LLVM, все они бесплатны. Мы будем работать с DMD. DMD существует в двух версиях, ветка 1.0, 2.0. Мы возьмем последнюю. Скачайте архив с DMD. Извлеките папку dmd2 на любой диск, в ней должна находиться папка windows, в которой есть папки bin и lib. Откройте Code :: Blocks. Нажимаем пункты меню settings->compiler and debugger. Откроется окно настроек компиляторов. В выпадающем списке выбираем Digital Mars D Compiler и жмем вкладку toolchain and executables. В пути директории выбираем папку windows с места где распаковали компилятор.