AFL에 총 tmout이 어디에 저장되어 있나요?

AFL에 총 tmout이 어디에 저장되어 있나요?

"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;
  
        }

관련 정보