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

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

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 — реверс-инжиниринг

Репозиторий
81265 дней назадЕщё не проверено

Популярное

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

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

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

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

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

UnBattletech

Обратная разработка BattleTech: The Crescent Hawk's Inception (1988, MS-DOS; издатель — Infocom, движок — Westwood Associates) — и незавершённая реконструкция на Godot 4 / C#.

Прочитайте этот раздел, прежде чем доверять чему-либо ещё в этом репозитории. Проект — это два направления работы с очень разной степенью зрелости, и слово «фаза» в остальной документации означает код написан, а не поведение доказано.


1. Два результата, создаваемых параллельно

Этот проект производит два артефакта одновременно, и второй опирается на первый:

(1) Документированная обратная разработка. Декомпиляция в reko/, спецификации в docs/, эмулятор Spice86 со специфичными для BattleTech инструментами MCP и инструментарий на Python. Это настоящая работа по RE: форматы файлов, текст истории, карта памяти и большая часть логики движка задокументированы и перекрёстно проверены по выводу декомпилятора и трассировкам живого эмулятора. Это результат сам по себе, а также спецификация для (2).

(2) Реконструкция (BattleTechCHI/). Программа на Godot 4 C#, которая происходит из (1): она читает оригинальные файлы данных (.BLD, .MTP, .ANM, сохранения GAME*) и перереализует поведение движка согласно документации (1). Она верна данным, а не поведению, и никогда не проверялась сквозным образом против оригинала.

Они работают параллельно, но направление зависимости фиксировано:

(2) может быть настолько точной, насколько (1) полна и проверена. Там, где (1) говорит предположительно или открыто, (2) — это догадка.

Именно поэтому дорожная карта ставит закрытие пробелов в RE (Направление 1) и дифференциальную валидацию (2) против эмулятора (Направление 3) перед работой над функциями. Реконструкция настолько хороша, насколько хороша обратная разработка, на которую она опирается.

Если вы ищете побитово точный порт — его пока не существует. Если вы ищете среду RE с поддержкой инструментов плюс управляемую данными реконструкцию, работающую на оригинальных ресурсах, — вот что здесь есть.


2. Честная матрица статуса

Легенда: ✅ верно / сделано · ⚠️ частично, приблизительно или с молчаливыми пробелами · ❓ неизвестно / не проверено · ❌ отсутствует

СистемаЧитает оригинальные файлы во время выполненияПоведение совпадает с оригиналомВалидация
Расшифровка BLD + шифротекст✅ BldLoader.cs✅ (текст)✅ обратимое преобразование BLD↔JSON побайтово идентично (tools/bld)
Интерпретатор опкодов BLD (28 слотов 0xE4–0xFF)✅⚠️ частично❓ никогда не проигрывался сквозным образом; размеры операндов фиксированы (EB/EC/F6/F7); все слоты обработаны (без молчаливого отбрасывания)
Диспетчеризация Fn1CD3 (47 случаев)✅⚠️ частично❓ реализовано по декомпиляции; несколько случаев — приближения
Заголовок/тайлы карты MTP✅ MapLoader.cs / LocalMapView.cs✅ (структура)⚠️ разметка декодирована, но не сверена покадрово
Анимация ANM (XOR-дельта RLE)✅ во время выполнения, PNG как запасной вариант⚠️❓; в репозитории нет спрайт-листов ANM (Assets/Animations/ пуст)
Тайлы ICN/CMP❌ (предварительно сконвертированы)—TileManager загружает BMP; Assets/Tilesets/ пуст
Файлы сохранений GAME1–6 (4096 Б)✅ парсер SaveManager.cs❓❌ обратимое преобразование не проверено против оригинальных сохранений
Состояние истории (b0057, свойства)✅ (чтение)❓ значение предположительно❓ семантика не подтверждена в игре
Бой (попадание, урон, ИИ, нагрев, боеприпасы, туман)— (собственная логика)❌ приблизительно❌ RNG/формулы никогда не сверялись с оригиналом
Вьюпорт / разметка экрана—⚠️ приблизительно❓ каноническая структура вьюпорта не найдена
Звук / музыка❌❌❌ формат не декодирован
Сопоставление карта→триггер BLD⚠️ частично❓таблица свойств тайлов + трансляция [0x5460]:0x4602 не декодированы

