PAGES
← all tools
◆ Exploitation & C2

pwntools

4.15.0 open-source

CTFCTFCapture The Flag — a competitive hacking challenge format where participants exploit intentionally vulnerable systems or puzzles to retrieve hidden strings, used by cyber tools to practice and demonstrate offensive and defensive techniques. framework and exploit development library for rapid prototyping and writing exploits in Python.

Summary

pwntools is an open-source CTF framework and exploit development library, free under the MIT license. It's a Python library imported into scripts rather than a standalone application, though it also ships CLI utilities like a libc database fetcher used when building exploits offline. It's aimed at CTF players and exploit developers who want to prototype shellcode, craft payloads, and script interaction with remote services without hand-rolling socket and packing code. Its README frames it as a CTF toolkit rather than positioning itself against a named competitor, so it sits in the broader exploit-development category alongside other scripting aids used in binary exploitation. First committed in 2012, it remains active with 335 contributors and 111 commits in the past year, though its most recent release was 313 days ago.

CTF framework and exploit development library for rapid prototyping and writing exploits in Python.

How pwntools helps

How do I get shellcode running on a remote service without hand-rolling socket and packing code?

opens a connection with one call and hands back an object that assembles and sends shellcode for the target architecture, then drops into an interactive session for the rest of the exchange

Which bytes am I actually sending when I pack this value for the target binary?

packing and assembly routines take an explicit architecture and OS context and produce the exact byte string, so mismatches between what was intended and what was sent become visible before the payload reaches the wire

What libc is this binary linked against, and where do I get one to build an offline exploit?

a bundled command line utility fetches and searches a database of known libc builds so offsets can be resolved without hitting the network at exploit time

Will my exploit script behave the same on this binary as it did on the last one?

setting the architecture and operating system once in a shared context makes every subsequent packing, assembly, and shellcode call use those same assumptions, so switching targets is a one-line change instead of a rewrite

Is the payload I built actually shellcode, or did an offset shift break it?

shellcode-generation helpers produce ready-to-send byte sequences for common tasks like spawning a shell, so the output can be diffed or tested directly against a target rather than assembled by hand

all 29 features, with the evidence for each →

Languages

Not documented

Features

29 capabilities · 1 backed by code, an API document or a real run

Built from pwntools's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What pwntools offers you

  • Command-line interface7
  • Python scripting support2
  • Offline mode1
  • Scripting API1
All capabilities 29 capabilities
libc database management verified Fetches and updates a local libc database, with support for selecting specific libc categories and an offline-only mode for searches without network access. 29 releases · 8 other sources · first seen Jul 2017

Also counts toward: Command-line interface, Offline mode

release 29 total

  • Enables output caching for asm() function to speed up subsequent exploit runs, controllable via context.cache_dir 4.15.0 · Oct 2025 · source · release history
  • Adds context.gdb_binary config key to specify the GDB binary path for all debugger interactions 4.15.0 · Oct 2025 · source · release history
  • Adds tube.upload_manually method to upload data to a remote shell using shell commands instead of binary transfer 4.15.0 · Oct 2025 · source · release history
  • Enables assembly/disassembly on Windows via the existing asm/disasm functions 4.14.0 · Jan 2025 · source · release history
  • Adds TTY escape function for file transfer capabilities 4.14.0 · Jan 2025 · source · release history
  • Adds port, gdb_args, and gdbserver_args parameters to the gdb.debug() API 4.14.0 · Jan 2025 · source · release history

docs

  • CTF framework and exploit development library for rapid prototyping and writing exploits in Python.

command line

example

  • Disable asm() caching if you need fresh assembly output for every call. context.cache_dir = None print(asm('nop')) 4.15.0 · Oct 2025 · source
  • Escape JavaScript strings in exploit payloads. from pwnlib.util.fiddling import js_escape js_escape('<script>alert(1)</script>') 4.9.0 · Dec 2022 · source
  • Enable tab-completion for the pwn command in supported shells. source <(pwn completion zsh) # for zsh source <(pwn completion bash) # for bash 4.7.0 · Nov 2021 · source
