Skip to main content

08. Quickly Identifying Binary Protections with checksec in CTFs

When solving reversing or pwn challenges, the task for the first 30 seconds is to inspect the protection options with checksec. Whether NX, PIE, and Canary are enabled completely changes the exploitation strategy.

Core Options

  • NX: Prevents stack execution → use ROP or ret2libc instead of shellcode
  • Canary: Detects stack overflows → requires an information leak
  • PIE: Increases the impact of ASLR → requires a base-address leak
  • RELRO: Restricts writes to the GOT → blocks GOT-overwrite strategies

Quick Routine

  1. Run checksec --file ./chall
  2. Look for libc-version and function clues with strings and readelf -s
  3. Search first for possible leak points such as printf, puts, and write

In One Sentence

Checking the protections first immediately reveals whether you need a leak or a ROP chain. In both CTFs and real vulnerability analysis, checksec is the most cost-effective first scan.