Что реконструкция умеет сегодня

  • Загружать последовательность заголовка/запуска и виды локальной карты + мировой карты.
  • Загружать и расшифровывать реальные скрипты .BLD и интерпретировать их (диалоги, меню, магазины, многие случаи диспетчеризации) — с молчаливыми пробелами на нереализованных опкодах.
  • Разбирать реальные карты .MTP и читать/записывать реальную разметку сохранения на 4096 байт.
  • Запускать тактический боевой цикл с нуля (собственные RNG/линия видимости/попадание/урон/ИИ).

Чего она не может честно утверждать

  • Что она воспроизводит поведение оригинала. Бой, отрисовка вьюпорта и части конечного автомата истории — это реконструкции, а не проверенные порты.
  • Что она визуально самодостаточна: тайлсеты, анимации и шрифты отсутствуют в репозитории (есть только 15 сконвертированных PNG карт и 44 PNG спрайтов мехов).

3. Что действительно подвергнуто RE (и где)

ОбластьСостояниеКанонический документ
Формат BLD, шифр, опкоды🟢 надёжноdocs/formats/bld-bytecode.md
Текст истории (все 26 BLD)🟢 извлечёнdocs/story/STORY_TEXT.txt
Карта памяти (100+ адресов, сегменты)🟢 надёжноdocs/formats/memory-map.md
Мировая карта / локальные карты🟢 надёжноdocs/world-map.md
Модель боя🟡 ~90%, часть предположительнаdocs/combat-system.md
Экономика / магазины / запасы🟡 поток UI теперь наблюдался вживуюdocs/story/story-system.md
Формат ANM🟢 задокументированdocs/formats/anm-format.md
Абстракция вьюпорта🔴 неполноdocs/engine/viewport.md
Звук🔴 0%—

4. Известные неизвестные (предстоящая работа по RE)

Это настоящие блокеры; дорожная карта в §6 зависит от них.

  1. Побайтово точный бой. RNG, инициатива/порядок ходов, модификаторы попадания, таблица локаций попадания, разрешение кластеров, нагрев, взрыв боеприпасов, выбор цели ИИ — сейчас вдохновлены дизассемблированием, но никогда не сверялись. (docs/combat-system.md)
  2. Недекомпилированные сегменты. Код боя/перемещения в сегментах 19EF / 1000 отсутствует в выводе Reko; эти процедуры необходимо восстановить. (docs/UNVERIFIED_DISCOVERIES.md §7)
  3. Семантика состояния истории. b0057 (0/1/2) и соседние b0055/b0056/b0058 — предположительны; ID свойств 0x1C–0x23 не сопоставлены. (§5)
  4. Сопоставление карта→триггер BLD. Таблица свойств тайлов (0x32C6) + таблица трансляции ([0x5460]:0x4602) не декодированы; входы сейчас находятся ручным обходом карты (Цитадель (34,10), ComStar (51,10) на стартовой карте). (docs/context.md)
  5. Модель вьюпорта. Каноническая структура вьюпорта не найдена; конфигурационная структура сегмента 0x246C сопоставлена лишь частично; семантика push/pop неизвестна. (docs/engine/viewport.md)
  6. Свойства тайлов / коллизии. Какие биты означают воду/стену; какая процедура читает 0x32C6 для перемещения. (§2)
  7. Обратимое преобразование формата сохранений. Парсер существует; реальная загрузка→сохранение→ сравнение GAME* не выполнялась.
  8. Экономика кадета и суточный цикл. Тик содержания, порог остановки, сон в казарме, дневной шлюз миссии — механика наблюдалась, код не найден. (docs/story/story-system.md)
  9. Пробелы в опкодах BLD. Какие опкоды реально встречаются в 26 файлах и какие интерпретатор молча пропускает. (ветка по умолчанию в BldInterpreter.cs)
  10. Формат звука/музыки. Полностью не декодирован.
  11. Расположение данных мировой карты. Откуда загружаются данные тайлов/карты (сегмент 2A02 или другое место). (§1)

5. Ретро-археология (вне бинарника)

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