Linking - Relocations

In an effort to fill in some knowledge gaps regarding the linking process for the GNU compiler toolchain, I spent a few minutes exploring the ELF relocation section in a sample binary.

From the ELF man pages, relocation is "the process of connecting symbolic references with symbolic definitions. Relocatable files …

Continue reading »

Pwnable.kr uaf

In this post, I'm going to walk through my solution to the "UAF" challenge from pwnables.kr, a pretty cool wargame site run by the SSLab at Georgia Tech. I picked out this challenge because I was interested in learning more about C++ exploitation, and right off the bat it …

Continue reading »

Pwnable.tw Challenge 1 - Start

The first challenge from pwnable.tw, as the name of the site suggests, is a pwnable CTF challenge. The goal of the challenge is to pop a shell in the remote service and read out the flag, which we've been instructed should reside at '/home/start/flag'. The binary running …

Continue reading »

Position-Independent Code (PIC) and ASLR

Position-independent code (PIC) is code that can be loaded at any address in memory, whereas non-PIC code (absolute code) must be loaded at a specific location in memory to function properly. When a program includes a shared library, the code for that library must be loaded into the memory space …

Continue reading »