Local shellcode generator shipped Generates platform-specific shellcode templates (e.g., for Linux, RISC-V) with support for arch-specific syscalls, IPv6 sockets, and concatenation. 10 releases · 4 other sources · first seen Aug 2016

release 10 total

  • Adds basic RISCV64 shellcode generation support via shellcraft 4.14.0 · Jan 2025 · source · release history
  • Enables concatenating multiple shellcraft templates on the command line using shellcraft A + B 4.14.0 · Jan 2025 · source · release history
  • Add shellcraft.*.linux.cat2, which uses alloc+read+write instead of sendfile 4.7.0 · Nov 2021 · source · release history
  • Adds freebsd generic syscall templates to shellcraft 4.0.0 · Jan 2020 · source · release history
  • Adds shellcraft templates dupio() for MIPS architecture 4.0.0 · Jan 2020 · source · release history
  • Adds MIPS, PowerPC, AArch64, and CGC architectures to the shellcraft module 3.0.0 · Aug 2016 · source · release history

example

  • Use the new shellcode generator for Linux architectures where sendfile is unavailable or restricted. from pwn import *; print(shellcraft.linux.cat2()) 4.7.0 · Nov 2021 · source
  • Generate MIPS assembly code to duplicate file descriptors 0 and 1 from pwnlib import shellcraft print(shellcraft.dupio('mips')) 4.0.0 · Jan 2020 · source
  • Connect to an Android device and set context for exploitation. from pwn import * context.device = 'emulator-5554' context.adb_host = 'localhost' context.adb_port = 5037 3.0.0 · Aug 2016 · source
  • Build an ELF file from custom assembly for local testing. from pwn import * code = asm(''' mov eax, 1 xor edi, edi int 0x80 ''') ep = asm.make_elf(code) 3.0.0 · Aug 2016 · source
SSH environment management shipped Merges or replaces remote SSH session environments rather than just replacing them entirely. 11 releases · 1 other source · first seen Aug 2016

release 11 total

  • Adds the env_add argument to ssh() to merge remote environments. 4.13.0 · Aug 2024 · source · release history
  • Adds ignore_config argument to pwnlib.tubes.ssh and improves allow_agent implementation 4.6.0 · Jul 2021 · source · release history
  • Adds symlink= argument to ssh.set_working_directory for auto-linking files between directories 3.5.0 · Mar 2017 · source · release history
  • Adds shell= option to ssh.process() for shell selection 3.4.0 · Feb 2017 · source · release history
  • Adds support for SigReturn via pwnlib.rop.srop and SigreturnFrame() objects in the ROP module 3.0.0 · Aug 2016 · source · release history
  • Adds context.kernel setting for SigReturn-Oriented-Programming (SROP) 3.0.0 · Aug 2016 · source · release history

example

  • Force a specific shell interpreter when spawning a remote process over SSH. ssh.process(host='target', user='root', shell='/bin/sh') 3.4.0 · Feb 2017 · source
GDB debugging enhancements shipped Configures GDB sessions with custom binaries, ports, timeouts, and supports local Windows debugging. 7 releases · 4 other sources · first seen Aug 2016

release 7 total

  • Adds support for debugging processes on Windows in a cyber tool that previously lacked it 4.14.0 · Jan 2025 · source · release history
  • Allow using GDB Python API via gdb.gdbapi 4.5.0 · Apr 2021 · source · release history
  • Adds context.gdbinit to set a custom GDB initialization file for remote debugging sessions 3.10.0 · Oct 2017 · source · release history
  • Adds the pwn debug CLI command to automate GDB attachment via gdb.attach(process(...)) 3.6.0 · May 2017 · source · release history
  • Adds process().corefile, ssh_process.corefile, and ssh_process.ELF properties for corefile and remote ELF access 3.5.0 · Mar 2017 · source · release history
  • Adds Core object to parse core files and extract memory/register states (e.g. Core('./corefile').eax) 3.0.0 · Aug 2016 · source · release history

