REFERENCE GUIDE
Binary triage and mitigation inventory
Before choosing an exploit family, establish the executable format, architecture, ABI, loader, and runtime dependencies.
Also known as: checksec · ELF triage
Mechanism
Before choosing an exploit family, establish the executable format, architecture, ABI, loader, and runtime dependencies. Stack canaries, nonexecutable mappings, position-independent code, relocation protection, and control-flow protections constrain different parts of an exploit. A mitigation summary is a hypothesis; inspect actual headers, mappings, and runtime behavior to confirm what it protects.
Practical method
Hash the supplied file, inspect ELF headers and dynamic dependencies, then run only the challenge in its isolated environment. Identify input routes, maximum lengths, termination behavior, and crash conditions. Save the provided loader and libc alongside the binary so later address offsets remain reproducible.
file ./challenge
readelf -h -l -d ./challenge
sha256sum ./challenge
Interpreting evidence
Compare compile-time headers with the runtime mappings in the debugger. A PIE executable can still reveal its base through a leak. Full relocation protection limits writable relocation targets without preventing all writable control data.
Pitfalls and limits
Host libc mismatches change offsets and allocator behavior. Stripped symbols do not remove imports or unwind information. Architecture guesses based solely on filenames can invalidate every subsequent offset.