Coldstub/binary-reading-lab
GitHub: Coldstub/binary-reading-lab
一个提供C语言源码到机器码跟踪的公共实验材料库,专注于研究编译优化、符号剥离和编译器差异。
Stars: 0 | Forks: 0
# 二进制阅读实验
本仓库包含关于源码到机器码阅读的公共实验材料,针对一个小型C语言双链表示例。跟踪的文件聚焦于不同优化级别的差异、剥离符号与带符号反汇编的对比、GCC与clang输出对比、Hex-Rays观察结果以及一个小型RAII清理机制的附录。
## 阅读顺序
1. 从 `src/` 开始,查看C和C++源码示例。
2. 阅读 `o_level/o_level_survival_table.md`,然后查看 `o_level/` 目录下从O0到O3的汇编文件。
3. 阅读 `stripped/recognition_signatures.md`,然后查看 `stripped/stripped_vs_symbolized_diff.md` 和 `stripped/stripped_O2_pressure_test.md`。
4. 阅读 `compiler_delta/gcc_vs_clang_delta.md`,然后查看 `compiler_delta/print_list_reload_alias_test.md`。
5. 阅读 `hexrays/hex_rays_distortion_o2.md`,并结合 `hexrays/asm/` 下的机器码节选。
6. 阅读 `raii_probe/` 作为C++清理机制降级的附录证据。
7. 阅读 `TOOLCHAIN.md` 了解所记录的编译器和反汇编环境。
## 证据 / 推断 / 边界 / 待定
**证据:**
- 源码示例跟踪于 `src/` 目录下。
- 不同优化级别的反汇编跟踪于 `o_level/` 目录下。
- 剥离符号的以及编译器对比的反汇编分别跟踪于 `stripped/` 和 `compiler_delta/` 目录。
- 精炼的公开笔记与其对应的证据目录相邻存放:
`o_level/o_level_survival_table.md`,
`stripped/recognition_signatures.md`,
`compiler_delta/gcc_vs_clang_delta.md` 和
`hexrays/hex_rays_distortion_o2.md`。
- 面向Hex-Rays的汇编节选跟踪于 `hexrays/` 目录下。
**推断:**
- 从这些材料中获得的识别线索,对于此特定代码示例家族以及未来的迁移候选案例均有用。
**边界:**
- 编译器对比仅限于所记录的GCC 13.3和clang 18.1产物。
- RAII探针仅为清理机制降级的附录证据。
- RAII探针并非外部验证。
**待定:**
- 外部可迁移性测试已推迟。
- 本仓库并未建立通用的剥离符号二进制文件分析能力。
## 可复现性
`TOOLCHAIN.md` 记录了这些材料所引用的工具版本。重新构建时,应将生成的反汇编与跟踪的文件进行比较,而非假设在不同主机或编译器版本间输出字节完全相同。
标签:C++, clang, GCC, Hex-Rays, RAII, TLS抓取, URL提取, Wayback Machine, 二进制分析, 云安全运维, 云资产清单, 优化级别, 剥离二进制, 反汇编, 反编译, 安全报告生成, 实验室教程, 教育实验室, 数据擦除, 机器码阅读, 源代码分析, 符号化反汇编, 编译优化, 编译器差异, 软件安全, 逆向工程