Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ChaseHQ — Chase H.Q. für ZX Spectrum — reverse-engineert und in portablem C rekonstruiert | Kitploit
Tools/GitHubGitHub/dpt/chasehq
Reverse EngineeringHardware- & IoT-SicherheitBinäranalyseLernen & Bildung
GitHubdpt/chasehq

ChaseHQ

Chase H.Q. für ZX Spectrum — reverse-engineert und in portablem C rekonstruiert

Repository anzeigenWebseite
342vor 15h 5mVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Chase H.Q. für den ZX Spectrum auseinandernehmen

Reverse Engineering von David Thomas, 2023-2024

Projektstart: März 2023

Verwendung von Spectrum Analyser zur Untersuchung des Spiels, einschließlich des Umschaltens des Bildschirms auf Grün

Dies ist eine laufende Disassemblierung der ZX-Spectrum-Umsetzung von Chase H.Q. durch Ocean Software. Bisher deckt sie nur die 48K-Version und das erste Level des Spiels ab. Die 128K-Version ist besser (lädt alle Level auf einmal, hat AY-Musik und Menübildschirm-Animationen), aber sie hat viel mehr Code zu berücksichtigen, daher ist es einfacher, zunächst mit 48K Level 1 zu beginnen.

Hinweis: Ich arbeite derzeit an der 128K-Version auf dem Branch „128k“.

In diesem Repository befindet sich eine SkoolKit-Control-Datei, mit der du das Spiel disassemblieren kannst. Dies funktioniert mit dem Spiel, wenn es sich in einem „unberührten“ Zustand direkt nach dem Laden befindet. Weiter unten findest du Anleitungen zur Erstellung eines unberührten Snapshots und zur Bedienung von SkoolKit. Ich habe ein Makefile bereitgestellt, um die meisten der erforderlichen Schritte zu automatisieren.

Die aktuelle Disassemblierung ist hier zu finden.

Warum?

Um herauszufinden, wie es funktioniert! (und vielleicht könnten wir eines Tages neue Level erstellen ...)

So geht's

  • SkoolKit installieren:
root@kitploit:~
pip3 install skoolkit
  • Das Spiel herunterladen und in einen Snapshot im .z80-Format konvertieren:
root@kitploit:~
make pristine

Du wirst Folgendes sehen:

root@kitploit:~
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

So erstellst du eine Skool-Datei:

root@kitploit:~
make skool

Eine Skool-Datei ist eine High-Level-Assembly-Listing, aus der wir reguläre Assembly-Listings oder HTML-Disassemblierungen erzeugen können. Generierte Dateien werden standardmäßig in einem Verzeichnis namens 'build' abgelegt. Du kannst die Skool-Datei bearbeiten und sie wie folgt wieder in eine andere Control-Datei zurückverwandeln:

root@kitploit:~
make ctl

Dadurch kannst du deine Änderungen ganz einfach in die Haupt-Control-Datei zurückführen, indem du Folgendes ausführst:

root@kitploit:~
cp build/ChaseHQ.ctl ChaseHQ.ctl

Oder du kannst die beiden per diff vergleichen, um beim Staging selektiver vorzugehen.

Je größer und detaillierter die Control-Datei wird, desto besser ist unsere Erklärung des Spiels!

So erstellst du ein Assembly-Listing:

root@kitploit:~
make asm

Ich bearbeite die Quellen normalerweise mit geöffneter Control-, Skool- und Assembly-Datei, um die Auswirkungen meiner Änderungen zu prüfen: Verwendung von MacVim zum Bearbeiten der Quellen

So erstellst du eine TAP- oder Z80-Datei zum Laden in Emulatoren oder echte Spectrum-Computer:

root@kitploit:~
make tap  # or z80

Wie finden wir heraus, wie das Spiel funktioniert?

  • Option (1) besteht darin, das Spiel im interaktiven Disassembler Spectrum Analyser auszuführen und nach Hinweisen zu suchen.
  • Option (2) besteht darin, den Code wirklich intensiv anzustarren, bis er Sinn ergibt.

Du wirst wahrscheinlich beides tun müssen.

Unter https://youtu.be/ZcoFi4T4tsU findest du ein kurzes Video, in dem ich Spectrum Analyser ausführe, um herauszufinden, wie das Spiel seinen Backbuffer aufbaut.

POKEs

Wenn dich die Disassemblierung selbst nicht interessiert, sind die POKEs ein nettes Nebenprodukt, um das Spiel einfacher, schwerer oder einfach anders zu machen:

  • Unbegrenzte Credits
    POKE 39998,166

  • Unbegrenzte Zeit
    POKE 39937,0

  • 1 Treffer zur Festnahme
    POKE 46351,62

  • Unbegrenzte Turbos
    POKE 45221,0

  • Auto-Spawnrate beeinflussen
    POKE 23834,<spawn rate> -- 20 ist der Standardwert für Level 1. 10 würde doppelt so häufig spawnen.

  • Levelfarbe festlegen
    POKE 23796,<attribute byte> -- 112 ist Schwarz auf Gelb, wie bei Level 1. 96 würde Schwarz auf Grün ergeben.
    POKE 23797,<attribute byte>

Links

Spectrum-Computing-Forumsthread: https://spectrumcomputing.co.uk/forums/viewtopic.php?p=113633

Chase H.Q. online spielen: http://torinak.com/qaop#!chasehq

Verwandtes

Mein vorheriges Disassemblierungsprojekt: https://github.com/dpt/The-Great-Escape

Tool herunterladen