问题描述
我正在研究如何使用 AFL 对二进制文件进行模糊测试。我知道可以使用 qemu 模式来实现它。但是,使用 qemu 模式确实会影响模糊测试的性能。
因此,我想知道如果我使用 IDA PRO 将目标二进制文件反转为 C 代码,然后使用 afl-gcc 编译 C 代码会怎样? 这个想法会奏效吗?否则会导致失真。
解决方法
可以使用 McSema 等工具对没有源代码的二进制文件进行模糊测试。它将二进制文件提升为 LLVM 位码并允许您fuzz it with libFuzzer。但是正如 user3804799 已经说过的,反编译并不完美。
,根据我的经验,代码应该是可执行的,才能很好地运行模糊测试。如果它是源代码并且您将无法执行它,则模糊测试将无法按预期工作。 但是,当您拥有源代码时,您可以执行静态代码分析。