# tiny-dec 教学用反编译器

> Zhuo Zhang 用 Python 编写的小型教学用反编译器，面向 32 位 RISC-V（RV32I）ELF 文件，目的是讲清反编译的工作原理，而非与生产级反编译器竞争。它把流程刻意拆成 19 个独立阶段：从 ELF 加载、指令解码和 p-code 提升，经过 SSA、栈、类型、变量和取值范围恢复，再到控制流结构化和 C 代码输出；命令行可在任一阶段停下，打印该阶段的中间结果。README 还提供一个 Claude Code 插件，其中的 AI 导师会结合小测和练习，带学习者逐个阶段学习。

- 类型：学习资源
- 目标：二进制
- 类别：学习资源
- 关联：学习资源
- 来源复核于：2026-10-19
- 收录于：2026-10-27
- 原始资源：<https://github.com/ZhangZhuoSJTU/tiny-dec>
- 一手来源：<https://github.com/ZhangZhuoSJTU/tiny-dec/blob/4f5f1e00a147ba1c1471d2e01f9dd4beb5a693d6/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/tiny-dec/>
- 记录 JSON：<https://awesomerea.org/resources/tiny-dec/record.json>
- 英文版：[English](https://awesomerea.org/resources/tiny-dec/index.md)

## 使用条件与局限

- 审阅提交为 4f5f1e0（2026-05-27），也是仓库唯一的提交；软件包版本为 0.1.0，仓库的测试和代码检查工作流在该提交上均已通过。README 称它是教学工具而非生产级反编译器：只支持 RV32I，无法解析的表达式以 raw<...> 形式保留在输出中，而不作猜测。在线演示站点 tiny-dec.zzhang.xyz 展示了各个阶段。
- 输入为 RV32I ELF 文件。仓库在 tests/fixtures 下提交了 13 个 C 测试程序及其 39 个 RV32I 构建（-O0 与 -O2，PIE 与非 PIE），因此无需任何外部二进制文件。重新构建这些程序或编译自己的 C 代码，需要支持 RISC-V 的 clang、lld 和 LLVM，可在本地安装，也可使用仓库附带的 Docker 开发镜像。
- 需要 Python 3.12+ 和 Poetry，加载器把 ELF 解析交给 pwntools；README 列出了 Ubuntu/Debian 系统依赖，仓库还附带 devcontainer 配置。AI 导师需要 Claude Code，通过仓库中的插件市场清单安装为插件；其技能文件为流水线的每个阶段各准备了一份课程指南。
- 采用 MIT 许可证（Copyright 2026 Zhuo Zhang）。500 个测试的数量和示例输出均出自作者。该导师是 AI 教学辅助。

## 一手来源

1. <https://github.com/ZhangZhuoSJTU/tiny-dec/blob/4f5f1e00a147ba1c1471d2e01f9dd4beb5a693d6/README.md>
2. <https://github.com/ZhangZhuoSJTU/tiny-dec/blob/4f5f1e00a147ba1c1471d2e01f9dd4beb5a693d6/pyproject.toml>
3. <https://github.com/ZhangZhuoSJTU/tiny-dec/blob/4f5f1e00a147ba1c1471d2e01f9dd4beb5a693d6/LICENSE>
4. <https://github.com/ZhangZhuoSJTU/tiny-dec/blob/4f5f1e00a147ba1c1471d2e01f9dd4beb5a693d6/DEVELOPMENT_NOTES.md>
5. <https://github.com/ZhangZhuoSJTU/tiny-dec/blob/4f5f1e00a147ba1c1471d2e01f9dd4beb5a693d6/.github/workflows/ci.yml>
6. <https://github.com/ZhangZhuoSJTU/tiny-dec/blob/4f5f1e00a147ba1c1471d2e01f9dd4beb5a693d6/.claude-plugin/plugin.json>
7. <https://github.com/ZhangZhuoSJTU/tiny-dec/tree/4f5f1e00a147ba1c1471d2e01f9dd4beb5a693d6/skills/teach-decompilation>
8. <https://github.com/ZhangZhuoSJTU/tiny-dec/tree/4f5f1e00a147ba1c1471d2e01f9dd4beb5a693d6/tests/fixtures>
9. <https://tiny-dec.zzhang.xyz/>

## 同分区更多条目：文档与学习资源

- [逆向工程阅读清单（onethawt）](https://awesomerea.org/zh/resources/onethawt-re-reading-list/index.md) · 学习资源
- [Decomp Academy 一致性反编译课程](https://awesomerea.org/zh/resources/decomp-academy/index.md) · 学习资源
- [OWASP 固件安全测试方法论（FSTM）](https://awesomerea.org/zh/resources/owasp-fstm/index.md) · 学习资源
- [Emproof 固件逆向工程研讨会](https://awesomerea.org/zh/resources/emproof-firmware-re-workshop/index.md) · 学习资源
- [《iOS 应用逆向工程》英文版](https://awesomerea.org/zh/resources/ios-app-reverse-engineering-book/index.md) · 学习资源
- [Frida Snippets Frida 插桩示例集](https://awesomerea.org/zh/resources/frida-snippets/index.md) · 学习资源

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
