Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ChaseHQ — Chase H.Q. para ZX Spectrum: sometido a ingeniería inversa y reconstruido en C portátil | Kitploit
Herramientas/GitHubGitHub/dpt/chasehq
Ingeniería InversaSeguridad de Hardware e IoTAnálisis de BinariosAprendizaje y Educación
GitHubdpt/chasehq

ChaseHQ

Chase H.Q. para ZX Spectrum: sometido a ingeniería inversa y reconstruido en C portátil

Ver RepositorioSitio web
342hace 1 díaRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Desmontando Chase H.Q. para el ZX Spectrum

Ingeniería inversa por David Thomas, 2023-2024

Proyecto iniciado: marzo de 2023

Usando Spectrum Analyser para investigar el juego, incluyendo el poner la pantalla en verde

Este es un desensamblado en curso de la conversión de Chase H.Q. para ZX Spectrum realizada por Ocean Software. Por ahora solo cubre la versión de 48K y la primera fase del juego. La versión de 128K es mejor (carga todos los niveles a la vez, tiene música AY y animaciones en la pantalla de menú) pero tiene mucho más código que considerar, así que es más fácil empezar primero con la fase 1 de 48K.

Nota: actualmente estoy trabajando en la versión de 128K en la rama "128k".

En este repositorio hay un archivo control de SkoolKit que puedes usar para desensamblar el juego. Esto funciona con el juego cuando está en un estado "pristine" recién cargado. Más abajo se indica cómo crear una instantánea "pristine" y las instrucciones para manejar SkoolKit. He incluido un Makefile para automatizar la mayoría de los pasos necesarios.

El desensamblado actual está aquí.

¿Por qué?

¡Para descubrir cómo funciona! (y quizá algún día podamos crear niveles nuevos...)

Cómo hacerlo

  • Instala SkoolKit:
root@kitploit:~
pip3 install skoolkit
  • Descarga y convierte el juego en una instantánea en formato .z80:
root@kitploit:~
make pristine

Verás:

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

Genera un archivo skool así:

root@kitploit:~
make skool

Un archivo skool es un listado de ensamblador de alto nivel a partir del cual podemos generar listados de ensamblador normales o desensamblados HTML. Los archivos generados se colocan en un directorio llamado 'build' por defecto. Puedes editar el archivo skool y volver a convertirlo en otro archivo de control de la siguiente manera:

root@kitploit:~
make ctl

Esto facilita incorporar tus cambios de nuevo al archivo de control principal ejecutando:

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

O puedes comparar ambos con diff para ser más selectivo en la preparación de los cambios.

¡Cuanto más grande y detallado sea el archivo de control, mejor será nuestra explicación del juego!

Genera un listado de ensamblador así:

root@kitploit:~
make asm

Normalmente edito con los tres archivos (control, skool y ensamblador) abiertos para comprobar el impacto de mis cambios: Usando MacVim para editar las fuentes

Genera un archivo tap o z80 para cargarlo en emuladores o Spectrums reales así:

root@kitploit:~
make tap  # or z80

¿Cómo determinamos cómo funciona el juego?

  • La opción (1) es ejecutar el juego en el desensamblador interactivo Spectrum Analyser y buscar pistas.
  • La opción (2) es mirar el código muy fijamente hasta que tenga sentido.

Probablemente tendrás que hacer ambas cosas.

Mira https://youtu.be/ZcoFi4T4tsU para ver un breve vídeo de mí ejecutando Spectrum Analyser para averiguar cómo el juego construye su búfer trasero.

POKEs

Si no te interesa el desensamblado en sí, un buen subproducto son los POKEs para hacer el juego más fácil, más difícil o simplemente distinto:

  • Créditos infinitos
    POKE 39998,166

  • Tiempo infinito
    POKE 39937,0

  • 1 golpe para capturar
    POKE 46351,62

  • Turbos infinitos
    POKE 45221,0

  • Modificar la frecuencia de aparición de coches
    POKE 23834,<spawn rate> -- 20 es el valor por defecto para la fase 1. 10 haría que aparecieran el doble de veces.

  • Establecer el color del nivel
    POKE 23796,<attribute byte> -- 112 es negro sobre amarillo, como en la fase 1. 96 daría negro sobre verde.
    POKE 23797,<attribute byte>

Enlaces

Hilo de los foros de Spectrum Computing: https://spectrumcomputing.co.uk/forums/viewtopic.php?p=113633

Juega a Chase H.Q. en línea: http://torinak.com/qaop#!chasehq

Relacionados

Mi proyecto anterior de desensamblado: https://github.com/dpt/The-Great-Escape

Descargar herramienta