Reverse-Engineer a Stripped Binary to Restore Linking Symbols
Overview
What this challenge is about.
Receive the stripped shared object (Linux ELF, x86-64, ~280KB), a crash dump with 12 frames of indecipherable addresses, and 4 years of partial git history with some related (but not identical) source. Use objdump + nm + Ghidra to walk the binary, identify functions by call-graph + string-reference patterns, and label at least 30 functions with reasonable names. Validate name choices by cross-referencing the partial git history. Produce a .symtab patch (or a separate .debug file) the modern build pipeline can load via DWARF or addr2line. Deliver the Ghidra project, the restored symbol file, the crash-dump re-symbolized, and a 3-page methodology note for the QA + build team.
The Brief
What you'll do, and what you'll demonstrate.
Restore at least 30 reasonable function symbols to a stripped 6-year-old library and produce a symbol file the modern build pipeline can consume.
Earning criteria — what you'll demonstrate
- Use objdump, nm, and Ghidra to navigate a stripped ELF binary
- Identify functions by call-graph patterns and string references
- Restore symbols compatible with the addr2line / DWARF toolchain
- Document a reverse-engineering methodology others can extend
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
Careers
Roles this prepares you for.
Real titles. Real skill bridges. Pick the one closest to your trajectory.
Career mappings coming soon.