mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-08 08:11:34 +00:00
784 B
784 B
argvfuzz
afl supports fuzzing file inputs or stdin. When source is available,
argv-fuzz-inl.h
can be used to change main()
to build argv from stdin.
argvfuzz
tries to provide the same functionality for binaries. When loaded
using LD_PRELOAD
, it will hook the call to __libc_start_main
and replace
argv using the same logic of argv-fuzz-inl.h
.
A few conditions need to be fulfilled for this mechanism to work correctly:
- As it relies on hooking the loader, it cannot work on static binaries.
- If the target binary does not use the default libc's
_start
implementation (crt1.o), the hook may not run. - The hook will replace argv with pointers to
.data
ofargvfuzz.so
. If the target binary expects argv to be living on the stack, things may go wrong.