Use Git to clone the template in hugsy/template-pwn
git clone https://github.com/hugsy/pwn--template MyProject
include(FetchContent)
FetchContent_Declare(
pwn++
GIT_REPOSITORY https://github.com/hugsy/pwn--.git
GIT_TAG main # or whatever other tag or use releases (URL)
)
FetchContent_MakeAvailable(pwn++)
A poor rewrite of my PwnLib DLL in modern C++, battery-included pwn kit for Windows (and a bit for Linux).
Because:
- I wanted a quick way to bootstrap my low-level experiments
- it's unacceptable to struggle to disassemble code, to cross-compile your exploit or simply to have
hexdump
-like function - only C/C++ provides the real right way to write assembly code
- modern C++ allows to do crazy useful offsec stuff, completely underused
- I like writing code
The idea is to provide in C on Windows the same kind of functionalities than pwntools does in Python on Linux. It's also a toy library meant for exploring Windows in a more friendly way. So if you're looking for years of poorly written C++ tangled with performant inefficient ways to experiment low-level, go no further friend this library is for you.
Note: the original PwnLib
was written around Windows 7 for feature testing. This is 100% Windows 10/11 focused, so expect things to go wrong if you use any other Windows version. Some stuff may also go wrong in x86. Better use 64. It's not a bug but a design choice 😋
- ProcessHacker Native Headers - Windows Internals structures
- Zydis - X86/X64 Disassembler
- Binary Ninja Arch-ARM64 - ARM64 Disassembler
- Catch2 - Unit test suite
- ArgParse - Easy & portable command line parsing
- mk_clib - Crypto