[![crates.io](https://img.shields.io/crates/v/pwn.svg)](https://crates.io/crates/pwn)
[![Documentation](https://img.shields.io/docsrs/pwn/latest)](https://docs.rs/pwn/latest/pwn)
[![CI](https://github.com/clubby789/pwntools/actions/workflows/rust.yml/badge.svg)](https://github.com/clubby789/pwntools/actions/workflows/rust.yml)
## What is this?
A minimal implementation of [Pwntools](https://github.com/gallopsled/pwntools) written in Rust.
## Why is this?
Why not?
## Features
- A [logging](https://docs.rs/pwn/latest/pwn/logging/index.html) framework
- [TCP](https://docs.rs/pwn/latest/pwn/tubes/index.html) client/server
- [Packing/Unpacking](https://docs.rs/pwn/latest/pwn/util/packing/index.html) of integers/bytes
- High level [ELF](https://docs.rs/pwn/latest/pwn/elf/struct.Elf.html) parsing using [goblin](https://crates.io/crates/goblin)
- Dynamic runtime behaviour with a configurable global [context](https://docs.rs/pwn/latest/pwn/context/index.html)
## Examples
Usage examples can be found in the [examples](examples) directory, including solutions for retired pwn challenges from Hack THe Box.