ZhangZhuoSJTU/tiny-dec
GitHub: ZhangZhuoSJTU/tiny-dec
一个面向教学的迷你反编译器,通过 19 个独立阶段将 RISC-V RV32I 二进制文件逐步还原为可读 C 代码,帮助学习者从零理解反编译原理。
Stars: 86 | Forks: 4
通过从零开始构建反编译器来学习反编译。
19 个阶段。每个步骤都可检查。从原始的 RISC-V 字节到可读的 C 代码。
RV32I:最简单的真实 ISA,因此重点始终放在反编译上,而不是指令编码。
| 汇编 (RV32I) | 反编译输出 |
|---|---|
| ``` ; parse_record addi x2, x2, -32 sw x1, 28(x2) sw x8, 24(x2) addi x8, x2, 32 sw x10, -12(x8) sw x11, -16(x8) addi x10, x0, 0 sw x10, -20(x8) sw x10, -24(x8) jal x0, 0x11154 lw x10, -24(x8) lw x11, -16(x8) bge x10, x11, 0x111b8 lw x10, -12(x8) lw x11, -24(x8) slli x11, x11, 3 add x10, x10, x11 lw x11, 0(x10) lw x10, -20(x8) add x10, x10, x11 sw x10, -20(x8) lw x10, -12(x8) lw x11, -24(x8) slli x11, x11, 3 add x10, x10, x11 lw x11, 4(x10) lw x10, -20(x8) add x10, x10, x11 sw x10, -20(x8) lw x10, -24(x8) addi x10, x10, 1 sw x10, -24(x8) jal x0, 0x11154 lw x10, -20(x8) lw x1, 28(x2) lw x8, 24(x2) addi x2, x2, 32 jalr x0, 0(x1) ``` |
```
#include |
标签:Clang, DNS解析, DNS重绑定攻击, LLVM, Python, RISC-V, RV32I, SSA, TLS抓取, 中间表示, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 代码分析, 凭证管理, 反编译器, 安全规则引擎, 开源项目, 指令集架构, 控制流分析, 教育工具, 无后门, 汇编, 编程教学, 编译原理, 软件安全, 逆向工具, 逆向工程, 静态分析
