Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/dpt/chasehq
Rétro-ingénierieSécurité Matériel et IoTAnalyse de BinairesApprentissage et Éducation
GitHubdpt/chasehq

ChaseHQ

Chase H.Q. pour ZX Spectrum — rétro-ingénierie et reconstruction en C portable

Voir le dépôtSite web
342il y a 17 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Démonter Chase H.Q. pour ZX Spectrum

Rétro-ingénierie par David Thomas, 2023-2024

Projet démarré : mars 2023

Utilisation de Spectrum Analyser pour examiner le jeu, notamment en verdissant l'écran

Ceci est un désassemblage en cours de la conversion ZX Spectrum de Chase H.Q. par Ocean Software. Jusqu'à présent, cela ne couvre que la version 48K et le premier niveau du jeu. La version 128K est meilleure (elle charge tous les niveaux d'un coup, propose de la musique AY et des animations sur l'écran de menu), mais elle contient beaucoup plus de code à analyser, il est donc plus facile de commencer par la version 48K, niveau 1.

Note : je travaille actuellement sur la version 128K dans la branche « 128k ».

Ce dépôt contient un fichier control SkoolKit que vous pouvez utiliser pour désassembler le jeu. Cela fonctionne lorsque le jeu est dans un état « pristine » (tout juste chargé). Voir ci-dessous pour savoir comment créer un instantané pristine et comment piloter SkoolKit. J'ai fourni un Makefile pour automatiser la plupart des étapes nécessaires.

Le désassemblage actuel se trouve ici.

Pourquoi ?

Pour découvrir comment ça fonctionne ! (et peut-être qu'un jour nous pourrons créer de nouveaux niveaux...)

Comment faire

  • Installer SkoolKit :
root@kitploit:~
pip3 install skoolkit
  • Télécharger et convertir le jeu en un instantané au format .z80 :
root@kitploit:~
make pristine

Vous verrez :

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

Construire un fichier skool de cette manière :

root@kitploit:~
make skool

Un fichier skool est un listing assembleur de haut niveau à partir duquel nous pouvons générer des listing assembleur classiques ou des désassemblages HTML. Par défaut, les fichiers générés sont placés dans un répertoire appelé « build ». Vous pouvez modifier le fichier skool et le reconvertir en un autre fichier control comme ceci :

root@kitploit:~
make ctl

Cela permet de réintégrer facilement vos modifications dans le fichier control principal en faisant :

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

Vous pouvez également faire un diff entre les deux pour être plus sélectif dans votre intégration.

Plus le fichier control est volumineux et détaillé, meilleure est notre explication du jeu !

Construire un listing assembleur de cette manière :

root@kitploit:~
make asm

J'édite généralement avec les trois fichiers control, skool et assembleur ouverts afin de vérifier l'impact de mes modifications : Utilisation de MacVim pour éditer les sources

Construire un fichier tap ou z80 à charger dans des émulateurs ou de vrais Spectrum comme ceci :

root@kitploit:~
make tap  # or z80

Comment déterminer le fonctionnement du jeu ?

  • L'option (1) consiste à exécuter le jeu dans le désassembleur interactif Spectrum Analyser et à chercher des indices.
  • L'option (2) consiste à fixer le code très intensément jusqu'à ce qu'il ait du sens.

Vous devrez probablement faire les deux.

Voir https://youtu.be/ZcoFi4T4tsU pour une courte vidéo de moi utilisant Spectrum Analyser pour découvrir comment le jeu construit son tampon arrière (back buffer).

POKEs

Si le désassemblage en lui-même ne vous intéresse pas, un sous-produit intéressant est les POKEs pour rendre le jeu plus facile, plus difficile, ou simplement différent :

  • Crédits infinis
    POKE 39998,166

  • Temps infini
    POKE 39937,0

  • 1 coup pour capturer
    POKE 46351,62

  • Turbos infinis
    POKE 45221,0

  • Modifier le taux d'apparition des voitures
    POKE 23834,<taux d'apparition> -- 20 est la valeur par défaut pour le niveau 1. 10 ferait apparaître les voitures deux fois plus souvent.

  • Définir la couleur du niveau
    POKE 23796,<octet d'attribut> -- 112 correspond à noir sur jaune, comme pour le niveau 1. 96 donnerait noir sur vert.
    POKE 23797,<octet d'attribut>

Liens

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

Jouer à Chase H.Q. en ligne : http://torinak.com/qaop#!chasehq

Liens connexes

Mon précédent projet de désassemblage : https://github.com/dpt/The-Great-Escape

Télécharger l’outil