Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
UnBattletech — BattleTech: The Crescent Hawk's Inception — реверс-инжиниринг | Kitploit
Инструменты/GitHubGitHub/velteyn/unbattletech
Статический анализОбратная инженерияОтладчикиАнализ Бинарных ФайловОбучение и ОбразованиеАнализ Прошивок
GitHubvelteyn/unbattletech

UnBattletech

BattleTech: The Crescent Hawk's Inception — реверс-инжиниринг

Репозиторий
8131 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

UnBattletech — Обратная разработка BattleTech: The Crescent Hawk's Inception (1988)

RE Status Godot Rebuild

Анализ обратной разработки и воссоздание на Godot 4 + C# игры BattleTech: The Crescent Hawk's Inception — MS-DOS игры 1988 года от Infocom.

Структура репозитория

root@kitploit:~
├── docs/               # Документация и результаты RE
│   ├── CONTEXT.md      # Основной контекст (1050+ строк)
│   ├── TECHNICAL_ANALYSIS.md  # Подробный технический анализ (3211 строк)
│   ├── MEMORY_MAP.md   # Полная карта памяти (603 строки)
│   ├── ADDRESS_REFERENCE.md   # Справочник адресов (1035 строк)
│   ├── BLD_BYTECODE.md # Спецификация байт-кода BLD (342 строки)
│   ├── WORLD_MAP_FINDINGS.md  # Анализ карты мира (321 строк)
│   ├── REBUILD_PLAN.md # План воссоздания на Godot
│   ├── REBUILD_ROADMAP.md     # Дорожная карта воссоздания
│   └── STORY_TEXT.txt  # Извлечённый полный текст истории
│
├── tools/              # Инструменты анализа на Python
│   ├── bld/            # Инструменты для BLD-скриптов (декодер, конвертер, просмотрщик)
│   ├── assets/         # Инструменты извлечения и рендеринга ассетов
│   └── analysis/       # Инструменты RE-анализа
│
├── reko/               # Вывод декомпилятора Reko
│   ├── UNBTECH.exe.c   # Полная декомпиляция на C (2MB)
│   ├── UNBTECH.exe.h   # Заголовок с определениями структур
│   ├── UNBTECH_all.asm # Объединённый дизассемблированный код (60K строк)
│   └── segments/       # Пофайловые .c/.asm/.dis для каждого сегмента
│
├── asm/                # Анализ ассемблерного кода
│   └── discoveries.asm # Ручные заметки по анализу
│
├── json/               # Преобразования BLD → JSON (26 файлов)
│
├── spice86/            # Результаты эмуляции через Spice86
│
├── BattleTechCHI/      # Воссоздание на Godot 4 + C#
│
├── original/           # Оригинальные игровые ассеты (только локально, не загружены)
│   ├── bld/  cmp/  icn/  mtp/  anm/  saves/  exe/
│
├── extracted_assets/   # Отображаемые PPM/PNG из игровых ассетов
└── Assets/             # Преобразованные листы спрайтов/тайлов

Ключевые достижения RE

  • Байт-код BLD полностью восстановлен: 26 опкодов, шифр подстановки, 4-уровневый интерпретатор
  • Карта мира декодирована: сетка тайлов 64×64, 93 типа тайлов, система тумана войны
  • Боевая система задокументирована: попадание по 2D6, рейкастинг линий видимости (LoS), ИИ наведения, нагрев/боеприпасы
  • История полностью извлечена: декодированы все 26 BLD-скриптов с сюжетными маркерами
  • Карта памяти завершена: сопоставлено 100+ адресов во всех сегментах

Прогресс воссоздания на Godot

Воссоздание находится на этапе 6 (интеграция ANM + боевые ANM). ~8 000 строк C# в 45+ скриптах в BattleTechCHI/Scripts/.

  • ✅ Этапы 0–1: базовый движок, модели данных, загрузчики ассетов, игровой цикл, частичное сохранение/загрузка
  • ✅ Этап 2: отрисовка тайлов, вьюпорт карты мира, локальные карты, LocationMapper, туман войны
  • ✅ Этап 3: интерпретатор BLD (26 опкодов), декодер шифра, диспетчер на 47 случаев (все с реальной реализацией), диалоги, ShopScreen
  • ✅ Этап 4: бой — инициатива, очерёдность ходов, перемещение, LoS, попадание (2D6), урон, ИИ, нагрев/боеприпасы, туман, HUD, столкновения
  • ✅ Этап 5: AnmPlayer + ViewportManager + BldAnmMap, декомпрессия ANM в рантайме
  • ✅ Этап 6: боевая панель меха ANM (MechPortrait), ANM курсора карты, исправление StorySlots 16→8, исправление дисковода A: в эмуляторе
  • ⬜ Этап 7: сквозное игровое тестирование, полировка (VFX, BTSTATS, звук, рефакторинг w4FBC, миграция TileMapLayer)

Эмулятор и интроспекция рантайма

Эмулятор Spice86 с 19 специализированными для BattleTech MCP-инструментами для интроспекции состояния игры в рантайме:

  • Чтение/запись состояния игры (массив состояния, слоты истории, слоты юнитов, курсор, кредиты, флаги)
  • Чтение боевых сеток, позиций юнитов, тумана войны
  • Внедрение ввода с клавиатуры (управление игрой через меню скриптами)
  • Чтение регистров ЦП и памяти
root@kitploit:~
# Запуск эмулятора с MCP-сервером на порту 8081
dotnet exec bin/Debug/net10.0/UNBATTLETECH.dll \
  --Exe "/path/to/BTECH.EXE" \
  --CDrive "/path/to/game/" \
  --HeadlessMode Minimal --McpHttpPort 8081 --NoGui

# Чтение состояния игры
curl -s -X POST http://localhost:8081/mcp/ \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"bt_get_state","arguments":{}}}'

Инструменты и скрипты

root@kitploit:~
# Преобразование BLD → JSON и обратно
python3 tools/bld/bld_json_converter.py to-json original/bld/

# Извлечение полного текста истории
python3 tools/bld/extract_story.py

# Декодирование всех BLD-файлов с анализом опкодов
python3 tools/bld/decode_bld.py

# ASCII-просмотрщик карт в терминале
python3 tools/bld/ascii_viewer.py

# Рендеринг CMP-ассетов в PPM
python3 tools/assets/extract_assets.py

# Сборка C#-версии
cd BattleTechCHI && dotnet build

# Сборка эмулятора
dotnet build UNBATTLETECH.csproj

Отказ от ответственности

Этот репозиторий не содержит оригинальных игровых ассетов (BLD, CMP, EXE и т.д.). Включены только анализ обратной разработки, документация и оригинальный исходный код для воссоздания методом «чистой комнаты». Оригинальные игровые ассеты остаются в original/ только для локальной разработки (исключены через .gitignore).

Скачать инструмент