Expand objdump DLX ASLR delta coverage

This commit is contained in:
ashton
2026-06-25 06:20:19 -05:00
parent 9454cb7b48
commit e2e34f39b5
100 changed files with 1717 additions and 9 deletions

View File

@@ -0,0 +1,31 @@
#!/usr/bin/env python3
from collections import Counter
STDERR = 0x2044E0
SYSTEM = 0x58750
PAGE = 0x1000
def be_from_le32(value):
return int.from_bytes((value & 0xFFFFFFFF).to_bytes(4, "little"), "big")
def delta_for_base(base):
src = be_from_le32((base + STDERR) & 0xFFFFFFFF)
dst = be_from_le32((base + SYSTEM) & 0xFFFFFFFF)
return (dst - src) & 0xFFFFFFFF
def main():
counts = Counter(delta_for_base(base) for base in range(0, 1 << 32, PAGE))
total = sum(counts.values())
covered = 0
for delta, count in counts.most_common():
covered += count
print(f"0x{delta:08x} pages={count} coverage={count / total:.6f} cumulative={covered / total:.6f}")
print(f"unique={len(counts)} total_pages={total}")
if __name__ == "__main__":
main()