GitXplorerGitXplorer
r

sleigh3rust

public
12 stars
3 forks
0 issues

Commits

List of commits on branch main.
Verified
ba1fa74a87f671ee82282db35be7cc2ab0d70b6b

Merge pull request #3 from hippietrail/patch-1

rrbran committed 2 months ago
Verified
8be5ac279fb249de200fe494437262d919add760

English copyedit

hhippietrail committed 2 months ago
Verified
287d53577f35e73bdf0e9942564dbde747f88fc3

Update to the lastest version of sleigh-rs

rrbran committed 2 years ago
Verified
5ca0f38bceff31bd6c84d5b5e273d732234b4e47

Update Readme

rrbran committed 2 years ago
Verified
3d66a5f086982b6c4bc5b8841d5550e8c40d3fa2

Add 68000 family

rrbran committed 2 years ago
Verified
922d6adf664e7614968db6dd87fb5ffa6e1e3cd7

Update sleigh2rust

rrbran committed 2 years ago

README

The README file for this repository.

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 ✅