1个不稳定版本

0.1.0 2022年1月24日

#640 in 调试

Apache-2.0

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