Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ChaseHQ — ZX Spectrum용 Chase H.Q. — 리버스 엔지니어링을 거쳐 이식 가능한 C 언어로 재구성됨 | Kitploit
도구/GitHubGitHub/dpt/chasehq
Reverse EngineeringHardware & IoT SecurityBinary AnalysisLearning & Education
GitHubdpt/chasehq

ChaseHQ

ZX Spectrum용 Chase H.Q. — 리버스 엔지니어링을 거쳐 이식 가능한 C 언어로 재구성됨

저장소 보기웹사이트
3421일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ZX Spectrum용 Chase H.Q. 분석하기

David Thomas의 리버스 엔지니어링, 2023-2024

프로젝트 시작: 2023년 3월

스펙트럼 애널라이저를 사용해 게임을 조사하는 모습, 화면을 녹색으로 바꾸는 것 포함

이것은 Ocean Software의 Chase H.Q. ZX Spectrum 버전에 대한 진행 중인 디스어셈블리입니다. 현재까지는 48K 버전과 게임의 첫 번째 스테이지만 다룹니다. 128K 버전이 더 낫지만(모든 레벨을 한 번에 로드하고, AY 음악과 메뉴 화면 애니메이션이 있음) 고려해야 할 코드가 훨씬 많기 때문에 먼저 48K 스테이지 1부터 시작하는 것이 더 쉽습니다.

참고: 현재 "128k" 브랜치에서 128K 버전 작업 중입니다.

이 저장소에는 게임을 디스어셈블하는 데 사용할 수 있는 SkoolKit 컨트롤 파일이 있습니다. 이 파일은 게임이 "원본 그대로" 막 로드된 상태일 때 작동합니다. 원본 스냅샷을 만드는 방법과 SkoolKit 사용 방법은 아래를 참조하세요. 필요한 대부분의 단계를 자동화하는 Makefile을 제공했습니다.

현재 디스어셈블리는 여기에서 볼 수 있습니다.

왜?

어떻게 작동하는지 알아내기 위해서입니다! (그리고 언젠가는 새로운 레벨을 만들 수도 있겠죠...)

방법

  • SkoolKit 설치:
root@kitploit:~
pip3 install skoolkit
  • 게임을 다운로드하여 .z80 형식 스냅샷으로 변환:
root@kitploit:~
make pristine

그러면 다음과 같이 표시됩니다:

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

다음과 같이 스쿨(skool) 파일을 빌드:

root@kitploit:~
make skool

스쿨 파일은 일반 어셈블리 목록이나 HTML 디스어셈블리를 생성할 수 있는 고수준 어셈블리 목록입니다. 생성된 파일은 기본적으로 'build'라는 디렉터리에 저장됩니다. 스쿨 파일을 편집한 후 다음과 같이 다시 컨트롤 파일로 변환할 수 있습니다:

root@kitploit:~
make ctl

이렇게 하면 다음과 같이 변경 사항을 기본 컨트롤 파일로 쉽게 다시 가져올 수 있습니다:

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

또는 두 파일을 diff하여 스테이징을 더 선택적으로 할 수 있습니다.

컨트롤 파일이 더 크고 상세할수록 게임에 대한 설명이 더 좋아집니다!

다음과 같이 어셈블리 목록을 빌드:

root@kitploit:~
make asm

저는 보통 컨트롤, 스쿨, 어셈블리 파일 세 개를 모두 열어 두고 편집하면서 변경 사항의 영향을 확인합니다: MacVim으로 소스 편집하기

다음과 같이 에뮬레이터나 실제 Spectrum에 로드하기 위한 tap 또는 z80 파일을 빌드:

root@kitploit:~
make tap  # or z80

게임이 어떻게 작동하는지 어떻게 알아낼까?

  • 방법 (1)은 Spectrum Analyser 대화형 디스어셈블러에서 게임을 실행하고 단서를 찾는 것입니다.
  • 방법 (2)는 코드를 정말 열심히 쳐다보며 이해될 때까지 기다리는 것입니다.

아마 두 가지를 모두 해야 할 것입니다.

게임이 백 버퍼를 어떻게 구성하는지 알아내기 위해 Spectrum Analyser를 실행하는 짧은 영상은 https://youtu.be/ZcoFi4T4tsU 에서 볼 수 있습니다.

POKE

디스어셈블리 자체에 관심이 없다면, 게임을 더 쉽게, 더 어렵게, 또는 그냥 다르게 만드는 POKE가 좋은 부산물이 될 것입니다:

  • 무한 크레딧
    POKE 39998,166

  • 무한 시간
    POKE 39937,0

  • 체포까지 1회 적중
    POKE 46351,62

  • 무한 터보
    POKE 45221,0

  • 차량 스폰율 변경
    POKE 23834,<스폰율> -- 20은 스테이지 1의 기본값입니다. 10은 두 배 더 자주 스폰됩니다.

  • 레벨 색상 설정
    POKE 23796,<속성 바이트> -- 112는 스테이지 1과 같이 노란색 바탕에 검은색입니다. 96은 녹색 바탕에 검은색이 됩니다.
    POKE 23797,<속성 바이트>

링크

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

도구 다운로드