jackwthake/C02-fuzz

GitHub: jackwthake/C02-fuzz

通过随机生成 C02 源代码并对比解释执行与编译执行的输出差异,来检测编译器实现正确性的差异化测试工具。

Stars: 0 | Forks: 0

# C02-fuzz [![main](https://static.pigsec.cn/wp-content/uploads/repos/cas/d9/d9e65752d8447236a5b8597cc4c3c312cde238bc6d227d29513f49e9e1695fd0.svg)](https://github.com/jackwthake/C02-fuzz/actions/workflows/main.yml) [![docs](https://static.pigsec.cn/wp-content/uploads/repos/cas/7e/7eae97fd2ac8af944908e28d39a282e8dd49ff1f79d3c624d79fb9191f4f3bae.svg)](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语言, 代码生成, 差分测试, 测试工具, 渗透测试工具, 编译器, 自动化攻击, 解释器, 逆向工具