This is the CTF framework used by pwnies in every CTF.
Most code is inside the pwn folder, which is typically used as:
from pwn import *
context('i386', 'linux')
# EXPLOIT HERE
However we have made command-line frontends for much of the functionality inside the pwnlib. These are:
asm
/disasm
: Small wrapper for nasmclookup
: Tool for looking up constants (such as SYS_open) on various os/architecture combinations.cyclic
: De Bruijn sequence generator and lookup toolnops
: Tool for generating random nopsleds.peek
/poke
: Simple tool for sending files over a LANrandomua
: Returns a random user agentscramble
: Shellcode packershellcraft
: Frontend to our shellcode
We also have the following tools, not dependent on the pwnlib:
- binutils directory: Assemblers and disassemblers for various architectures
bytes
: Extract the raw bytes from various textual representationscrop
: Cut out rectangular portions of textdemo32
/demo64
: Tool for testing shellcodedictgen
: Generate dictionaries from input corporagadgets
: Find ROP gadgetshex
/unhex
: Command line tools for doing common hexing/unhexing operationsmags
: Runfile
at all offsets
All of these tools are symlinked to the bin folder.
To install it, just update your PYTHONPATH
and PATH
variables. Alternatively
you can run install.sh
.
crypto
gmpy
sympy
matplotlib
The following libraries may be installed using cabal
.
disassembler
elf
apt-get install cabal-install python-sympy python-matplotlib python-gmpy python-crypto && cabal update && cabal install disassembler elf
If you have any questions not worthy of a bug report, feel free to join us
at #zomg_pwnies
on Freenode and ask away.