2016-10-22 2 views
-3

Ich habe eine Funktion wie printf in Betrieb geschrieben, und ich möchte es auf Fehler überprüfen. afl-fuzz gibt mir eine Eingabedatei, aber ich habe Mühe, darüber nachzudenken, wie ich dies in varargs-Eingabe umwandeln kann.Wie fuzz ich eine stdarg.h Funktion?

Gibt es eine Möglichkeit, eine va_list dynamisch zu konstruieren oder die Argumentliste anderweitig dynamisch aufzubauen?

+1

Vielleicht [libffi] (https://github.com/libffi/libffi), die Bibliothek [Foreign Function Interface] (https://en.wikipedia.org/wiki/Libffi). –

+0

@ Jonathan Das klingt nach einer Idee, ich werde mich darum kümmern – Riking

Antwort

1

dyncall scheint geschrieben worden zu sein, zu tun, was Sie wollen, obwohl ich persönlich nicht daran gewöhnt.

Ein alternativer Ansatz wäre die Generierung von Quellcode, der die betreffende Funktion mit vielen Eingaben aufruft. Es ist viel weniger elegant, aber es sollte einfach zu programmieren sein.