我在操作中写了一个类似于printf的函数,我想用它来模糊检查bug。 afl-fuzz给了我一个输入文件,但我很难想到一种方法可以把它变成varargs输入。
有没有办法动态构造va_list或以其他方式动态构造参数列表?
答案 0 :(得分:1)
dyncall似乎是为了做你想做的事而写的,虽然我没有亲自使用它。
另一种方法是生成源代码,通过大量输入调用相关函数。它不那么优雅,但编程应该很简单。
答案 1 :(得分:0)
libffi可用于组合变量函数的参数并调用它们。
具体而言,需要使用ffi_prep_cif_var
函数:https://github.com/libffi/libffi/blob/master/doc/libffi.texi#L152-L153