jackwthake/C02-fuzz
GitHub: jackwthake/C02-fuzz
通过随机生成 C02 源代码并对比解释执行与编译执行的输出差异,来检测编译器实现正确性的差异化测试工具。
Stars: 0 | Forks: 0
# C02-fuzz
[](https://github.com/jackwthake/C02-fuzz/actions/workflows/main.yml)
[](https://github.com/jackwthake/C02-fuzz/actions/workflows/docs.yml)
针对 [C02](https://github.com/jackwthake/C02) 语言的差异化测试。
一个随机程序生成器会生成 c02 源代码;每个程序都会以两种
方式运行,并比较其结果:
1. **解释执行** — 直接使用 c02 的树遍历解释器。
2. **编译执行** — `cc02` 将相同的源代码编译为 65C02 ROM,并在 [py65](https://github.com/mnaberez/py65) 模拟器中执行(与上游 `emu_test.py` 使用的
测试工具相同)。
两种结果之间的不一致即为一项发现。
`SPEC.md` 是规范语言参考,解释器和生成器都是基于此编写的。`DEVIATIONS.md` 记录了该规范与当前 `cc02` 之间已知的差异 —— 在将某项不一致视为新发现之前,请先查阅此文档。
标签:C02语言, 代码生成, 差分测试, 测试工具, 渗透测试工具, 编译器, 自动化攻击, 解释器, 逆向工具