target hash

This commit is contained in:
vanhauser-thc 2024-06-07 11:48:58 +02:00
parent 92cbdb9f45
commit f0937f96d4
3 changed files with 20 additions and 0 deletions

View File

@ -2,6 +2,7 @@
## Must ## Must
- fast restart of afl-fuzz if cmdline + target hash is the same
- hardened_usercopy=0 page_alloc.shuffle=0 - hardened_usercopy=0 page_alloc.shuffle=0
- add value_profile but only enable after 15 minutes without finds - add value_profile but only enable after 15 minutes without finds
- cmplog max items env? - cmplog max items env?

View File

@ -1278,6 +1278,7 @@ void get_core_count(afl_state_t *);
void fix_up_sync(afl_state_t *); void fix_up_sync(afl_state_t *);
void check_asan_opts(afl_state_t *); void check_asan_opts(afl_state_t *);
void check_binary(afl_state_t *, u8 *); void check_binary(afl_state_t *, u8 *);
u64 get_binary_hash(u8 *fn);
void check_if_tty(afl_state_t *); void check_if_tty(afl_state_t *);
void save_cmdline(afl_state_t *, u32, char **); void save_cmdline(afl_state_t *, u32, char **);
void read_foreign_testcases(afl_state_t *, int); void read_foreign_testcases(afl_state_t *, int);

View File

@ -51,6 +51,8 @@
#include <fcntl.h> #include <fcntl.h>
#include <signal.h> #include <signal.h>
#include "hash.h"
u8 be_quiet = 0; u8 be_quiet = 0;
u8 *doc_path = ""; u8 *doc_path = "";
u8 last_intr = 0; u8 last_intr = 0;
@ -167,6 +169,22 @@ void set_sanitizer_defaults() {
} }
u64 get_binary_hash(u8 *fn) {
int fd = open(fn, O_RDONLY);
if (fd < 0) { PFATAL("Unable to open '%s'", fn); }
struct stat st;
if (fstat(fd, &st) < 0) { PFATAL("Unable to fstat '%s'", fn); }
u32 f_len = st.st_size;
u8 *f_data = mmap(0, f_len, PROT_READ, MAP_PRIVATE, fd, 0);
if (f_data == MAP_FAILED) { PFATAL("Unable to mmap file '%s'", fn); }
close(fd);
u64 hash = hash64(f_data, f_len, 0);
if (munmap(f_data, f_len)) { PFATAL("unmap() failed"); }
return hash;
}
u32 check_binary_signatures(u8 *fn) { u32 check_binary_signatures(u8 *fn) {
int ret = 0, fd = open(fn, O_RDONLY); int ret = 0, fd = open(fn, O_RDONLY);