这是实验模块,可为纯Python代码启用 fork服务器和工具。
如何
将此代码(最好是在所有其他模块都导入之后)添加到目标程序中:
import afl
afl . init ()
目前,该工具是通过实现的,只要输入新的本地范围,就会调用该。 您可能需要将主程序的代码包装在一个函数中,才能正确进行检测。
(可选)将此代码添加到目标程序的末尾:
os . _exit ( 0 )
这应该大大加快模糊测试的速度,冒着无法捕获正常退出期间可能发生的错误的风险。
对于持久模式,将经过测试的代码包装在以下循环中:
while afl . loop ( N ):
...
其中N是重新启动之前要处理的输入数。
在这种情况下,您不应调用afl.init() 。
如果您从sys.stdin读取输入,则必须在每次循环迭代sys.stdin其后退:
sys . stdin . see
2021-08-17 09:55:08
37KB
Python
1