如何模糊stdarg.h函数?

时间:2016-10-22 03:29:32

标签: c variadic-functions fuzzing

我在操作中写了一个类似于printf的函数,我想用它来模糊检查bug。 afl-fuzz给了我一个输入文件,但我很难想到一种方法可以把它变成varargs输入。

有没有办法动态构造va_list或以其他方式动态构造参数列表?

2 个答案:

答案 0 :(得分:1)

dyncall似乎是为了做你想做的事而写的,虽然我没有亲自使用它。

另一种方法是生成源代码,通过大量输入调用相关函数。它不那么优雅,但编程应该很简单。

答案 1 :(得分:0)

libffi可用于组合变量函数的参数并调用它们。

具体而言,需要使用ffi_prep_cif_var函数:https://github.com/libffi/libffi/blob/master/doc/libffi.texi#L152-L153