example

  • Debug a local process on Windows using specific GDB arguments and port configuration. import pwn pwn.gdb.debug('target.exe', gdb_args=['-q'], port=9000) 4.14.0 · Jan 2025 · source
  • Access the GDB Python API directly within pwntools scripts to automate complex debugger interactions. from pwn import gdb api = gdb.gdbapi # Use api for GDB commands 4.5.0 · Apr 2021 · source
  • Quickly start a GDB session attached to a local process for debugging exploits. pwn debug <binary_name> 3.6.0 · May 2017 · source
  • Inspect the corefile of a running process for debugging memory state. p = process('./vuln') core = p.corefile print(core.read(0x41414141, 4)) 3.5.0 · Mar 2017 · source
Context configuration management shipped Manages runtime context settings such as architecture, binary association, ASLR state, logging destinations, and proxy connections to coordinate exploitation behavior across other tools. 8 releases · 1 other source · first seen Aug 2016

Also counts toward: Command-line interface

release 8 total

  • Adds process.readmem and process.writemem methods for memory inspection and modification 4.6.0 · Jul 2021 · source · release history
  • Adds support for setting context.encoding on Tubes 4.0.0 · Jan 2020 · source · release history
  • Adds context.buffer_size attribute and buffer_fill_size= argument to control tube performance 3.4.0 · Feb 2017 · source · release history
  • Adds context.log_console attribute to direct logging output to any file or terminal 3.3.0 · Dec 2016 · source · release history
  • Adds context.noptrace setting and NOPTRACE magic CLI option to disable ptrace-requiring actions like gdb.debug 3.0.0 · Aug 2016 · source · release history
  • Adds MemLeak.String and MemLeak.NoNewlines helpers for leaking C strings without newline issues 3.0.0 · Aug 2016 · source · release history

example

  • Fine-tune buffer sizes for performance optimization during tube communication. from pwn import * context.buffer_size = 1024 r = remote('localhost', 9999, buffer_fill_size=512) 3.4.0 · Feb 2017 · source
CLI template scaffolding shipped Creates, manages, and executes custom exploit template files with automatic binary/libc detection. 3 releases · 2 other sources · first seen Aug 2016

release

  • pwn template now automatically detects the challenge binary and libc files. 4.13.0 · Aug 2024 · source · release history
  • Enables creating custom templates in the user-config directory for pwn template 4.12.0 · Feb 2024 · source · release history
  • Adds context.binary setting to automatically populate context variables from an ELF file 3.0.0 · Aug 2016 · source · release history

example

  • Detect the binary and libc automatically when generating a new template. $ pwn template --binary ./challenge.elf 4.13.0 · Aug 2024 · source
  • Create a new pwn template file in the user config directory cp my_template.py ~/.config/pwn/templates/my_template.py 4.12.0 · Feb 2024 · source
Emulated environment support shipped Detects and configures QEMU user-mode emulation prefixes to ensure library resolution works correctly within sysroot environments. 3 releases · 2 other sources · first seen Jan 2018

release

  • Add baremetal os to debug binaries executed with qemu-system-$(arch) 4.5.0 · Apr 2021 · source · release history
  • Launches QEMU with sysroot when the corresponding parameter is specified. 4.1.0 · May 2020 · source · release history
  • Enhancements for detecting QEMU_LD_PREFIX used by QEMU user-mode emulation for sysroots 3.11.0 · Jan 2018 · source · release history

example

  • Debug binaries running on baremetal targets using QEMU system emulation. from pwn import context context.os = 'baremetal' # Proceed with debugging 4.5.0 · Apr 2021 · source
  • Start a QEMU instance with a specific sysroot directory for environment-specific exploitation. qemu.launch(sysroot='/path/to/sysroot') 4.1.0 · May 2020 · source
