PDF
摘要
AFL因执行速度快而被广泛应用于软件漏洞的测试与发现,但由于依赖于源代码,其应用范围受到了限制.为此,研究人员研制了Linux系统下的无源码模糊测试工具drAFL,但drAFL的开销较大、测试效率偏低.本文在drAFL的基础上,设计并实现了drAFL++,以在Linux系统下实现对无源码二进制程序的模糊测试.相较于drAFL,drAFL++在启动方式和路径记录方式上进行了改进.在启动方式上,drAFL++通过动态二进制插桩工具DynamoRIO实现了Forkserver,并通过Forkserver启动子进程,以执行待测程序,从而提高了模糊测试的启动速度和执行速度.在路径记录方式上,drAFL++通过DynamoRIO对待测程序插桩以获取待测程序的执行路径,同时通过“寄存器+栈”的方式将待测程序的执行路径记录到共享内存中,从而减少了运行时的开销.实验结果表明,drAFL++能比drAFL更快触发崩溃,其平均执行速度是drAFL的1.5~3.7倍,并且能够在某些特定场景下触发AFL无法触发的崩溃.此外,drAFL++还能够与一些现有的工具结合使用,具有较好的可移植性.
关键词
无源码模糊测试
/
DynamoRIO工具
/
启动方式
/
路径记录
Key words
drAFL++:一种Linux系统下的无源码二进制模糊测试工具[J].
小型微型计算机系统, 2025, 46(08): 2041-2048 DOI:10.20009/j.cnki.21-1106/TP.2024-0242