mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-14 19:08:08 +00:00
less problematic definitions
This commit is contained in:
@ -18,8 +18,11 @@ libAFLDriver.a: aflpp_driver.o
|
|||||||
ar ru libAFLDriver.a aflpp_driver.o
|
ar ru libAFLDriver.a aflpp_driver.o
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
|
$(LLVM_BINDIR)clang++ -Wno-deprecated -I../../include $(FLAGS) -D_DEBUG=\"1\" -c -o afl-performance.o ../../src/afl-performance.c
|
||||||
$(LLVM_BINDIR)clang++ -I../../include -D_DEBUG=\"1\" -g -stdlib=libc++ -funroll-loops -std=c++11 -c aflpp_driver.cpp
|
$(LLVM_BINDIR)clang++ -I../../include -D_DEBUG=\"1\" -g -stdlib=libc++ -funroll-loops -std=c++11 -c aflpp_driver.cpp
|
||||||
ar ru libAFLDriver.a aflpp_driver.o
|
#$(LLVM_BINDIR)clang++ -S -emit-llvm -Wno-deprecated -I../../include $(FLAGS) -D_DEBUG=\"1\" -c -o afl-performance.ll ../../src/afl-performance.c
|
||||||
|
#$(LLVM_BINDIR)clang++ -S -emit-llvm -I../../include -D_DEBUG=\"1\" -g -stdlib=libc++ -funroll-loops -std=c++11 -c aflpp_driver.cpp
|
||||||
|
ar ru libAFLDriver.a afl-performance.o aflpp_driver.o
|
||||||
|
|
||||||
aflpp_qemu_driver.o: aflpp_qemu_driver.c
|
aflpp_qemu_driver.o: aflpp_qemu_driver.c
|
||||||
$(LLVM_BINDIR)clang $(FLAGS) -O0 -funroll-loops -c aflpp_qemu_driver.c
|
$(LLVM_BINDIR)clang $(FLAGS) -O0 -funroll-loops -c aflpp_qemu_driver.c
|
||||||
@ -33,8 +36,9 @@ aflpp_qemu_driver_hook.so: aflpp_qemu_driver_hook.o
|
|||||||
aflpp_qemu_driver_hook.o: aflpp_qemu_driver_hook.c
|
aflpp_qemu_driver_hook.o: aflpp_qemu_driver_hook.c
|
||||||
$(LLVM_BINDIR)clang -fPIC $(FLAGS) -funroll-loops -c aflpp_qemu_driver_hook.c
|
$(LLVM_BINDIR)clang -fPIC $(FLAGS) -funroll-loops -c aflpp_qemu_driver_hook.c
|
||||||
|
|
||||||
test: libAFLDriver.a aflpp_driver_test.cpp
|
test: debug
|
||||||
afl-clang-fast++ -I../../include -Wl,--allow-multiple-definition -stdlib=libc++ -funroll-loops -std=c++11 -o aflpp_driver_test aflpp_driver_test.cpp libAFLDriver.a
|
#clang++ -S -emit-llvm -D_DEBUG=\"1\" -I../../include -Wl,--allow-multiple-definition -stdlib=libc++ -funroll-loops -std=c++11 -o aflpp_driver_test.ll aflpp_driver_test.cpp
|
||||||
|
afl-clang-fast++ -D_DEBUG=\"1\" -I../../include -Wl,--allow-multiple-definition -stdlib=libc++ -funroll-loops -std=c++11 -o aflpp_driver_test aflpp_driver_test.cpp libAFLDriver.a
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o libAFLDriver*.a libAFLQemuDriver.a aflpp_qemu_driver_hook.so *~ core aflpp_driver_test
|
rm -f *.o libAFLDriver*.a libAFLQemuDriver.a aflpp_qemu_driver_hook.so *~ core aflpp_driver_test
|
||||||
|
@ -277,7 +277,7 @@ int main(int argc, char **argv) {
|
|||||||
int num_runs = 0;
|
int num_runs = 0;
|
||||||
while (__afl_persistent_loop(N)) {
|
while (__afl_persistent_loop(N)) {
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
fprintf(stderr, "CLIENT crc: %08x len: %u\n", hash64(__afl_fuzz_ptr, *__afl_fuzz_len, 0xa5b35705), *__afl_fuzz_len);
|
fprintf(stderr, "CLIENT crc: %016llx len: %u\n", hash64(__afl_fuzz_ptr, *__afl_fuzz_len, 0xa5b35705), *__afl_fuzz_len);
|
||||||
fprintf(stderr, "RECV:");
|
fprintf(stderr, "RECV:");
|
||||||
for (int i = 0; i < *__afl_fuzz_len; i++)
|
for (int i = 0; i < *__afl_fuzz_len; i++)
|
||||||
fprintf(stderr, "%02x", __afl_fuzz_ptr[i]);
|
fprintf(stderr, "%02x", __afl_fuzz_ptr[i]);
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
|
||||||
|
|
||||||
fprintf(stderr, "FUNC crc: %08x len: %lu\n", hash32(Data, Size, 0xa5b35705), Size);
|
fprintf(stderr, "FUNC crc: %016llx len: %lu\n", hash64((u8*)Data, (unsigned int) Size, (unsigned long long int) 0xa5b35705), Size);
|
||||||
|
|
||||||
if (Size < 5)
|
if (Size < 5)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -60,7 +60,7 @@ typedef enum prealloc_status {
|
|||||||
\
|
\
|
||||||
if ((prealloc_counter) >= (prealloc_size)) { \
|
if ((prealloc_counter) >= (prealloc_size)) { \
|
||||||
\
|
\
|
||||||
el_ptr = malloc(sizeof(*el_ptr)); \
|
el_ptr = (element_t *) malloc(sizeof(*el_ptr)); \
|
||||||
if (!el_ptr) { FATAL("error in list.h -> out of memory for element!"); } \
|
if (!el_ptr) { FATAL("error in list.h -> out of memory for element!"); } \
|
||||||
el_ptr->pre_status = PRE_STATUS_MALLOC; \
|
el_ptr->pre_status = PRE_STATUS_MALLOC; \
|
||||||
\
|
\
|
||||||
|
@ -170,10 +170,10 @@ static inline u8 *DFL_ck_strdup(u8 *str) {
|
|||||||
size = strlen((char *)str) + 1;
|
size = strlen((char *)str) + 1;
|
||||||
|
|
||||||
ALLOC_CHECK_SIZE(size);
|
ALLOC_CHECK_SIZE(size);
|
||||||
ret = malloc(size);
|
ret = (u8*) malloc(size);
|
||||||
ALLOC_CHECK_RESULT(ret, size);
|
ALLOC_CHECK_RESULT(ret, size);
|
||||||
|
|
||||||
return memcpy(ret, str, size);
|
return (u8*)memcpy(ret, str, size);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -204,7 +204,7 @@ static inline u8 *DFL_ck_memdup_str(u8 *mem, u32 size) {
|
|||||||
if (!mem || !size) { return NULL; }
|
if (!mem || !size) { return NULL; }
|
||||||
|
|
||||||
ALLOC_CHECK_SIZE(size);
|
ALLOC_CHECK_SIZE(size);
|
||||||
ret = malloc(size + 1);
|
ret = (u8*) malloc(size + 1);
|
||||||
ALLOC_CHECK_RESULT(ret, size);
|
ALLOC_CHECK_RESULT(ret, size);
|
||||||
|
|
||||||
memcpy(ret, mem, size);
|
memcpy(ret, mem, size);
|
||||||
|
@ -30,8 +30,8 @@
|
|||||||
|
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
u32 hash32(const void *key, u32 len, u32 seed);
|
u32 hash32(u8 *key, u32 len, u32 seed);
|
||||||
u64 hash64(const void *key, u32 len, u64 seed);
|
u64 hash64(u8 *key, u32 len, u64 seed);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ void rand_set_seed(afl_state_t *afl, s64 init_seed) {
|
|||||||
|
|
||||||
afl->init_seed = init_seed;
|
afl->init_seed = init_seed;
|
||||||
afl->rand_seed[0] =
|
afl->rand_seed[0] =
|
||||||
hash64((void *)&afl->init_seed, sizeof(afl->init_seed), HASH_CONST);
|
hash64((u8 *)&afl->init_seed, sizeof(afl->init_seed), HASH_CONST);
|
||||||
afl->rand_seed[1] = afl->rand_seed[0] ^ 0x1234567890abcdef;
|
afl->rand_seed[1] = afl->rand_seed[0] ^ 0x1234567890abcdef;
|
||||||
afl->rand_seed[2] = afl->rand_seed[0] & 0x0123456789abcdef;
|
afl->rand_seed[2] = afl->rand_seed[0] & 0x0123456789abcdef;
|
||||||
afl->rand_seed[3] = afl->rand_seed[0] | 0x01abcde43f567908;
|
afl->rand_seed[3] = afl->rand_seed[0] | 0x01abcde43f567908;
|
||||||
@ -141,13 +141,17 @@ void long_jump(afl_state_t *afl) {
|
|||||||
/* we switch from afl's murmur implementation to xxh3 as it is 30% faster -
|
/* we switch from afl's murmur implementation to xxh3 as it is 30% faster -
|
||||||
and get 64 bit hashes instead of just 32 bit. Less collisions! :-) */
|
and get 64 bit hashes instead of just 32 bit. Less collisions! :-) */
|
||||||
|
|
||||||
u32 inline hash32(const void *key, u32 len, u32 seed) {
|
u32 inline hash32(void *key, u32 len, u32 seed) {
|
||||||
|
|
||||||
return (u32)XXH64(key, len, seed);
|
return (u32)XXH64(key, len, seed);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
u64 inline hash64(const void *key, u32 len, u64 seed) {
|
#ifdef _DEBUG
|
||||||
|
u64 hash64(u8 *key, u32 len, u64 seed) {
|
||||||
|
#else
|
||||||
|
u64 inline hash64(u8 *key, u32 len, u64 seed) {
|
||||||
|
#endif
|
||||||
|
|
||||||
return XXH64(key, len, seed);
|
return XXH64(key, len, seed);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user