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 HEREHowever 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: Runfileat 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.