mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-13 02:28:09 +00:00
Merge branch 'dev' of ssh://github.com/AFLplusplus/AFLplusplus into dev
This commit is contained in:
@ -402,6 +402,18 @@ bool instrument_write_inline(GumArm64Writer *cw, GumAddress code_addr,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The mov instruction supports up to a 16-bit offset. If our offset is out of
|
||||||
|
* range, then it can end up clobbering the op-code portion of the instruction
|
||||||
|
* rather than just the operands. So return false and fall back to the
|
||||||
|
* alternative instrumentation.
|
||||||
|
*/
|
||||||
|
if (area_offset > UINT16_MAX) {
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
code.code.mov_x0_curr_loc |= area_offset << 5;
|
code.code.mov_x0_curr_loc |= area_offset << 5;
|
||||||
|
|
||||||
if (!instrument_patch_ardp(
|
if (!instrument_patch_ardp(
|
||||||
|
@ -8,7 +8,7 @@ HARNESS_BUILD_DIR:=$(BUILD_DIR)harness/
|
|||||||
PNGTEST_BUILD_DIR:=$(BUILD_DIR)pngtest/
|
PNGTEST_BUILD_DIR:=$(BUILD_DIR)pngtest/
|
||||||
|
|
||||||
LIBZ_FILE:=$(LIBZ_BUILD_DIR)zlib-1.2.13.tar.gz
|
LIBZ_FILE:=$(LIBZ_BUILD_DIR)zlib-1.2.13.tar.gz
|
||||||
LIBZ_URL:=http://www.zlib.net/zlib-1.2.13.tar.gz
|
LIBZ_URL:=http://www.zlib.net/fossils/zlib-1.2.13.tar.gz
|
||||||
LIBZ_DIR:=$(LIBZ_BUILD_DIR)zlib-1.2.13/
|
LIBZ_DIR:=$(LIBZ_BUILD_DIR)zlib-1.2.13/
|
||||||
LIBZ_PC:=$(LIBZ_DIR)zlib.pc
|
LIBZ_PC:=$(LIBZ_DIR)zlib.pc
|
||||||
LIBZ_LIB:=$(LIBZ_DIR)libz.a
|
LIBZ_LIB:=$(LIBZ_DIR)libz.a
|
||||||
|
@ -31,12 +31,13 @@ file=$(file $target|sed 's/.*: //')
|
|||||||
arch=$(echo $file|awk -F, '{print$2}'|tr -d ' ')
|
arch=$(echo $file|awk -F, '{print$2}'|tr -d ' ')
|
||||||
bits=$(echo $file|sed 's/-bit .*//'|sed 's/.* //')
|
bits=$(echo $file|sed 's/-bit .*//'|sed 's/.* //')
|
||||||
pie=$(echo $file|grep -wqi pie && echo pie)
|
pie=$(echo $file|grep -wqi pie && echo pie)
|
||||||
|
dso=$(echo $file|grep -wqi "shared object" && echo dso)
|
||||||
|
|
||||||
test $(uname -s) = "Darwin" && symbol=_"$symbol"
|
test $(uname -s) = "Darwin" && symbol=_"$symbol"
|
||||||
tmp_addr=$(nm "$target" | grep -i "T $symbol" | awk '{print$1}' | tr a-f A-F)
|
tmp_addr=$(nm "$target" | grep -i "T $symbol" | awk '{print$1}' | tr a-f A-F)
|
||||||
|
|
||||||
test -z "$tmp_addr" && { echo Error: function $symbol not found 1>&2; exit 1; }
|
test -z "$tmp_addr" && { echo Error: function $symbol not found 1>&2; exit 1; }
|
||||||
test -z "$pie" && { echo 0x$tmp_addr; exit 0; }
|
test -z "$pie" && test -z "$dso" && { echo 0x$tmp_addr; exit 0; }
|
||||||
|
|
||||||
test -z "$base" && {
|
test -z "$base" && {
|
||||||
test "$bits" = 32 -o "$bits" = 64 || { echo "Error: could not identify arch (bits=$bits)" 1>&2 ; exit 1; }
|
test "$bits" = 32 -o "$bits" = 64 || { echo "Error: could not identify arch (bits=$bits)" 1>&2 ; exit 1; }
|
||||||
|
Reference in New Issue
Block a user