ROP gadget discovery and filtering shipped Allows blacklisting specific byte values in ROP gadget addresses to avoid null bytes or other invalid instructions. 4 releases · 1 other source · first seen Jan 2018

previously: ROP gadget filtering

release

  • Add base= argument to ROP.chain() and ROP.dump() to specify the base address for ROP gadgets 4.4.0 · Mar 2021 · source · release history
  • Add __setattr__ and __call__ interfaces to ROP class for setting registers 4.4.0 · Mar 2021 · source · release history
  • Adds jmp_esp and jmp_rsp attributes to ROP objects for finding instruction pointers 4.3.0 · Nov 2020 · source · release history
  • Added support for blacklisting byte values in ROP gadget addresses 3.11.0 · Jan 2018 · source · release history

example

  • Find available ROP gadgets for stack pivoting on x86 and x64. rop = ELF('binary').rop() gadget = rop.jmp_esp # x86 gadget = rop.jmp_rsp # x64 4.3.0 · Nov 2020 · source
Memory leak and exploitation utilities shipped Provides specialized helpers for memory disclosure, format string attacks, heap base detection, and data fitting/encoding to support complex exploitation workflows. 5 releases · first seen Aug 2016

release

  • Adds context.log_console attribute to direct logging output to any file or terminal 3.3.0 · Dec 2016 · source · release history
  • Adds connect() alias for remote(), and ssh.read() / ssh.write() aliases for SSH tube operations. 3.2.0 · Nov 2016 · source · release history
  • Adds heap attribute to DynELF instances to leak the current brk address for heap base detection. 3.2.0 · Nov 2016 · source · release history
  • Adds fit(), negative(), xor_key(), and mbruteforce() utility functions 3.0.0 · Aug 2016 · source · release history
  • Adds fmtstr module for assisting with Format String exploitation 3.0.0 · Aug 2016 · source · release history
ELF metadata analysis shipped Queries detailed ELF properties such as debug info status, stripped state, and CET support. 2 releases · 1 other source · first seen Mar 2017

release

  • Adds ELF.stripped and ELF.debuginfo properties to query ELF metadata. 4.13.0 · Aug 2024 · source · release history
  • Adds ssh.checksec to report kernel version and security settings on connection 3.5.0 · Mar 2017 · source · release history

example

  • Check the security context of a remote host upon connection. p = ssh.connect('host') print(p.checksec()) 3.5.0 · Mar 2017 · source
GDB wrapper support shipped Supports running the pwntools-gdb wrapper script to manage GDB interactions rather than invoking the system gdb directly. 2 releases · 1 other source · first seen Feb 2018

Also counts toward: Python scripting support, Scripting API

release

  • Allow using GDB Python API via gdb.gdbapi 4.5.0 · Apr 2021 · source · release history
  • Adds support for running the pwntools-gdb wrapper script instead of system gdb 3.12.0 · Feb 2018 · source · release history

example

  • Access the GDB Python API directly within pwntools scripts to automate complex debugger interactions. from pwn import gdb api = gdb.gdbapi # Use api for GDB commands 4.5.0 · Apr 2021 · source
Structured file format support shipped Provides classes and utilities for constructing and manipulating complex, structured binary file formats during exploitation workflows. 2 releases · 1 other source · first seen Jan 2020

release

  • FileStructure class added for exploitation workflows involving structured file formats. 4.1.0 · May 2020 · source · release history
  • Adds pwnlib.adb.bootimg module for parsing 'ANDROID!' format boot.img images 4.0.0 · Jan 2020 · source · release history

example

  • Parse an Android boot image to inspect partition layouts from pwnlib.adb.bootimg import BootImage bi = BootImage(open('boot.img').read()) print(bi.kernel_size) 4.0.0 · Jan 2020 · source
Streamlined CLI tooling shipped Unifies command-line interfaces under a single entry point and adds utility functions for cyclic pattern generation compatible with Metasploit. 3 releases · first seen Nov 2016

Also counts toward: Command-line interface

