Skip to content

A demontration of disassemblers generated by sleigh2rust

Notifications You must be signed in to change notification settings

rbran/sleigh3rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is just a demonstration of what sleigh-rs and sleigh2rust are able to accomplish.

The code in each folder was generated by parsing the sleigh files from ghidra using sleigh-rs, then generating the rust code with sleigh2rust. The sleigh3test uses this crate to execute basic disassembly tests.

This project still in an early PoC (Proof-of-Concept) stage.

Each CPU is located in its own crate, they are compiled as dylib.

The create dyn-test includes multiple tests that will load and test each cpu architecture.

The objective of this project is to implement an MVP disassembler/emulator. Currently the code generated is unecessarelly verbose and slow, because this is not the goal at this stage of the project.

List of CPUs and variants:

✅: Implemented 🚧: Under Construction

Family Variant Disassembler
68000 68020
68000 68030
68000 68040
68000 coldfire
HCS12 HCS12
Atmel avr8
Atmel avr8e
Atmel avr32a 🚧
Atmel avr8xmega 🚧
Atmel avr8eind 🚧
8048 8048 🚧
PA-RISC pa-risc32be
RISCV riscv.ilp32d
RISCV riscv.lp64d
V850 V850
6502 6502
6502 65c02
CR16 CR16B
CR16 CR16C
Z80 z80
Z80 z180
HCS08 HC05
HCS08 HC08
HCS08 HCS08
tricore tricore
MC6800 6805
MC6800 6809
MC6800 H6309
MCS96 MCS96
TI_MSP430 TI_MSP430 🚧
TI_MSP430 TI_MSP430X 🚧
CP1600 CP1600
M8C m8c
8051 8051
8051 80251
8051 80390
8051 mx51
8085 8085
MIPS mips32be
MIPS mips32le
MIPS mips32R6be
MIPS mips32R6le
MIPS mips64be
MIPS mips64le
AARCH64 AARCH64
AARCH64 AARCH64BE
AARCH64 AARCH64_AppleSilicon
JVM JVM
Dalvik Dalvik_Base
Dalvik Dalvik_ODEX_KitKat
Dalvik Dalvik_DEX_KitKat
Dalvik Dalvik_DEX_Lollipop
Dalvik Dalvik_DEX_Marshmallow
Dalvik Dalvik_DEX_Nougat
Dalvik Dalvik_DEX_Oreo
Dalvik Dalvik_DEX_Pie
Dalvik Dalvik_DEX_Android10
Dalvik Dalvik_DEX_Android11
Dalvik Dalvik_DEX_Android12
PowerPC ppc_32_be
PowerPC ppc_32_le
PowerPC ppc_32_quicciii_be
PowerPC ppc_32_quicciii_le
PowerPC ppc_32_4xx_be
PowerPC ppc_32_4xx_le
PowerPC ppc_64_be
PowerPC ppc_64_le
PowerPC ppc_64_isa_be
PowerPC ppc_64_isa_le
PowerPC ppc_64_isa_altivec_be
PowerPC ppc_64_isa_altivec_le
PowerPC ppc_64_isa_altivec_vle_be
PowerPC ppc_64_isa_vle_be
x86 x86
x86 x86_64
Sparc SparcV9_32
Sparc SparcV9_64
ARM ARM4_be
ARM ARM4_le
ARM ARM4t_be
ARM ARM4t_le
ARM ARM5_be
ARM ARM5_le
ARM ARM5t_be
ARM ARM5t_le
ARM ARM6_be
ARM ARM6_le
ARM ARM7_be
ARM ARM7_le
ARM ARM8_be
ARM ARM8_le
SuperH4 SuperH4_be
SuperH4 SuperH4_le
SuperH sh-1
SuperH sh-2
SuperH sh-2a
Toy toy_builder_be_align2
Toy toy_builder_le_align2
Toy toy_builder_le
Toy toy_be_posStack
Toy toy_builder_be
Toy toy_wsz_be
Toy toy_wsz_le
Toy toy_be
Toy toy_le
Toy toy64_be
Toy toy64_le
Toy toy64_be_harvard
PIC pic12c5xx
PIC pic16c5x
PIC pic16
PIC pic16f
PIC pic17c7xx
PIC pic18
PIC PIC24E
PIC PIC24F
PIC PIC24H
PIC dsPIC30F
PIC dsPIC33C
PIC dsPIC33E
PIC dsPIC33F

About

A demontration of disassemblers generated by sleigh2rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages