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

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

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

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

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

Категории

Все категории
Loading categories
ChaseHQ — Chase H.Q. для ZX Spectrum — реверс-инжиниринг и восстановление на переносимом C | Kitploit
Инструменты/GitHubGitHub/dpt/chasehq
Обратная инженерияБезопасность оборудования и IoTАнализ Бинарных ФайловОбучение и Образование
GitHubdpt/chasehq

ChaseHQ

Chase H.Q. для ZX Spectrum — реверс-инжиниринг и восстановление на переносимом C

Репозиторий
34281 месяц назадПроверено Kitploit

Популярное

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

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

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

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

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

Разбираем Chase H.Q. для ZX Spectrum

Реверс-инжиниринг Дэвида Томаса, 2023–2024

Проект начат: март 2023

Использование Spectrum Analyser для исследования игры, включая окрашивание экрана в зелёный цвет

Это незавершённая работа по дизассемблированию версии Chase H.Q. для ZX Spectrum от Ocean Software. Пока что она охватывает только версию 48K и первый этап игры. Версия 128K лучше (загружает все уровни сразу, имеет музыку AY и анимации экрана меню), но в ней гораздо больше кода, который нужно рассмотреть, поэтому проще начать с этапа 1 версии 48K.

Примечание: сейчас я работаю над версией 128K в ветке «128k».

В этом репозитории находится управляющий файл SkoolKit, который можно использовать для дизассемблирования игры. Он работает с игрой, когда она находится в «нетронутом» состоянии сразу после загрузки. См. ниже, как создать нетронутый снимок памяти, и инструкции по работе со SkoolKit. Я предоставил Makefile для автоматизации большинства необходимых шагов.

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

Зачем?

Чтобы понять, как она работает! (и, возможно, когда-нибудь мы сможем создавать новые уровни...)

Как пользоваться

  • Установите SkoolKit:
pip3 install skoolkit
  • Скачайте и преобразуйте игру в снимок формата .z80:
make pristine

Вы увидите:

Downloading https://worldofspectrum.net/pub/sinclair/games/c/ChaseH.Q..tzx.zip
Extracting Chase HQ - Side 1.tzx
Program: CHASE HQ
Fast loading data block: 23755,3870
Data (514 bytes)
Data (6914 bytes)
Data (19074 bytes)
Data (16130 bytes)
Data (4 bytes)
Data (6898 bytes)
Tape finished
Simulation stopped (PC at start address): PC=23372
Writing chase-hq.z80

Соберите skool-файл следующим образом:

make skool

Skool-файл — это высокоуровневый ассемблерный листинг, из которого можно создавать обычные ассемблерные листинги или HTML-дизассемблеры. Сгенерированные файлы по умолчанию помещаются в каталог 'build'. Вы можете отредактировать skool-файл и преобразовать его обратно в другой управляющий файл следующим образом:

make ctl

Это упрощает перенос ваших изменений обратно в основной управляющий файл:

cp build/ChaseHQ.ctl ChaseHQ.ctl

Или вы можете сравнить два файла (diff), чтобы более избирательно подходить к фиксации изменений.

Чем больше и подробнее становится управляющий файл, тем лучше наше описание игры!

Соберите ассемблерный листинг следующим образом:

make asm

Обычно я редактирую, держа открытыми все три файла: управляющий, skool и листинг, чтобы проверять влияние своих изменений: Использование MacVim для редактирования исходников

Соберите файл .tap или .z80 для загрузки в эмуляторы или настоящие Spectrum следующим образом:

make tap  # or z80

Как мы определяем, как работает игра?

  • Вариант (1) — запустить игру в интерактивном дизассемблере Spectrum Analyser и искать зацепки.
  • Вариант (2) — очень внимательно смотреть на код, пока он не обретёт смысл.

Вероятно, вам придётся делать и то, и другое.

Смотрите https://youtu.be/ZcoFi4T4tsU — короткое видео, где я запускаю Spectrum Analyser, чтобы выяснить, как игра строит свой задний буфер.

POKE-коды

Если вас не интересует само дизассемблирование, приятным побочным продуктом являются POKE-коды, которые делают игру проще, сложнее или просто другой:

  • Бесконечные кредиты
    POKE 39998,166

  • Бесконечное время
    POKE 39937,0

  • Одно попадание для поимки
    POKE 46351,62

  • Бесконечные турбо
    POKE 45221,0

  • Изменение частоты появления машин
    POKE 23834,<spawn rate> -- 20 — значение по умолчанию для этапа 1. 10 будет вызывать появление вдвое чаще.

  • Установить цвет уровня
    POKE 23796,<attribute byte> -- 112 — чёрный на жёлтом, как для этапа 1. 96 даст чёрный на зелёном.
    POKE 23797,<attribute byte>

Ссылки

Тема на форуме Spectrum Computing: https://spectrumcomputing.co.uk/forums/viewtopic.php?p=113633

Играть в Chase H.Q. онлайн: http://torinak.com/qaop#!chasehq

Связанное

Мой предыдущий проект по дизассемблированию: https://github.com/dpt/The-Great-Escape

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