mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-13 10:38:07 +00:00
Merge branch 'master' into radamsa
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - file format analyzer
|
||||
-------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -841,7 +841,7 @@ int main(int argc, char** argv) {
|
||||
|
||||
doc_path = access(DOC_PATH, F_OK) ? "docs" : DOC_PATH;
|
||||
|
||||
SAYF(cCYA "afl-analyze" VERSION cRST " by <lcamtuf@google.com>\n");
|
||||
SAYF(cCYA "afl-analyze" VERSION cRST " by Michal Zalewski\n");
|
||||
|
||||
while ((opt = getopt(argc, argv, "+i:f:m:t:eQUWh")) > 0)
|
||||
|
||||
@ -987,7 +987,7 @@ int main(int argc, char** argv) {
|
||||
if (child_timed_out)
|
||||
FATAL("Target binary times out (adjusting -t may help).");
|
||||
|
||||
if (!anything_set()) FATAL("No instrumentation detected.");
|
||||
if (getenv("AFL_SKIP_BIN_CHECK") == NULL && !anything_set()) FATAL("No instrumentation detected.");
|
||||
|
||||
analyze(use_argv);
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - wrapper for GNU as
|
||||
-----------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -499,9 +499,9 @@ int main(int argc, char** argv) {
|
||||
|
||||
clang_mode = !!getenv(CLANG_ENV_VAR);
|
||||
|
||||
if (isatty(2) && !getenv("AFL_QUIET")) {
|
||||
if (!getenv("AFL_QUIET")) {
|
||||
|
||||
SAYF(cCYA "afl-as" VERSION cRST " by <lcamtuf@google.com>\n");
|
||||
SAYF(cCYA "afl-as" VERSION cRST " by Michal Zalewski\n");
|
||||
|
||||
} else
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - common routines
|
||||
--------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - forkserver code
|
||||
--------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Forkserver design by Jann Horn <jannhorn@googlemail.com>
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - bitmap related routines
|
||||
----------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -683,10 +683,12 @@ u8 save_if_interesting(char** argv, void* mem, u32 len, u8 fault) {
|
||||
#endif /* ^!SIMPLE_FILES */
|
||||
|
||||
++unique_crashes;
|
||||
|
||||
if (infoexec) // if the user wants to be informed on new crashes - do that
|
||||
|
||||
if (infoexec) // if the user wants to be informed on new crashes - do
|
||||
// that
|
||||
if (system(infoexec) == -1)
|
||||
hnb += 0; // we dont care if system errors, but we dont want a compiler warning either
|
||||
hnb += 0; // we dont care if system errors, but we dont want a
|
||||
// compiler warning either
|
||||
|
||||
last_crash_time = get_cur_time();
|
||||
last_crash_execs = total_execs;
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - extras relates routines
|
||||
----------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - globals declarations
|
||||
-------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -74,8 +74,8 @@ u8 *in_dir, /* Input directory with test cases */
|
||||
*file_extension, /* File extension */
|
||||
*orig_cmdline; /* Original command line */
|
||||
u8 *doc_path, /* Path to documentation dir */
|
||||
*infoexec, /* Command to execute on a new crash */
|
||||
*out_file; /* File to fuzz, if any */
|
||||
*infoexec, /* Command to execute on a new crash */
|
||||
*out_file; /* File to fuzz, if any */
|
||||
|
||||
u32 exec_tmout = EXEC_TIMEOUT; /* Configurable exec timeout (ms) */
|
||||
u32 hang_tmout = EXEC_TIMEOUT; /* Timeout used for hang det (ms) */
|
||||
@ -125,7 +125,8 @@ u8 skip_deterministic, /* Skip deterministic stages? */
|
||||
deferred_mode, /* Deferred forkserver mode? */
|
||||
fixed_seed, /* do not reseed */
|
||||
fast_cal, /* Try to calibrate faster? */
|
||||
uses_asan; /* Target uses ASAN? */
|
||||
uses_asan, /* Target uses ASAN? */
|
||||
disable_trim; /* Never trim in fuzz_one */
|
||||
|
||||
s32 out_fd, /* Persistent fd for out_file */
|
||||
#ifndef HAVE_ARC4RANDOM
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - initialization related routines
|
||||
------------------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -32,7 +32,7 @@
|
||||
|
||||
void bind_to_free_cpu(void) {
|
||||
|
||||
#if defined(__linux__) || defined(__FreeBSD__)
|
||||
#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
cpu_set_t c;
|
||||
#elif defined(__NetBSD__)
|
||||
cpuset_t* c;
|
||||
@ -117,7 +117,7 @@ void bind_to_free_cpu(void) {
|
||||
}
|
||||
|
||||
closedir(d);
|
||||
#elif defined(__FreeBSD__)
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
struct kinfo_proc* procs;
|
||||
size_t nprocs;
|
||||
size_t proccount;
|
||||
@ -138,7 +138,13 @@ void bind_to_free_cpu(void) {
|
||||
|
||||
for (i = 0; i < proccount; i++) {
|
||||
|
||||
if (procs[i].ki_oncpu < sizeof(cpu_used)) cpu_used[procs[i].ki_oncpu] = 1;
|
||||
#if defined(__FreeBSD__)
|
||||
if (procs[i].ki_oncpu < sizeof(cpu_used) && procs[i].ki_pctcpu > 10)
|
||||
cpu_used[procs[i].ki_oncpu] = 1;
|
||||
#elif defined(__DragonFly__)
|
||||
if (procs[i].kp_lwp.kl_cpuid < sizeof(cpu_used) && procs[i].kp_lwp.kl_pctcpu > 10)
|
||||
cpu_used[procs[i].kp_lwp.kl_cpuid] = 1;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
@ -166,7 +172,8 @@ void bind_to_free_cpu(void) {
|
||||
|
||||
for (i = 0; i < proccount; i++) {
|
||||
|
||||
if (procs[i].p_cpuid < sizeof(cpu_used)) cpu_used[procs[i].p_cpuid] = 1;
|
||||
if (procs[i].p_cpuid < sizeof(cpu_used) && procs[i].p_pctcpu > 0)
|
||||
cpu_used[procs[i].p_cpuid] = 1;
|
||||
|
||||
}
|
||||
|
||||
@ -198,7 +205,7 @@ void bind_to_free_cpu(void) {
|
||||
|
||||
cpu_aff = i;
|
||||
|
||||
#if defined(__linux__) || defined(__FreeBSD__)
|
||||
#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
CPU_ZERO(&c);
|
||||
CPU_SET(i, &c);
|
||||
#elif defined(__NetBSD__)
|
||||
@ -210,7 +217,7 @@ void bind_to_free_cpu(void) {
|
||||
|
||||
#if defined(__linux__)
|
||||
if (sched_setaffinity(0, sizeof(c), &c)) PFATAL("sched_setaffinity failed");
|
||||
#elif defined(__FreeBSD__)
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
if (pthread_setaffinity_np(pthread_self(), sizeof(c), &c))
|
||||
PFATAL("pthread_setaffinity failed");
|
||||
#elif defined(__NetBSD__)
|
||||
@ -727,7 +734,7 @@ void pivot_inputs(void) {
|
||||
use_name += 6;
|
||||
else
|
||||
use_name = rsl;
|
||||
nfn = alloc_printf("%s/queue/id:%06u,orig:%s", out_dir, id, use_name);
|
||||
nfn = alloc_printf("%s/queue/id:%06u,time:0,orig:%s", out_dir, id, use_name);
|
||||
|
||||
#else
|
||||
|
||||
@ -869,7 +876,7 @@ double get_runnable_processes(void) {
|
||||
static double res;
|
||||
|
||||
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || \
|
||||
defined(__NetBSD__)
|
||||
defined(__NetBSD__) || defined(__DragonFly__)
|
||||
|
||||
/* I don't see any portable sysctl or so that would quickly give us the
|
||||
number of runnable processes; the 1-minute load average can be a
|
||||
@ -1603,7 +1610,7 @@ void check_cpu_governor(void) {
|
||||
|
||||
void get_core_count(void) {
|
||||
|
||||
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
|
||||
size_t s = sizeof(cpu_core_count);
|
||||
|
||||
@ -1649,7 +1656,7 @@ void get_core_count(void) {
|
||||
|
||||
cur_runnable = (u32)get_runnable_processes();
|
||||
|
||||
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
|
||||
/* Add ourselves, since the 1-minute average doesn't include that yet. */
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - misc stuffs from Mordor
|
||||
----------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - fuzze_one routines in different flavours
|
||||
---------------------------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -449,7 +449,7 @@ u8 fuzz_one_original(char** argv) {
|
||||
* TRIMMING *
|
||||
************/
|
||||
|
||||
if (!dumb_mode && !queue_cur->trim_done && !custom_mutator) {
|
||||
if (!dumb_mode && !queue_cur->trim_done && !custom_mutator && !disable_trim) {
|
||||
|
||||
u8 res = trim_case(argv, queue_cur, in_buf);
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - python extension routines
|
||||
------------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - queue relates routines
|
||||
---------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - target execution related routines
|
||||
--------------------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -288,10 +288,9 @@ void write_to_testcase(void* mem, u32 len) {
|
||||
|
||||
if (out_file) {
|
||||
|
||||
// unlink(out_file); /* Ignore errors.
|
||||
// */
|
||||
unlink(out_file); /* Ignore errors. */
|
||||
|
||||
fd = open(out_file, O_WRONLY | O_CREAT | O_TRUNC, 0600);
|
||||
fd = open(out_file, O_WRONLY | O_CREAT | O_EXCL, 0600);
|
||||
|
||||
if (fd < 0) PFATAL("Unable to create '%s'", out_file);
|
||||
|
||||
@ -331,10 +330,9 @@ void write_with_gap(void* mem, u32 len, u32 skip_at, u32 skip_len) {
|
||||
|
||||
if (out_file) {
|
||||
|
||||
// unlink(out_file); /* Ignore errors.
|
||||
// */
|
||||
unlink(out_file); /* Ignore errors. */
|
||||
|
||||
fd = open(out_file, O_WRONLY | O_CREAT | O_TRUNC, 0600);
|
||||
fd = open(out_file, O_WRONLY | O_CREAT | O_EXCL, 0600);
|
||||
|
||||
if (fd < 0) PFATAL("Unable to create '%s'", out_file);
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - stats related routines
|
||||
---------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -334,9 +334,9 @@ void show_stats(void) {
|
||||
|
||||
/* Lord, forgive me this. */
|
||||
|
||||
SAYF(SET_G1 bSTG bLT bH bSTOP cCYA
|
||||
SAYF(SET_G1 bSTG bLT bH bSTOP cCYA
|
||||
" process timing " bSTG bH30 bH5 bH bHB bH bSTOP cCYA
|
||||
" overall results " bSTG bH2 bH2 bRT "\n");
|
||||
" overall results " bSTG bH2 bH2 bRT "\n");
|
||||
|
||||
if (dumb_mode) {
|
||||
|
||||
@ -413,9 +413,9 @@ void show_stats(void) {
|
||||
" uniq hangs : " cRST "%-6s" bSTG bV "\n",
|
||||
DTD(cur_ms, last_hang_time), tmp);
|
||||
|
||||
SAYF(bVR bH bSTOP cCYA
|
||||
SAYF(bVR bH bSTOP cCYA
|
||||
" cycle progress " bSTG bH10 bH5 bH2 bH2 bHB bH bSTOP cCYA
|
||||
" map coverage " bSTG bH bHT bH20 bH2 bVL "\n");
|
||||
" map coverage " bSTG bH bHT bH20 bH2 bVL "\n");
|
||||
|
||||
/* This gets funny because we want to print several variable-length variables
|
||||
together, but then cram them into a fixed-width field - so we need to
|
||||
@ -443,9 +443,9 @@ void show_stats(void) {
|
||||
|
||||
SAYF(bSTOP " count coverage : " cRST "%-21s" bSTG bV "\n", tmp);
|
||||
|
||||
SAYF(bVR bH bSTOP cCYA
|
||||
SAYF(bVR bH bSTOP cCYA
|
||||
" stage progress " bSTG bH10 bH5 bH2 bH2 bX bH bSTOP cCYA
|
||||
" findings in depth " bSTG bH10 bH5 bH2 bH2 bVL "\n");
|
||||
" findings in depth " bSTG bH10 bH5 bH2 bH2 bVL "\n");
|
||||
|
||||
sprintf(tmp, "%s (%0.02f%%)", DI(queued_favored),
|
||||
((double)queued_favored) * 100 / queued_paths);
|
||||
@ -514,7 +514,7 @@ void show_stats(void) {
|
||||
|
||||
/* Aaaalmost there... hold on! */
|
||||
|
||||
SAYF(bVR bH cCYA bSTOP
|
||||
SAYF(bVR bH cCYA bSTOP
|
||||
" fuzzing strategy yields " bSTG bH10 bHT bH10 bH5 bHB bH bSTOP cCYA
|
||||
" path geometry " bSTG bH5 bH2 bVL "\n");
|
||||
|
||||
@ -634,13 +634,13 @@ void show_stats(void) {
|
||||
sprintf(tmp, "%s/%s", DI(stage_finds[STAGE_CUSTOM_MUTATOR]),
|
||||
DI(stage_cycles[STAGE_CUSTOM_MUTATOR]));
|
||||
SAYF(bV bSTOP " custom mut. : " cRST "%-36s " bSTG bVR bH20 bH2 bH bRB
|
||||
"\n" bLB bH30 bH20 bH2 bH bRB bSTOP cRST RESET_G1,
|
||||
"\n" bLB bH30 bH20 bH2 bH bRB bSTOP cRST RESET_G1,
|
||||
tmp);
|
||||
|
||||
} else {
|
||||
|
||||
SAYF(bV bSTOP " trim : " cRST "%-36s " bSTG bVR bH20 bH2 bH bRB
|
||||
"\n" bLB bH30 bH20 bH2 bRB bSTOP cRST RESET_G1,
|
||||
"\n" bLB bH30 bH20 bH2 bRB bSTOP cRST RESET_G1,
|
||||
tmp);
|
||||
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop - fuzzer code
|
||||
--------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -126,12 +126,15 @@ static void usage(u8* argv0) {
|
||||
" -V seconds - fuzz for a maximum total time of seconds then "
|
||||
"terminate\n"
|
||||
" -E execs - fuzz for a maximum number of total executions then "
|
||||
"terminate\n\n"
|
||||
"terminate\n"
|
||||
" Note: -V/-E are not precise, they are checked after a queue entry "
|
||||
"is done\n which can be many minutes/execs later\n\n"
|
||||
|
||||
"Other stuff:\n"
|
||||
" -T text - text banner to show on the screen\n"
|
||||
" -M / -S id - distributed mode (see parallel_fuzzing.txt)\n"
|
||||
" -I command - execute this command/script when a new crash is found\n"
|
||||
" -I command - execute this command/script when a new crash is "
|
||||
"found\n"
|
||||
" -B bitmap.txt - mutate a specific test case, use the out/fuzz_bitmap "
|
||||
"file\n"
|
||||
" -C - crash exploration mode (the peruvian rabbit thing)\n"
|
||||
@ -180,7 +183,7 @@ int main(int argc, char** argv) {
|
||||
|
||||
SAYF(cCYA
|
||||
"afl-fuzz" VERSION cRST
|
||||
" based on afl by <lcamtuf@google.com> and a big online community\n");
|
||||
" based on afl by Michal Zalewski and a big online community\n");
|
||||
|
||||
doc_path = access(DOC_PATH, F_OK) ? "docs" : DOC_PATH;
|
||||
|
||||
@ -192,10 +195,7 @@ int main(int argc, char** argv) {
|
||||
|
||||
switch (opt) {
|
||||
|
||||
case 'I':
|
||||
|
||||
infoexec = optarg;
|
||||
break;
|
||||
case 'I': infoexec = optarg; break;
|
||||
|
||||
case 's': {
|
||||
|
||||
@ -645,10 +645,13 @@ int main(int argc, char** argv) {
|
||||
|
||||
}
|
||||
|
||||
if (getenv("AFL_DISABLE_TRIM"))
|
||||
disable_trim = 1;
|
||||
|
||||
if (getenv("AFL_NO_UI") && getenv("AFL_FORCE_UI"))
|
||||
FATAL("AFL_NO_UI and AFL_FORCE_UI are mutually exclusive");
|
||||
|
||||
if (strchr(argv[optind], '/') == NULL)
|
||||
if (strchr(argv[optind], '/') == NULL && !unicorn_mode)
|
||||
WARNF(cLRD
|
||||
"Target binary called without a prefixed path, make sure you are "
|
||||
"fuzzing the right binary: " cRST "%s",
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - wrapper for GCC and clang
|
||||
------------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -131,7 +131,7 @@ static void edit_params(u32 argc, char** argv) {
|
||||
if (!name)
|
||||
name = argv[0];
|
||||
else
|
||||
name++;
|
||||
++name;
|
||||
|
||||
if (!strncmp(name, "afl-clang", 9)) {
|
||||
|
||||
@ -320,6 +320,7 @@ static void edit_params(u32 argc, char** argv) {
|
||||
cc_params[cc_par_cnt++] = "-fno-builtin-strcasecmp";
|
||||
cc_params[cc_par_cnt++] = "-fno-builtin-strncasecmp";
|
||||
cc_params[cc_par_cnt++] = "-fno-builtin-memcmp";
|
||||
cc_params[cc_par_cnt++] = "-fno-builtin-bcmp";
|
||||
cc_params[cc_par_cnt++] = "-fno-builtin-strstr";
|
||||
cc_params[cc_par_cnt++] = "-fno-builtin-strcasestr";
|
||||
|
||||
@ -335,7 +336,7 @@ int main(int argc, char** argv) {
|
||||
|
||||
if (argc == 2 && strcmp(argv[1], "-h") == 0) {
|
||||
|
||||
printf("afl-cc" VERSION " by <lcamtuf@google.com>\n\n");
|
||||
printf("afl-cc" VERSION " by Michal Zalewski\n\n");
|
||||
printf("%s \n\n", argv[0]);
|
||||
printf("afl-gcc has no command line options\n");
|
||||
printf(
|
||||
@ -347,7 +348,7 @@ int main(int argc, char** argv) {
|
||||
|
||||
if (isatty(2) && !getenv("AFL_QUIET")) {
|
||||
|
||||
SAYF(cCYA "afl-cc" VERSION cRST " by <lcamtuf@google.com>\n");
|
||||
SAYF(cCYA "afl-cc" VERSION cRST " by Michal Zalewski\n");
|
||||
SAYF(cYEL "[!] " cBRI "NOTE: " cRST
|
||||
"afl-gcc is deprecated, llvm_mode is much faster and has more "
|
||||
"options\n");
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop - free CPU gizmo
|
||||
-----------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Now maintained by by Marc Heuse <mh@mh-sec.de>,
|
||||
Heiko Eißfeldt <heiko.eissfeldt@hexco.de> and
|
||||
@ -52,18 +52,24 @@
|
||||
#include "types.h"
|
||||
#include "debug.h"
|
||||
|
||||
#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
|
||||
#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__) || defined(__DragonFly__)
|
||||
#define HAVE_AFFINITY 1
|
||||
#if defined(__FreeBSD__)
|
||||
#if defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
#include <pthread.h>
|
||||
#include <pthread_np.h>
|
||||
#if defined(__FreeBSD__)
|
||||
#include <sys/cpuset.h>
|
||||
#endif
|
||||
#define cpu_set_t cpuset_t
|
||||
#elif defined(__NetBSD__)
|
||||
#include <pthread.h>
|
||||
#include <sched.h>
|
||||
#elif defined(__APPLE__)
|
||||
#include <pthread.h>
|
||||
#include <mach/thread_act.h>
|
||||
#include <mach/thread_policy.h>
|
||||
#endif
|
||||
#endif /* __linux__ || __FreeBSD__ || __NetBSD__ */
|
||||
#endif /* __linux__ || __FreeBSD__ || __NetBSD__ || __APPLE__ */
|
||||
|
||||
/* Get unix time in microseconds. */
|
||||
|
||||
@ -138,7 +144,7 @@ int main(int argc, char** argv) {
|
||||
|
||||
if (argc > 1) {
|
||||
|
||||
printf("afl-gotcpu" VERSION " by <lcamtuf@google.com>\n");
|
||||
printf("afl-gotcpu" VERSION " by Michal Zalewski\n");
|
||||
printf("\n%s \n\n", argv[0]);
|
||||
printf("afl-gotcpu does not have command line options\n");
|
||||
printf("afl-gotcpu prints out which CPUs are available\n");
|
||||
@ -150,7 +156,7 @@ int main(int argc, char** argv) {
|
||||
|
||||
u32 cpu_cnt = sysconf(_SC_NPROCESSORS_ONLN), idle_cpus = 0, maybe_cpus = 0, i;
|
||||
|
||||
SAYF(cCYA "afl-gotcpu" VERSION cRST " by <lcamtuf@google.com>\n");
|
||||
SAYF(cCYA "afl-gotcpu" VERSION cRST " by Michal Zalewski\n");
|
||||
|
||||
ACTF("Measuring per-core preemption rate (this will take %0.02f sec)...",
|
||||
((double)CTEST_CORE_TRG_MS) / 1000);
|
||||
@ -164,7 +170,7 @@ int main(int argc, char** argv) {
|
||||
if (!fr) {
|
||||
|
||||
u32 util_perc;
|
||||
#if defined(__linux__) || defined(__FreeBSD__)
|
||||
#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
cpu_set_t c;
|
||||
|
||||
CPU_ZERO(&c);
|
||||
@ -176,9 +182,15 @@ int main(int argc, char** argv) {
|
||||
if (c == NULL) PFATAL("cpuset_create failed");
|
||||
|
||||
cpuset_set(i, c);
|
||||
#elif defined(__APPLE__)
|
||||
thread_affinity_policy_data_t c = { i };
|
||||
thread_port_t native_thread = pthread_mach_thread_np(pthread_self());
|
||||
if (thread_policy_set(native_thread, THREAD_AFFINITY_POLICY,
|
||||
(thread_policy_t)&c, 1) != KERN_SUCCESS)
|
||||
PFATAL("thread_policy_set failed");
|
||||
#endif
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
#if defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
if (pthread_setaffinity_np(pthread_self(), sizeof(c), &c))
|
||||
PFATAL("pthread_setaffinity_np failed");
|
||||
#endif
|
||||
@ -265,7 +277,7 @@ int main(int argc, char** argv) {
|
||||
|
||||
u32 util_perc;
|
||||
|
||||
SAYF(cCYA "afl-gotcpu" VERSION cRST " by <lcamtuf@google.com>\n");
|
||||
SAYF(cCYA "afl-gotcpu" VERSION cRST " by Michal Zalewski\n");
|
||||
|
||||
/* Run a busy loop for CTEST_TARGET_MS. */
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - shared memory related code
|
||||
-------------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Forkserver design by Jann Horn <jannhorn@googlemail.com>
|
||||
|
||||
@ -153,8 +153,6 @@ void setup_shm(unsigned char dumb_mode) {
|
||||
|
||||
shm_str = alloc_printf("%d", shm_id);
|
||||
|
||||
setenv(SHM_ENV_VAR, shm_str, 1);
|
||||
|
||||
/* If somebody is asking us to fuzz instrumented binaries in dumb mode,
|
||||
we don't want them to detect instrumentation, since we won't be sending
|
||||
fork server commands. This should be replaced with better auto-detection
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - map display utility
|
||||
------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Forkserver design by Jann Horn <jannhorn@googlemail.com>
|
||||
|
||||
@ -395,7 +395,7 @@ static void setup_signal_handlers(void) {
|
||||
|
||||
static void show_banner(void) {
|
||||
|
||||
SAYF(cCYA "afl-showmap" VERSION cRST " by <lcamtuf@google.com>\n");
|
||||
SAYF(cCYA "afl-showmap" VERSION cRST " by Michal Zalewski\n");
|
||||
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
american fuzzy lop++ - test case minimizer
|
||||
------------------------------------------
|
||||
|
||||
Originally written by Michal Zalewski <lcamtuf@google.com>
|
||||
Originally written by Michal Zalewski
|
||||
|
||||
Forkserver design by Jann Horn <jannhorn@googlemail.com>
|
||||
|
||||
@ -1032,7 +1032,7 @@ int main(int argc, char** argv) {
|
||||
|
||||
doc_path = access(DOC_PATH, F_OK) ? "docs" : DOC_PATH;
|
||||
|
||||
SAYF(cCYA "afl-tmin" VERSION cRST " by <lcamtuf@google.com>\n");
|
||||
SAYF(cCYA "afl-tmin" VERSION cRST " by Michal Zalewski\n");
|
||||
|
||||
while ((opt = getopt(argc, argv, "+i:o:f:m:t:B:xeQUWh")) > 0)
|
||||
|
||||
|
Reference in New Issue
Block a user