All Projects → skoolkid → Skoolkit

skoolkid / Skoolkit

Licence: gpl-3.0
A suite of tools for creating disassemblies of ZX Spectrum games.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Skoolkit

Bddisasm
bddisasm is a fast, lightweight, x86/x64 instruction decoder. The project also features a fast, basic, x86/x64 instruction emulator, designed specifically to detect shellcode-like behavior.
Stars: ✭ 540 (+671.43%)
Mutual labels:  disassembler
Ret Sync
ret-sync is a set of plugins that helps to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) with IDA/Ghidra/Binary Ninja disassemblers.
Stars: ✭ 896 (+1180%)
Mutual labels:  disassembler
Peasauce
Peasauce Interactive Disassembler
Stars: ✭ 33 (-52.86%)
Mutual labels:  disassembler
Die Engine
DIE engine
Stars: ✭ 648 (+825.71%)
Mutual labels:  disassembler
Dithumb
Minimal ARM/Thumb linear sweep disassembler similar to objdump
Stars: ✭ 5 (-92.86%)
Mutual labels:  disassembler
Pycdc
C++ python bytecode disassembler and decompiler
Stars: ✭ 842 (+1102.86%)
Mutual labels:  disassembler
Petools
PE Tools - Portable executable (PE) manipulation toolkit
Stars: ✭ 528 (+654.29%)
Mutual labels:  disassembler
Iced
Blazing fast and correct x86/x64 disassembler, assembler, decoder, encoder for .NET, Rust, Python, JavaScript
Stars: ✭ 1,102 (+1474.29%)
Mutual labels:  disassembler
Distorm
Powerful Disassembler Library For x86/AMD64
Stars: ✭ 829 (+1084.29%)
Mutual labels:  disassembler
Medusa
An open source interactive disassembler
Stars: ✭ 946 (+1251.43%)
Mutual labels:  disassembler
Vivisect
Stars: ✭ 672 (+860%)
Mutual labels:  disassembler
Ghidra
Ghidra is a software reverse engineering (SRE) framework
Stars: ✭ 30,371 (+43287.14%)
Mutual labels:  disassembler
Befa Library
High-level library for executable binary file analysis
Stars: ✭ 12 (-82.86%)
Mutual labels:  disassembler
Ghida
Stars: ✭ 549 (+684.29%)
Mutual labels:  disassembler
Pince
A reverse engineering tool that'll supply the place of Cheat Engine for linux
Stars: ✭ 987 (+1310%)
Mutual labels:  disassembler
Capstone
Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings.
Stars: ✭ 5,374 (+7577.14%)
Mutual labels:  disassembler
Chiasm Shell
Python-based interactive assembler/disassembler CLI, powered by Keystone/Capstone.
Stars: ✭ 24 (-65.71%)
Mutual labels:  disassembler
Vidi
ViDi Visual Disassembler (experimental)
Stars: ✭ 67 (-4.29%)
Mutual labels:  disassembler
Redasm
The OpenSource Disassembler
Stars: ✭ 1,042 (+1388.57%)
Mutual labels:  disassembler
Reko
Reko is a binary decompiler.
Stars: ✭ 942 (+1245.71%)
Mutual labels:  disassembler

Build Status Coverage

SkoolKit

SkoolKit is a collection of utilities that can be used to disassemble a Spectrum game (or indeed any piece of Spectrum software written in machine code) into a format known as a skool file. Then, from this skool file, you can use SkoolKit to create a browsable disassembly in HTML format, or a re-assemblable disassembly in ASM format. So the skool file is - from start to finish as you develop it by organising and annotating the code - the common 'source' for both the reader-friendly HTML version of the disassembly, and the developer- and assembler-friendly ASM version of the disassembly.

Requirements

SkoolKit requires Python 3.5+. If you're running Linux or one of the BSDs, you probably already have Python installed. If you're running Windows or Mac OS X, you can get Python here.

Features

With SkoolKit you can:

  • use sna2ctl.py to generate a control file (an attempt to identify routines and data blocks by static analysis) from a snapshot (SNA, SZX or Z80) or raw memory file
  • enable sna2ctl.py to generate a much better control file that more reliably distinguishes code from data by using a code execution map produced by an emulator
  • use sna2skool.py along with this control file to produce a disassembly of a snapshot or raw memory file
  • add annotations to this disassembly (or the control file) as you discover the purpose of each routine and data block
  • use skool2html.py to convert a disassembly into a bunch of HTML files (with annotations in place, and the operands of CALL and JP instructions converted into hyperlinks)
  • use skool2asm.py to convert a disassembly into an assembler source file (also with annotations in place)
  • use skool2ctl.py to convert a disassembly back into a control file (with annotations retained)
  • use skool2bin.py to convert a disassembly into a raw memory file
  • use tap2sna.py to convert a TAP or TZX file into a 'pristine' Z80 snapshot
  • use snapinfo.py to analyse a snapshot or raw memory file and list the BASIC program it contains, show register values, produce a call graph, find tile graphic data, find text, or find sequences of arbitrary byte values
  • use tapinfo.py to analyse the blocks in a TAP or TZX file, and list the BASIC program it contains
  • use bin2tap.py to convert a snapshot or raw memory file into a TAP file
  • use bin2sna.py to convert a raw memory file into a Z80 snapshot
  • use snapmod.py to modify the register values or memory contents in a Z80 snapshot
  • use sna2img.py to convert graphic data in a disassembly, SCR file, snapshot or raw memory file into a PNG image

In an HTML disassembly produced by skool2html.py you can also:

  • use the #UDG, #UDGARRAY, #FONT and #SCR macros to build still and animated PNG images from graphic data
  • use the #R macro in annotations to create hyperlinks between routines and data blocks that refer to each other
  • use [Bug:*], [Fact:*] and [Poke:*] sections in a ref file to neatly render lists of bugs, trivia and POKEs on separate pages

See the user manual for more details (mirror here).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].