skip to content
Back to Home

Next reads

View all →

3 Sept

Building a Custom ELF Loader from Scratch, in C

You type ./program and the kernel loads it. Here's how that works: we build a userspace ELF loader in ~300 lines of C that maps PT_LOAD segments, builds a stack by hand, and jumps to the entry point.

9 Sept

Mini-Readelf: Gluing It All Together

The capstone. Four parts of pieces, headers, sections, symbols, relocations, joined into one tool that reads any ELF. The only new mechanic is the sh_link chain: offset into a table that holds offsets into a table that holds strings.

5 Sept

Relocations: How PIE Binaries Fix Their Addresses

A PIE binary can't write final addresses because ASLR moves it. The linker leaves placeholders and the loader patches them after mapping. That's a relocation: R_X86_64_RELATIVE, GLOB_DAT and JUMP_SLOT.

Get posts by email

One email when I publish, not a drip, not weekly. Sign up and I'll only write when there's something new.

You won't get mail just for signing up. Unsubscribe any time.