我正在尝试使用libfuzzer对为big endian MIPS架构编写的部分代码进行模糊处理。
我在Debian的小endian机器上运行libfuzzer,发现出现了分段错误。我认为结果并不是100%值得信赖的。如何将libfuzzer与用于大端架构的仿真器一起使用?这个是可能的吗?有没有其他技术可以通过使用模糊来测试小端架构中的大端代码?
发布于 2019-07-11 16:41:34
您可以在主机上将软件交叉编译为big-endian MIPS,然后使用QEMU用户模式仿真。在这种模式下,QEMU在模拟的CPU上运行单个进程,消除了所有模拟的硬件。相反,它只是将系统调用转换到主机内核,因此该进程将访问所有主机文件、网络等--就像您的主机CPU能够执行MIPS指令一样--它现在可能会扰乱您的主机文件等。:)
我并不特别熟悉libfuzzer,但是这个设置至少应该足以验证已经发现的崩溃(假设人们可以相信QEMU足够逼真地模拟MIPS CPU )。AFAIK libfuzzer是一个进程内的fuzzer,所以与AFL不同的是,fuzzed进程在与使用共享内存的单独fuzzer进程通信时应该不会遇到一些问题。
https://stackoverflow.com/questions/56893215
复制相似问题