<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>pwntools — The Cyber Toolchain</title>
    <link>https://cybertoolchain.io/tools/pwntools</link>
    <description>New releases and features in pwntools, tracked by The Cyber Toolchain.</description>
    <language>en</language>
    <lastBuildDate>Sun, 12 Oct 2025 15:16:44 GMT</lastBuildDate>
    <atom:link href="https://cybertoolchain.io/tools/pwntools/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>pwntools 4.15.0</title>
      <link>https://github.com/Gallopsled/pwntools/releases/tag/4.15.0</link>
      <guid isPermaLink="true">https://github.com/Gallopsled/pwntools/releases/tag/4.15.0</guid>
      <pubDate>Sun, 12 Oct 2025 15:16:44 GMT</pubDate>
      <description>Adds `context.gdb_binary`, `tube.upload_manually`, and asm() caching to pwntools 4.15.0
• Adds `context.gdb_binary` config key to specify the GDB binary path for all debugger interactions
• Adds `tube.upload_manually` method to upload data to a remote shell using shell commands instead of binary transfer
• Enables output caching for asm() function to speed up subsequent exploit runs, controllable via `context.cache_dir`
Breaking changes:
• The &apos;debug&apos; CLI command is deprecated and will be removed; use &apos;pwn debug&apos; instead
• Direct invocation of most CLI scripts is deprecated; use the &apos;pwn&apos; wrapper (e.g., &apos;pwn checksec&apos;) instead
• Deprecated `keepends` argument in `tube.recvline*`; use `drop` instead for consistent semantics
Full history on Cyber Toolchain: https://cybertoolchain.io/tools/pwntools</description>
    </item>
    <item>
      <title>pwntools 4.14.0</title>
      <link>https://github.com/Gallopsled/pwntools/releases/tag/4.14.0</link>
      <guid isPermaLink="true">https://github.com/Gallopsled/pwntools/releases/tag/4.14.0</guid>
      <pubDate>Wed, 15 Jan 2025 08:04:57 GMT</pubDate>
      <description>pwntools 4.14.0 adds RISCV64 shellcraft, Windows process debugging, and named parameters to gdb.debug()
• Adds basic RISCV64 shellcode generation support via `shellcraft`
• Enables concatenating multiple shellcraft templates on the command line using `shellcraft A + B`
• Adds local libc database provider for `libcdb` to enable offline analysis without network requests
• Adds `offline` parameter to libcdb.search_by_hash() and `offline_only` parameter to search_by_symbol_offsets()
• Adds support for debugging processes on Windows in a cyber tool that previously lacked it
• Enables assembly/disassembly on Windows via the existing asm/disasm functions
• Adds TTY escape function for file transfer capabilities
• Adds IPv6 support to shellcode socket generators
• Adds &quot;none&quot; SSH authentication method option
• Adds `port`, `gdb_args`, and `gdbserver_args` parameters to the gdb.debug() API
• Adds functions for retrieving process mappings in the cyber tooling
Full history on Cyber Toolchain: https://cybertoolchain.io/tools/pwntools</description>
    </item>
    <item>
      <title>pwntools 4.13.0</title>
      <link>https://github.com/Gallopsled/pwntools/releases/tag/4.13.0</link>
      <guid isPermaLink="true">https://github.com/Gallopsled/pwntools/releases/tag/4.13.0</guid>
      <pubDate>Mon, 12 Aug 2024 17:02:59 GMT</pubDate>
      <description>pwntools 4.13.0 adds Windows process support, `ELF.stripped`/`ELF.debuginfo` properties, `process.env_add`, `ssh.env_add`, `gdb.server_timeout`, and `ssh.libs.flatten`.
• `pwn template` now automatically detects the challenge binary and libc files.
• Adds `ELF.stripped` and `ELF.debuginfo` properties to query ELF metadata.
• Adds support for starting processes on Windows via process().
• `checksec` output now includes x86 CET status.
• Adds the `env_add` argument to process() to merge environments instead of replacing them.
• Adds the `env_add` argument to ssh() to merge remote environments.
• Adds a `flatten` argument to `ssh.libs` to control library resolution output.
• Adds a `timeout` argument to `gdb.server` to configure the gdbserver connection wait time.
Full history on Cyber Toolchain: https://cybertoolchain.io/tools/pwntools</description>
    </item>
    <item>
      <title>pwntools 4.12.0</title>
      <link>https://github.com/Gallopsled/pwntools/releases/tag/4.12.0</link>
      <guid isPermaLink="true">https://github.com/Gallopsled/pwntools/releases/tag/4.12.0</guid>
      <pubDate>Thu, 22 Feb 2024 21:36:27 GMT</pubDate>
      <description>pwn template adds --libc and custom templates; hex gets -p/-s; ssh.process allows empty argv
