четвер, 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 с места где распаковали компилятор.

вівторок, 1 березня 2011 р.

Сборка Lua в Code::Blocks

Для работы нам понадобится последняя версия Lua.
Открываем Code:: Blocks и создаем новый проект Dynamic Link Library. Далее в Project title вписываем Lua, путь пусть останется C:\. Компилятор я оставил GNU GCC Compiler, вы можете выбрать свой, нажимаем Finish. Необходимо удалить стандартные файлы main.cpp и main.h из проекта. 

Создаем две новые папки в директории созданного проекта Lua, include и src. Распаковываем архив с исходниками Lua. В распакованной папке из папки src копируем все .h файлы в папку include нашего проекта, а все файлы .c в папку src нашего проекта. Далее в Code:: Blocks нажимаем Add files ... и добавляем все .c файлы из папки src нашего проекта.

понеділок, 28 лютого 2011 р.

Ошибка компиляции box2d в Code::Blocks

Ошибку компиляции box2d в Code::Blocks можно решить включением строчки

#include "cstring";

Ее необходимо вставить в начало таких файлов:
  • Source/Collision/b2BroadPhase.cpp
  • Source/Dynamics/Contacts/b2CircleContact.cpp
  • Source/Common/b2BlockAllocator.cpp
  • Source/Dynamics/Contacts/b2CircleContact.cpp
  • Source/Dynamics/Contacts/b2PolyAndCircleContact.cpp
  • Source/Dynamics/Contacts/b2PolyContact.cpp

неділю, 27 лютого 2011 р.

Ошибка undefined reference to... при использовании glut и OpenGL в Сode::Blocks

Если при подключении glut или использовании opengl возникают ошибки типа
undefined reference to ...  где три точки переменные функции связаны с glut или open gl например "undefined reference to 'glutInit @ 8 ", то решением этой проблемы может быть в подключение библиотек open gl вручную, они находятся по пути CodeBlocks\MinGW\lib\. Необходимо подключить libopengl32.a, libglu32.a ну и если вы используете aux то libglaux.a.
Аналогично и для  Dev-C++.

суботу, 26 лютого 2011 р.

Подключение HGE к Code::Blocks


Сегодня я покажу как подключить игровой движок HGE к среде разработки Code::Blocks. Начнем с того что нам нужно скачать последний дестрибутив движка HGE. Также на компьютере должна стоять Code::Blocks с настроиным компиляторм, в данном случае я использую компилятор Gnu GCC Compiler из пакета MinGW, идущий в комплекте с Code:: Blocks. Также у меня установлен Code::Blocks версии 10.05. Файлы движка HGE должны быть распакованы в папку hge на диске C:\. Путь не имеет значения, но в примере папка с движком находится именно там. Начнем. Запускаем Code:: Blocks, жмем File -> New -> From template....