Wiki

Clone wiki

dfrus / Tech

Техническая информация

  • Язык программирования: Euphoria 4.0.5
    • Библиотеки: стандартные + самописные (выложены здесь)
  • Инструменты:
    • Дизассемблеры: IDA Pro 6.1, HT Editor 2.0.20
    • Шестнадцатеричный редактор: HxD 1.7.7.0
    • Отладчик: OllyDbg 2.01 (alpha 4)
    • Текстовый редактор: SciTE Ru-Board Edition (SciTE 3.0.2 .95Ru)
    • Файловый менеджер: Total Commander 8.0

Назначение файлов

  • PatchDF000.exw, PatchDF001.exw, PatchDF002.exw - устаревшие версии патча, больше не поддерживаются.
  • dfrus034.exw - главный файл текущей версии патча.
  • disasm.e - модуль с определениями опкодов машинных команд.
  • patchdf.e - основной служебный модуль, содержит процедуры для исправления таблицы перекодировки в юникод, загрузки файла trans.txt, получения перекрестных ссылок на объекты, анализа машинного кода, извлечения строк из исполняемого файла игры.
  • patcher.e - вспомогательный модуль, содержит процедуры, облегчающие работу с бинарыми файлами.
  • pe.e - вспомогательный модуль, содержит константы, описания структур и процедуры для работы с файлами формата Portable Executable.
  • peinfo.exw - программа для тестирования модуля pe.e.
  • processwiki.exw - утилита для переработки скачанного с wiki в trans.txt
  • procspeech.exw - утилита для разбивки страницы wiki translation/speech на отдельные файлы.
  • extract_strings.exw - утилита, использовавшаяся для первоначального извлечения текстовых строк из исполняемого файла.
  • extract_strings_2.exw - тестовая утилита, на которой отлаживался новый алгоритм извлечения текстовых строк.
  • grabwiki.bat - пакетный файл, используемый для скачивания частей словаря, их обработки и сборки в файл trans.txt. Для его работы требуется установить утилиты wget, iconv и интерпретатор Euphoria.

Сборка исполняемого файла патча

Для сборки нужно скачать (Windows installer (standard)) и установить интерпретатор Euphoria. Также нужны исходники патча, для этого нажимаем кнопочку "Get Source" и выбираем нужный формат архива, zip например. Скачанный архив распаковываем в отдельную папку.

Первый способ получения exe файла: связывание

  • В папке с исходниками патча нужно открыть интерпретатор командной строки cmd и выполнить команду eubind -con dfrus034. После этого в папке должен появиться файл dfrus034.exe - это и есть готовый патч.

Преимущества данного метода:

  • Быстрое получение exe файла - меньше минуты

Недостатки:

  • Компиляция в псевдокод
  • Размер файла получается около 700КБ и сильнее не сжимается (уже пожат при помощи upx)

Второй способ: трансляция на Си и компиляция

  • Должен быть предустановлен пакет MinGW + MSYS
  • В папке с исходниками патча нужно выполнить команду euc -con dfrus034. После того, как процесс компиляции будет закончен, в папке появится файл dfrus034.exe.

Преимущества данного метода:

  • exe файл скомпилирован в нативный код, теоретически должен работать быстрее;
  • exe файл можно дожать при помощи upx, за счет чего размер файла уменьшается с порядка 700 КБ до 300 КБ. exe файл, полученный предыдущим способом уже сжат при помощи upx и имеет размер порядка 700 КБ.

Недостатки:

  • Относительно медленная компиляция: более минуты
  • Кроме Euphoria должен быть установлен пакет MinGW

Updated