Python Assembly Other
Mic92 and zachriggle corefile: also expose page_offset (#1169)
* corefile: also expose page_offset

This is useful to load the code from the original files.

* Undo constructor field reordering

* Fix ordering in Mapping instantiation

* Commas are important

* corefile: also put page_offset as last parameter
Latest commit 9023b38 Jul 3, 2018
Failed to load latest commit information.
.github Update Jun 22, 2017
docs Merge branch 'beta' into dev Jul 2, 2018
examples SSH is now on port 2220 (#984) May 25, 2017
extra Update Makefile and generated Makefiles May 25, 2017
pwn Expose pwnlib.tubes.server.server in the toplevel Jan 2, 2018
pwnlib corefile: also expose page_offset (#1169) Jul 3, 2018
travis switch to trusty build in travis ci and fix some test cases (#1155) May 25, 2018
.coveragerc Add build steps to .travis.yml (#655) Aug 18, 2016
.gitattributes Hopefully make git language statistics more accurate Dec 18, 2014
.gitignore Revert part of 8793dec, fix commands, remove shippable.yml Sep 26, 2016
.isort.cfg Add config Jun 11, 2015
.sublime-settings Add sublime-settings [skip ci] Oct 25, 2015
.travis.yml switch to trusty build in travis ci and fix some test cases (#1155) May 25, 2018 Update changelog for 3.12.1 Jun 19, 2018 Fixed some documentation Aug 21, 2016
LICENSE-pwntools.txt Fix a lot of documentation (#675) Aug 22, 2016 Add mako files to MANIFEST (#980) May 11, 2017 Release 3.12.0 Feb 22, 2018 Add dockerfile for testing-in-a-box on Xenial (#895) Feb 13, 2017
requirements.txt have requirements.txt just 'call' install_requires so that y… Aug 13, 2014 Merge branch 'beta' into dev Jul 2, 2018
tox.ini Revert part of 8793dec, fix commands, remove shippable.yml Sep 26, 2016

pwntools - CTF toolkit

pwntools logo

Docs PyPI Travis Coveralls Twitter MIT License

Pwntools is a CTF framework and exploit development library. Written in Python, it is designed for rapid prototyping and development, and intended to make exploit writing as simple as possible.

from pwn import *
context(arch = 'i386', os = 'linux')

r = remote('', 31337)

Try It Now!

You can now do a live demo of Pwntools, right in your browser.


Our documentation is available at

To get you started, we've provided some example solutions for past CTF challenges in our write-ups repository.


Pwntools is best supported on 64-bit Ubuntu LTE releases (12.04, 14.04, and 16.04). Most functionality should work on any Posix-like distribution (Debian, Arch, FreeBSD, OSX, etc.). Python 2.7 is required.

Most of the functionality of pwntools is self-contained and Python-only. You should be able to get running quickly with

apt-get update
apt-get install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential
pip install --upgrade pip
pip install --upgrade pwntools

However, some of the features (assembling/disassembling foreign architectures) require non-Python dependencies. For more information, see the complete installation instructions here.




If you have any questions not worthy of a bug report, feel free to ping us at #pwntools on Freenode and ask away. Click here to connect. There is also a mailing list for higher latency discussion.