"American Fuzzy Lop"에서는 다음을 볼 수 있습니다.
total tmouts : 16 (5 unique)
하지만 5개의 고유한 tmout을 생성하는 입력은 어디에 있습니까? 출력 디렉터리에서 찾을 수 없습니다: \
답변1
afl-fuzz.c: save_if_interesting() 함수
switch (fault) {
case FAULT_TMOUT:
/* Timeouts are not very interesting, but we're still obliged to keep
a handful of samples. We use the presence of new bits in the
hang-specific bitmap as a signal of uniqueness. In "dumb" mode, we
just keep everything. */
total_tmouts++;
//some_code
fn = alloc_printf("%s/replayable-hangs/id_%06llu", out_dir,
unique_hangs);
따라서 찾고 있는 테스트 케이스는 replayable-hangs 폴더에 있어야 합니다.
하지만 귀하의 경우 대상이 더 관대 한 시간 초과에 대해 양보하지 않으면 폴더가 비어있을 수 있다고 생각합니다.
/* Before saving, we make sure that it's a genuine hang by re-running
the target with a more generous timeout (unless the default timeout
is already generous). */
if (exec_tmout < hang_tmout) {
u8 new_fault;
write_to_testcase(mem, len);
new_fault = run_target(argv, hang_tmout);
/* A corner case that one user reported bumping into: increasing the
timeout actually uncovers a crash. Make sure we don't discard it if
so. */
if (!stop_soon && new_fault == FAULT_CRASH) goto keep_as_crash;
if (stop_soon || new_fault != FAULT_TMOUT) return keeping;
}