1个不稳定版本
0.1.0 | 2022年1月24日 |
---|
#640 in 调试
6MB
501 代码行
SLEIGH
Rust版本的Ghidra SLEIGH反汇编器。此库允许您对多个架构的机器代码进行反汇编或转换。
什么是SLEIGH?
SLEIGH是一种用于描述通用微处理器指令集的语言,以便于对其为它们编写的软件进行逆向工程。SLEIGH是为GHIDRA逆向工程平台设计的,并用于详细描述微处理器,以便于GHIDRA的两个主要组件——反汇编和反汇编引擎。
快速入门
将以下内容添加到Cargo.toml中
sleigh = "*"
创建一个反汇编器并反汇编字节码
let mut decompiler = Decompiler::builder().x86(X86Mode::Mode32).build();
let code = b"\x01\xd8"; // ADD EAX, EBX
// Lift bytecodes into SLEIGH IL
let (len, pcodes) = decompiler.translate(&code, 0x1000);
println!("{} {:?}", len, pcodes);
// Disasm bytecodes
let (len, insts) = decompiler.disassemble(&code, 0x1000);
println!("{} {:?}", len, insts);
支持架构
✔️ = 立即可用! 🚧 = 开发中
架构 | 状态 |
---|---|
x86 | ✔️ |
x86_64 | ✔️ |
ARM(v4/5/6/7/8/thumb) | ✔️ |
AArch64 | ✔️ |
MIPS | 🚧 |
PowerPC | 🚧 |
AVR | 🚧 |
Dalvik | ✔️ |
JVM | ✔️ |
待办事项
- 文档
- 详细反汇编操作数
- 详细varnode
贡献
这个代码包正在建设中。如果你发现任何错误,请通知我。欢迎任何PR!
依赖项
~7MB
~148K SLoC