release

  • context now has two additional attributes, cyclic_alphabet and cyclic_length, which correspond to the arguments alphabet and n to cyclic() and cyclic_find() and related routines. 3.11.0 · Jan 2018 · source · release history
  • Adds cyclic_metasploit and cyclic_metasploit_find functions 3.3.0 · Dec 2016 · source · release history
  • Unifies command-line tools under the pwn entry point (e.g., pwn asm nop) with an option to skip installing legacy scripts. 3.2.0 · Nov 2016 · source · release history
Process management enhancements shipped Extends local process creation with arguments for ASLR, setuid, raw mode, PTY support, and alarm-based timeouts. 3 releases · first seen Aug 2016

release

  • Adds context.buffer_size attribute and buffer_fill_size= argument to control tube performance 3.4.0 · Feb 2017 · source · release history
  • Adds optional alarm argument to the process constructor to set a SIGALRM timeout on spawned processes. 3.2.0 · Nov 2016 · source · release history
  • Adds aslr, setuid, and raw arguments to process(), plus PTY support for stdout, stderr, and stdin 3.0.0 · Aug 2016 · source · release history
Android device exploitation support shipped Enables connecting to, managing, and interacting with Android devices via ADB for context setting, package installation, and process management. 3 releases · first seen Aug 2016

release

  • Adds adb.uptime and adb.boot_time attributes to the adb module 3.3.0 · Dec 2016 · source · release history
  • Adds install, uninstall, and packages methods to the adb module and introduces adb.protocol for direct server communication. 3.2.0 · Nov 2016 · source · release history
  • Adds adb module plus context.device, context.adb_host, and context.adb_port for connecting to Android devices 3.0.0 · Aug 2016 · source · release history
Windows process execution support shipped Enables creating and managing remote or local processes on Windows systems via the tool's interface. 1 release · 1 other source · first seen Feb 2017

release

  • Adds support for starting processes on Windows via process(). 4.13.0 · Aug 2024 · source · release history

example

  • Force a specific shell interpreter when spawning a remote process over SSH. ssh.process(host='target', user='root', shell='/bin/sh') 3.4.0 · Feb 2017 · source
Context-aware hex formatting shipped Generates hexadecimal strings with custom delimiters and prefixes for specific protocol formats. 1 release · 1 other source · first seen Feb 2024

Also counts toward: Command-line interface

release

  • Adds -p (--prefix) and -s (--separator) arguments to the hex command for custom hex string formatting 4.12.0 · Feb 2024 · source · release history

example

  • Generate hex strings with custom delimiters for specific protocol formats pwn hex -p 0x -s , 'AABB' 4.12.0 · Feb 2024 · source
Version checking utility shipped Provides a command-line interface to display the currently installed version of the cyber tooling in the local environment. 1 release · 1 other source · first seen Nov 2020

Also counts toward: Command-line interface

release

  • Adds pwn version command line tool to print the installed pwntools version 4.3.0 · Nov 2020 · source · release history

example

  • Check which pwntools version is currently installed in the environment. pwn version 4.3.0 · Nov 2020 · source
Remote command execution management shipped Provides utilities for running commands in new terminal sessions, including detection of GNU Screen, and managing dynamic content injection. 2 releases · first seen Feb 2018

release

  • Adds detection of GNU Screen for the run_in_new_terminal function 3.12.0 · Feb 2018 · source · release history
  • Adds labels argument to fit() to allow dynamic contents injection 3.12.0 · Feb 2018 · source · release history
CLI exploit scaffolding shipped Generates new project structures and script files with standard boilerplate for rapid exploit development. 1 release · 1 other source · first seen May 2017

Also counts toward: Command-line interface, Python scripting support

release

  • Adds the pwn template CLI command to bootstrap new exploit projects 3.6.0 · May 2017 · source · release history

example

  • Create a new script file with the standard pwntools boilerplate for a new exploit. pwn template my_exploit.py --remote example.com 1337 3.6.0 · May 2017 · source
