ELF Symbols and Relocations, a Full `readelf` Session

Toy PIE: readelf -s / -r / -d / -S in one sitting. .dynsym UND vs .symtab, JUMP_SLOT vs RELATIVE, how a stripped copy still names puts. gdb bind check.

September 15, 2026 · 8 min · 1611 words · Jose Adalberto Gutierrez Ochoa

Walking .init_array on a Toy Packed ELF

Lab stub that mprotects RWX, XOR-decodes a 32-byte .text blob, restores r-x, then returns into real code. readelf of .init_array and PT_GNU_STACK, gdb break on mprotect, dump of the r-x region.

July 18, 2022 · 8 min · 1677 words · Jose Adalberto Gutierrez Ochoa

Binary Auditing Checklist, Filled on a Toy ELF

First-pass checklist actually filled: checksec + readelf + objdump on a 60-line toy with gets/sprintf/printf(user). One-pager of mitigations, sinks, and the ASan crash.

August 21, 2021 · 8 min · 1620 words · Jose Adalberto Gutierrez Ochoa

Reading RELRO, GOT, and PLT on a PIE Lab Binary

Partial vs Full RELRO measured on one toy: readelf FLAGS/GNU_RELRO, objdump of puts@plt, gdb GOT slot before and after bind, /proc maps of .got.plt. Companion to the lazy-binding lab.

June 15, 2020 · 8 min · 1598 words · Jose Adalberto Gutierrez Ochoa

ELF GOT/PLT Lazy Binding, Read From a PIE Lab Binary

Lab walkthrough of lazy PLT binding on a PIE: readelf, objdump, GOT slot before/after the first call, Partial vs Full RELRO.

April 22, 2020 · 4 min · 833 words · Jose Adalberto Gutierrez Ochoa