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