Android file system operations shipped Performs file and directory management on connected Android devices via ADB, including creation, deletion, and existence checks. 1 release · 1 other source · first seen Feb 2017

release

  • Adds unlink, mkdir, makedirs, isdir, exists functions to the adb module 3.4.0 · Feb 2017 · source · release history

example

  • Check if a directory exists on an Android device via ADB before attempting to read it. from pwn import adb adb.isdir('/data/local/tmp') 3.4.0 · Feb 2017 · source
Shellcode assembly and build support shipped Allows building ELF modules from custom assembly or pre-assembled shellcode, exposing command-line tools for assembly operations. 2 releases · first seen Aug 2016

Also counts toward: Command-line interface

release

  • Adds -d option to the shellcraft command-line tool for hex-escaped output 3.3.0 · Dec 2016 · source · release history
  • Adds asm.make_elf and asm.make_elf_from_assembly for building ELF modules from assembly or pre-assembled shellcode 3.0.0 · Aug 2016 · source · release history
Manual file upload fallback shipped Uploads files to remote shells using basic shell commands when binary tube transfers are blocked. 1 other source · first seen Oct 2025

example

  • Upload a local file to a remote shell target when binary tubes are blocked. io.upload_manually('exploit.py', '/tmp/exploit.py') 4.15.0 · Oct 2025 · source
Process mapping inspection shipped Retrieves detailed memory mappings for currently running processes. 1 release · first seen Jan 2025

release

  • Adds functions for retrieving process mappings in the cyber tooling 4.14.0 · Jan 2025 · source · release history
Tube configuration and encoding shipped Configures character encoding and communication parameters for inter-process and network streams used during exploitation. 1 other source · first seen Jan 2020

example

  • Configure the character encoding used by tube reads and writes from pwnlib import context context.encoding = 'utf-8' 4.0.0 · Jan 2020 · source
Android image extraction support shipped Enables extraction of specific Android system images, such as BOOTLDR! images, for analysis. 1 release · first seen Feb 2018

release

Server listener management shipped Provides a dedicated module for creating and managing reusable server listeners to accept incoming connections. 1 release · first seen Feb 2018

release

  • Adds pwnlib.tubes.server module for creating a reusable server listener 3.12.0 · Feb 2018 · source · release history
Global configuration management shipped Manages persistent runtime settings and defaults for the cyber toolchain via a dedicated configuration module. 1 release · first seen May 2017

release

  • Adds the pwnlib.config module with configuration stored in ~/.pwn.conf 3.6.0 · May 2017 · source · release history
Remote ELF access shipped Retrieves executable file metadata and properties from remote processes over SSH without local file copies. 1 release · first seen Mar 2017

release

  • Adds process().corefile, ssh_process.corefile, and ssh_process.ELF properties for corefile and remote ELF access 3.5.0 · Mar 2017 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for pwntools, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail pwntools puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

24 entries

  1. October 20251
  2. January 20251
  3. August 20241
  4. February 20241
  5. September 20231
  6. May 20231
  7. December 20221
  8. November 20211
  9. July 20211
  10. April 20211
  11. March 20211
  12. November 20201
  13. May 20201
  14. January 20201
  15. February 20181
  16. January 20181
  17. October 20171
  18. July 20171
  19. May 20171
  20. March 20171
  21. February 20171
  22. December 20161
  23. November 20161
  24. August 20161
    Show

    24 entries

    Project health

    Issue, contributor and maintainer activity in Gallopsled/pwntools, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 38 +6 vs prior 12 months
    2. Maintainers 2 +0 joined · −1 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 74% of issues opened, last 12 months
    5. Median time to close 184 days first maintainer reply 10 days
    6. Open backlog 92 of 1,134 issues ever filed
    1. Issues opened / month 1 · 1 communitymaintainers
    2. Open backlog 92
    3. Contributors / month 1
    4. Commits / month 1
    5. Stars 13,710
    Issue themes, last 12 months
    • bugs 44%
    • features 29%
    • questions 9%
    • other 18%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →