Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ChaseHQ — Chase H.Q. per ZX Spectrum — reingegnerizzato e ricostruito in C portabile | Kitploit
Strumenti/GitHubGitHub/dpt/chasehq
Reverse EngineeringSicurezza Hardware e IoTAnalisi di BinariApprendimento e Formazione
GitHubdpt/chasehq

ChaseHQ

Chase H.Q. per ZX Spectrum — reingegnerizzato e ricostruito in C portabile

Vedi RepositorySito web
3421 giorno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Smontando Chase H.Q. per lo ZX Spectrum

Reverse engineering di David Thomas, 2023-2024

Progetto iniziato: marzo 2023

Uso di Spectrum Analyser per analizzare il gioco, incluso lo schermo che diventa verde

Questa è una disassemblazione in corso della conversione per ZX Spectrum di Chase H.Q. di Ocean Software. Finora copre solo la versione 48K e il primo livello del gioco. La versione 128K è migliore (carica tutti i livelli in una volta, ha musica AY e animazioni del menu), ma ha molto più codice da considerare, quindi è più facile iniziare dalla versione 48K, livello 1.

Nota: al momento sto lavorando alla versione 128K sul branch "128k".

In questo repository c'è un file control di SkoolKit che puoi usare per disassemblare il gioco. Funziona quando il gioco si trova in uno stato "pristine" appena caricato. Vedi sotto per come creare uno snapshot pristine e le istruzioni su come usare SkoolKit. Ho fornito un Makefile per automatizzare la maggior parte dei passaggi necessari.

La disassemblazione attuale è qui.

Perché?

Per scoprire come funziona! (e forse un giorno potremmo creare nuovi livelli...)

Come fare

  • Installa SkoolKit:
root@kitploit:~
pip3 install skoolkit
  • Scarica e converti il gioco in uno snapshot in formato .z80:
root@kitploit:~
make pristine

Vedrai:

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

Crea un file skool così:

root@kitploit:~
make skool

Un file skool è un listing assembly di alto livello da cui possiamo generare normali listing assembly o disassemblazioni HTML. I file generati vengono inseriti in una directory chiamata 'build' per impostazione predefinita. Puoi modificare il file skool e riconvertirlo in un altro file control così:

root@kitploit:~
make ctl

Questo rende facile riportare le tue modifiche nel file control principale facendo:

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

Oppure puoi fare un diff dei due per essere più selettivo nello staging.

Più grande e dettagliato diventa il file control, migliore sarà la nostra spiegazione del gioco!

Crea un listing assembly così:

root@kitploit:~
make asm

Di solito modifico tenendo aperti tutti e tre i file control, skool e assembly per poter controllare l'impatto delle mie modifiche: Uso di MacVim per modificare i sorgenti

Crea un file tap o z80 da caricare in emulatori o veri Spectrum così:

root@kitploit:~
make tap  # or z80

Come determiniamo come funziona il gioco?

  • L'opzione (1) è eseguire il gioco nel disassemblatore interattivo Spectrum Analyser e cercare indizi.
  • L'opzione (2) è fissare il codice molto intensamente finché non ha senso.

Probabilmente dovrai fare entrambe le cose.

Guarda https://youtu.be/ZcoFi4T4tsU per un breve video in cui uso Spectrum Analyser per scoprire come il gioco costruisce il suo back buffer.

POKEs

Se non sei interessato alla disassemblazione in sé, un bel sottoprodotto sono i POKE per rendere il gioco più facile, più difficile o semplicemente diverso:

  • Crediti infiniti
    POKE 39998,166

  • Tempo infinito
    POKE 39937,0

  • 1 colpo per catturare
    POKE 46351,62

  • Turbo infiniti
    POKE 45221,0

  • Modifica la frequenza di spawn delle auto
    POKE 23834,<frequenza di spawn> -- 20 è il valore predefinito per il Livello 1. 10 farebbe comparire le auto il doppio delle volte.

  • Imposta il colore del livello
    POKE 23796,<byte attributo> -- 112 è nero su giallo, come per il Livello 1. 96 darebbe nero su verde.
    POKE 23797,<byte attributo>

Collegamenti

Thread del forum Spectrum Computing: https://spectrumcomputing.co.uk/forums/viewtopic.php?p=113633

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

Correlati

Il mio precedente progetto di disassemblazione: https://github.com/dpt/The-Great-Escape

Scarica lo strumento