Python Assembly Other
Latest commit f8bb49c Feb 17, 2017 @Idolf Idolf Merge branch 'beta' into dev
Permalink
Failed to load latest commit information.
.github Update ISSUE_TEMPLATE.md Nov 7, 2016
docs Doctest all members, even if they are not exported via __all__ (#914) Feb 17, 2017
examples Add missing registers to AArch64 sigreturn frame, and update test Feb 11, 2017
extra Docker: Install unprivileged user pwntools, use correct tags Jan 26, 2017
pwn Add pwnlib.config module and documentation (#893) Feb 13, 2017
pwnlib Merge branch 'beta' into dev Feb 17, 2017
travis Merge branch 'beta' into dev Feb 17, 2017
.coveragerc Add coveralls.io 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 Use updated testing scripts from 3.5.0 on 3.4.0 Feb 13, 2017
CHANGELOG.md Merge branch 'stable' into beta Feb 17, 2017
CONTRIBUTING.md Fixed some documentation Aug 21, 2016
LICENSE-pwntools.txt Fix a lot of documentation (#675) Aug 22, 2016
MANIFEST.in Shellcode syscall templates (#871) Feb 12, 2017
README.md Merge branch 'stable' into beta Feb 17, 2017
TESTING.md Add dockerfile for testing-in-a-box on Xenial (#895) Feb 13, 2017
requirements.txt have requirements.txt just 'call' setup.py install_requires so that y… Aug 13, 2014
setup.py Emulate PLT for better symbols (#899) Feb 15, 2017
tox.ini Revert part of 8793dec, fix commands, remove shippable.yml Sep 26, 2016

README.md

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('exploitme.example.com', 31337)
# EXPLOIT CODE GOES HERE
r.send(asm(shellcraft.sh()))
r.interactive()

Try It Now!

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

Documentation

Our documentation is available at docs.pwntools.com

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

Installation

pwntools is best supported on 64-bit Ubuntu 12.04 and 14.04, but 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.

Contribution

See CONTRIBUTING.md

Contact

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.