forked from p98n2ja4z/AFLplusplus
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
420 lines
7.2 KiB
420 lines
7.2 KiB
//
|
|
// NOTE: This file is outdated. None of the AFL++ team uses Android hence
|
|
// we need users to keep this updated.
|
|
// In the current state it will likely fail, please send fixes!
|
|
// Also, this should build frida_mode.
|
|
//
|
|
|
|
|
|
cc_defaults {
|
|
name: "afl-defaults",
|
|
|
|
local_include_dirs: [
|
|
"include",
|
|
"instrumentation",
|
|
],
|
|
|
|
cflags: [
|
|
"-flto=full",
|
|
"-funroll-loops",
|
|
"-Wno-pointer-sign",
|
|
"-Wno-pointer-arith",
|
|
"-Wno-sign-compare",
|
|
"-Wno-unused-parameter",
|
|
"-Wno-unused-function",
|
|
"-Wno-format",
|
|
"-Wno-user-defined-warnings",
|
|
"-DAFL_LLVM_USE_TRACE_PC=1",
|
|
"-DBIN_PATH=\"out/host/linux-x86/bin\"",
|
|
"-DDOC_PATH=\"out/host/linux-x86/shared/doc/afl\"",
|
|
"-D__USE_GNU",
|
|
"-DDEBUG_BUILD",
|
|
"-U_FORTIFY_SOURCE",
|
|
"-ggdb3",
|
|
"-g",
|
|
"-O0",
|
|
"-fno-omit-frame-pointer",
|
|
"-fPIC",
|
|
],
|
|
|
|
target: {
|
|
android_arm64: {
|
|
cflags: [
|
|
"-D__ANDROID__",
|
|
],
|
|
},
|
|
android_arm: {
|
|
cflags: [
|
|
"-D__ANDROID__",
|
|
],
|
|
},
|
|
android_x86_64: {
|
|
cflags: [
|
|
"-D__ANDROID__",
|
|
],
|
|
},
|
|
android_x86: {
|
|
cflags: [
|
|
"-D__ANDROID__",
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_binary {
|
|
name: "afl-fuzz",
|
|
sanitize: {
|
|
never: true,
|
|
},
|
|
host_supported: true,
|
|
compile_multilib: "64",
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
srcs: [
|
|
"src/afl-fuzz*.c",
|
|
"src/afl-common.c",
|
|
"src/afl-forkserver.c",
|
|
"src/afl-sharedmem.c",
|
|
"src/afl-forkserver.c",
|
|
"src/afl-performance.c",
|
|
],
|
|
}
|
|
|
|
cc_binary {
|
|
name: "afl-showmap",
|
|
static_executable: true,
|
|
host_supported: true,
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
srcs: [
|
|
"src/afl-showmap.c",
|
|
"src/afl-common.c",
|
|
"src/afl-sharedmem.c",
|
|
"src/afl-forkserver.c",
|
|
"src/afl-performance.c",
|
|
],
|
|
}
|
|
|
|
cc_binary {
|
|
name: "afl-tmin",
|
|
static_executable: true,
|
|
host_supported: true,
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
srcs: [
|
|
"src/afl-tmin.c",
|
|
"src/afl-common.c",
|
|
"src/afl-sharedmem.c",
|
|
"src/afl-forkserver.c",
|
|
"src/afl-performance.c",
|
|
],
|
|
}
|
|
|
|
cc_binary {
|
|
name: "afl-analyze",
|
|
static_executable: true,
|
|
host_supported: true,
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
srcs: [
|
|
"src/afl-analyze.c",
|
|
"src/afl-common.c",
|
|
"src/afl-sharedmem.c",
|
|
"src/afl-performance.c",
|
|
],
|
|
}
|
|
|
|
cc_binary {
|
|
name: "afl-gotcpu",
|
|
static_executable: true,
|
|
host_supported: true,
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
srcs: [
|
|
"src/afl-gotcpu.c",
|
|
"src/afl-common.c",
|
|
],
|
|
}
|
|
|
|
cc_binary_host {
|
|
name: "afl-cc",
|
|
static_executable: true,
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
cflags: [
|
|
"-DAFL_PATH=\"out/host/linux-x86/lib64\"",
|
|
"-DAFL_CLANG_FLTO=\"-flto=full\"",
|
|
"-DUSE_BINDIR=1",
|
|
"-DLLVM_BINDIR=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin\"",
|
|
"-DLLVM_LIBDIR=\"prebuilts/clang/host/linux-x86/clang-r383902b/lib64\"",
|
|
"-DCLANGPP_BIN=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang++\"",
|
|
"-DAFL_REAL_LD=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld\"",
|
|
"-DLLVM_LTO=1",
|
|
"-DLLVM_MAJOR=11",
|
|
"-DLLVM_MINOR=2",
|
|
],
|
|
|
|
srcs: [
|
|
"src/afl-cc.c",
|
|
"src/afl-common.c",
|
|
],
|
|
|
|
symlinks: [
|
|
"afl-clang-fast",
|
|
"afl-clang-fast++",
|
|
],
|
|
}
|
|
|
|
cc_library_static {
|
|
name: "afl-compiler-rt",
|
|
compile_multilib: "64",
|
|
vendor_available: true,
|
|
host_supported: true,
|
|
recovery_available: true,
|
|
sdk_version: "9",
|
|
|
|
apex_available: [
|
|
"com.android.adbd",
|
|
"com.android.appsearch",
|
|
"com.android.art",
|
|
"com.android.bluetooth.updatable",
|
|
"com.android.cellbroadcast",
|
|
"com.android.conscrypt",
|
|
"com.android.extservices",
|
|
"com.android.cronet",
|
|
"com.android.neuralnetworks",
|
|
"com.android.media",
|
|
"com.android.media.swcodec",
|
|
"com.android.mediaprovider",
|
|
"com.android.permission",
|
|
"com.android.runtime",
|
|
"com.android.resolv",
|
|
"com.android.tethering",
|
|
"com.android.wifi",
|
|
"com.android.sdkext",
|
|
"com.android.os.statsd",
|
|
"//any",
|
|
],
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
srcs: [
|
|
"instrumentation/afl-compiler-rt.o.c",
|
|
],
|
|
}
|
|
|
|
cc_library_headers {
|
|
name: "libafl_headers",
|
|
vendor_available: true,
|
|
host_supported: true,
|
|
|
|
export_include_dirs: [
|
|
"include",
|
|
"instrumentation",
|
|
],
|
|
}
|
|
|
|
/*
|
|
cc_prebuilt_library_static {
|
|
name: "libfrida-gum",
|
|
compile_multilib: "64",
|
|
strip: {
|
|
none: true,
|
|
},
|
|
|
|
srcs: [
|
|
"utils/afl_frida/android/libfrida-gum.a",
|
|
],
|
|
|
|
export_include_dirs: [
|
|
"utils/afl_frida/android",
|
|
],
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "libtestinstr",
|
|
|
|
srcs: [
|
|
"utils/afl_frida/libtestinstr.c",
|
|
],
|
|
|
|
cflags: [
|
|
"-O0",
|
|
"-fPIC",
|
|
],
|
|
}
|
|
|
|
cc_binary {
|
|
name: "afl-frida",
|
|
compile_multilib: "64",
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
cflags: [
|
|
"-g",
|
|
"-O0",
|
|
"-Wno-format",
|
|
"-Wno-pointer-sign",
|
|
"-fpermissive",
|
|
"-fPIC",
|
|
],
|
|
|
|
static_libs: [
|
|
"afl-compiler-rt",
|
|
"libfrida-gum",
|
|
],
|
|
|
|
shared_libs: [
|
|
"libdl",
|
|
"liblog",
|
|
],
|
|
|
|
srcs: [
|
|
"utils/afl_frida/afl-frida.c",
|
|
],
|
|
|
|
local_include_dirs: [
|
|
"utils/afl_frida",
|
|
"utils/afl_frida/android",
|
|
],
|
|
}
|
|
*/
|
|
|
|
cc_binary {
|
|
name: "afl-fuzz-32",
|
|
sanitize: {
|
|
never: true,
|
|
},
|
|
host_supported: true,
|
|
compile_multilib: "32",
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
srcs: [
|
|
"src/afl-fuzz*.c",
|
|
"src/afl-common.c",
|
|
"src/afl-sharedmem.c",
|
|
"src/afl-forkserver.c",
|
|
"src/afl-performance.c",
|
|
],
|
|
}
|
|
|
|
cc_binary_host {
|
|
name: "afl-cc-32",
|
|
compile_multilib: "32",
|
|
static_executable: true,
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
cflags: [
|
|
"-DAFL_PATH=\"out/host/linux-x86/lib64\"",
|
|
"-DAFL_CLANG_FLTO=\"-flto=full\"",
|
|
"-DUSE_BINDIR=1",
|
|
"-DLLVM_BINDIR=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin\"",
|
|
"-DLLVM_LIBDIR=\"prebuilts/clang/host/linux-x86/clang-r383902b/lib64\"",
|
|
"-DCLANGPP_BIN=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang++\"",
|
|
"-DAFL_REAL_LD=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld\"",
|
|
"-DLLVM_LTO=1",
|
|
"-DLLVM_MAJOR=11",
|
|
"-DLLVM_MINOR=2",
|
|
],
|
|
|
|
srcs: [
|
|
"src/afl-cc.c",
|
|
"src/afl-common.c",
|
|
],
|
|
|
|
symlinks: [
|
|
"afl-clang-fast-32",
|
|
"afl-clang-fast++-32",
|
|
],
|
|
}
|
|
|
|
cc_library_static {
|
|
name: "afl-compiler-rt-32",
|
|
compile_multilib: "32",
|
|
vendor_available: true,
|
|
host_supported: true,
|
|
recovery_available: true,
|
|
sdk_version: "9",
|
|
|
|
apex_available: [
|
|
"com.android.adbd",
|
|
"com.android.appsearch",
|
|
"com.android.art",
|
|
"com.android.bluetooth.updatable",
|
|
"com.android.cellbroadcast",
|
|
"com.android.conscrypt",
|
|
"com.android.extservices",
|
|
"com.android.cronet",
|
|
"com.android.neuralnetworks",
|
|
"com.android.media",
|
|
"com.android.media.swcodec",
|
|
"com.android.mediaprovider",
|
|
"com.android.permission",
|
|
"com.android.runtime",
|
|
"com.android.resolv",
|
|
"com.android.tethering",
|
|
"com.android.wifi",
|
|
"com.android.sdkext",
|
|
"com.android.os.statsd",
|
|
"//any",
|
|
],
|
|
|
|
defaults: [
|
|
"afl-defaults",
|
|
],
|
|
|
|
srcs: [
|
|
"instrumentation/afl-compiler-rt.o.c",
|
|
],
|
|
}
|
|
|
|
/*
|
|
cc_prebuilt_library_static {
|
|
name: "libfrida-gum-32",
|
|
compile_multilib: "32",
|
|
strip: {
|
|
none: true,
|
|
},
|
|
|
|
srcs: [
|
|
"utils/afl_frida/android/arm/libfrida-gum.a",
|
|
],
|
|
|
|
export_include_dirs: [
|
|
"utils/afl_frida/android/arm",
|
|
],
|
|
}
|
|
*/
|
|
|
|
subdirs = [
|
|
"custom_mutators",
|
|
]
|