我已经写了一个类似于printf的函数,我想用它来检查错误。 afl-fuzz给了我一个输入文件,但我正在努力想办法把它变成可变参数输入。如何模糊stdarg.h函数?
有什么办法来动态构建一个va_list或以其他方式动态构造参数列表?
我已经写了一个类似于printf的函数,我想用它来检查错误。 afl-fuzz给了我一个输入文件,但我正在努力想办法把它变成可变参数输入。如何模糊stdarg.h函数?
有什么办法来动态构建一个va_list或以其他方式动态构造参数列表?
dyncall似乎已经写入你想要做什么,虽然我没有亲自使用过它。
另一种方法是生成源代码,用大量输入调用有问题的函数。它不太优雅,但它应该是直接编程。
libffi可用于将参数组装到可变参数函数中并调用它们。
具体来说,ffi_prep_cif_var
功能需要使用:https://github.com/libffi/libffi/blob/master/doc/libffi.texi#L152-L153
也许[libffi](https://github.com/libffi/libffi),[外部函数接口](https://en.wikipedia.org/wiki/Libffi)库。 –
@Jonathan这听起来像是一个想法,我会研究它 – Riking