27 lines
830 B
Bash
27 lines
830 B
Bash
#!/usr/bin/env bash
|
|
# Correctly symbolize GP fault RIP 0xffffffff800353e1 and identify the stub.
|
|
set -uo pipefail
|
|
E=/mnt/d/Code/DEAICUP/Deshab/SYSTEM/boot/utsm.elf
|
|
nm -n "$E" > /tmp/syms.txt
|
|
python3 - <<'PY'
|
|
t = 0xffffffff800353e1
|
|
lines = []
|
|
with open("/tmp/syms.txt") as f:
|
|
for ln in f:
|
|
p = ln.split()
|
|
if len(p) >= 3:
|
|
try:
|
|
v = int(p[0], 16)
|
|
except ValueError:
|
|
continue
|
|
lines.append((v, ln.rstrip()))
|
|
prev = None
|
|
for v, s in lines:
|
|
if v > t:
|
|
print("FAULT inside/below:", prev)
|
|
print("next symbol:", s)
|
|
break
|
|
prev = s
|
|
PY
|
|
echo "=== stub entry (search backwards for vector push) ==="
|
|
objdump -d --start-address=0xffffffff80035280 --stop-address=0xffffffff800353d8 "$E" | grep -E 'push|jmp|call|mov.*0x' | head -20 |