• Adds `--libc` argument to the `pwn` template CLI for specifying a libc binary
• Adds -p (--prefix) and -s (--separator) arguments to the `hex` command for custom hex string formatting
• Enables creating custom templates in the user-config directory for `pwn` template
• Allows empty argv in ssh.process() by removing the previous constraint
• Adds `shellcraft.sleep` template wrapping SYS_nanosleep syscall
• Allows passing a `str` directly to ELF.search() without pre-encoding
Breaking changes:
• The `wd` parameter in `ssh.system` and `ssh.run_to_end` is renamed to `cwd`
Full history on Cyber Toolchain: https://cybertoolchain.io/tools/pwntools</description>
    </item>
    <item>
      <title>pwntools 4.11.0</title>
      <link>https://github.com/Gallopsled/pwntools/releases/tag/4.11.0</link>
      <guid isPermaLink="true">https://github.com/Gallopsled/pwntools/releases/tag/4.11.0</guid>
      <pubDate>Fri, 15 Sep 2023 22:11:11 GMT</pubDate>
      <description>pwndb libsearch added via leaked addresses, RISC-V 64 support, and fmtstr $-notation bypass
• Adds search for libc binary by leaked function addresses (libsearch)
• Adds `RISC-V` 64-bit architecture support in ELF analysis
• Enables `fmtstr` payload generation without `$` notation
Full history on Cyber Toolchain: https://cybertoolchain.io/tools/pwntools</description>
    </item>
    <item>
      <title>pwntools 4.10.0</title>
      <link>https://github.com/Gallopsled/pwntools/releases/tag/4.10.0</link>
      <guid isPermaLink="true">https://github.com/Gallopsled/pwntools/releases/tag/4.10.0</guid>
      <pubDate>Sun, 21 May 2023 13:55:57 GMT</pubDate>
      <description>pwntools 4.10.0 adds support for cyclic offsets &gt; 4 bytes and capture groups in tube.recvregex
• `pwn cyclic -l` now handles entry values larger than 4 bytes
• `tube.recvregex` now returns capture groups instead of full match strings
Full history on Cyber Toolchain: https://cybertoolchain.io/tools/pwntools</description>
    </item>
    <item>
      <title>pwntools 4.9.0</title>
      <link>https://github.com/Gallopsled/pwntools/releases/tag/4.9.0</link>
      <guid isPermaLink="true">https://github.com/Gallopsled/pwntools/releases/tag/4.9.0</guid>
      <pubDate>Thu, 29 Dec 2022 13:15:09 GMT</pubDate>
      <description>Adds the `libcdb` commandline tool and `js_escape` utility functions.
• js_escape() and js_unescape() in `util.fiddling`
Full history on Cyber Toolchain: https://cybertoolchain.io/tools/pwntools</description>
    </item>
    <item>
      <title>pwntools 4.7.0</title>
      <link>https://github.com/Gallopsled/pwntools/releases/tag/4.7.0</link>
      <guid isPermaLink="true">https://github.com/Gallopsled/pwntools/releases/tag/4.7.0</guid>
      <pubDate>Mon, 15 Nov 2021 11:45:40 GMT</pubDate>
      <description>Adds basic RISC-V and bare-metal ARM toolchain support, `pwn phd` SIGPIPE handling, zsh/bash completions, new `shellcraft.linux.cat2`, and PwnlibException message access
• Add `shellcraft.*.linux.cat2`, which uses alloc+read+write instead of sendfile
• Add zsh completion script
• Add bash completion script
• Add `self.message` and change `sys.exc_type` to sys.exec_info() in PwnlibException
• Silence SIGPIPE error for &quot;pwn phd&quot;
Breaking changes:
• The `sys.exc_type` attribute is replaced by sys.exec_info() in `PwnlibException`
Full history on Cyber Toolchain: https://cybertoolchain.io/tools/pwntools</description>
    </item>
  </channel>
</rss>
