Skip to content

Releases: rocky/python-xdis

Your Conference listed here

Choose a tag to compare

@rocky rocky released this 30 Mar 12:26
  • Add magics up to 3.10.20, 3.11.15, 3.12.13, and 3.15.0a7
  • Add Graal and RustPython opcodes and disassembly
  • Test framework a la Elliot Tarbet
  • Add IS_C_PYTHON, which tests whether the platform is the CPython implementation
  • DRY unmarshal integer reading routines

BSides NYC 2025 - take 2

Choose a tag to compare

@rocky rocky released this 17 Oct 17:14
  • Add magics 3.13.9 3.15.0a1, and PyPy 3.9-v7.3.8
  • Correct PyPy 3.11 unmarshaling

Thanks to brad_anton at BSides NYC 2025.

BSides NYC 2025

Choose a tag to compare

@rocky rocky released this 12 Oct 19:36
  • Include Python versions 3.9.24, 3.10.19, 3.11.14, and 3.12.12
  • Better code type and marshalling routines for 3.11+
  • Adjust formatting for MAKE_FUNCTION for 3.6 & 3.11. Python 3.11 MAKE_FUNCTION is different from 3.6.
  • Fix O(n^2) performance issue with Python 3.11+ exception. Patch submitted by ril3y.
  • Don't allow installing the wrong wheel or tarball for the Python interpreter installed.
  • Add more magics like Rust and 3.15. Python 3.14 is out, so that's another magic number too.
  • Minimal support for RustPython bytecode.
  • Improve 3.13 assembly printing
  • Handle pyston and unknown bytecodes better
  • More type annotations via pyrefly

6.1.6

Choose a tag to compare

@rocky rocky released this 05 Sep 00:13
  • Note existence of 3.13.{6,7}
  • bugfix from Andrey that caused a slowdown when disassembling massive amounts of bytecode

6.1.5

Choose a tag to compare

@rocky rocky released this 25 Jul 19:29
  • Start extended formatting for stack maipulation opcodes: SWAP, COPY, DUP_TUP, ROT_XXX
  • Add magics: RustPython 3.12 & 3.13, Graal 3.11.7, PyPy 3.11.3
  • Note that Python versions 3.9.21-3.9.24, 3.10,18, 3.11.13, 3.12.11, 3.13.4-5 now exist
  • Add PyPy 3.9 and 3.10 bytecode for regular testing
  • Fix #163: extended formatting for %=

In memory of those that have fought for democracy

Choose a tag to compare

@rocky rocky released this 26 May 15:18
  • Add another cross-python testing mechanism courtesy of Elliot Tarbet 2elli
  • Update Python magics for 3.10.7, 3.11,12, 3.12.9, 3.12.10, 3.13.2, 3.13.3

Beethoven+3

Choose a tag to compare

@rocky rocky released this 19 Dec 17:19
  • Support for Python 3.13 added courtesy of Elliot Tarbet 2elli
  • Add get_logical_instruction_at_offset() This disassembles a single instruction at a given offset
  • Update Python magics for 3.13.1, 3.10.16, pypy3.6.12, 3.12.8

Nathanman

Choose a tag to compare

@rocky rocky released this 09 Nov 00:21
  • Support for Python 3.12 and 3.12 added courtesy of Elliot Tarbet 2elli
  • Fixes issues: #137, #138, #146, and #147
  • Include Python 3.12.5
  • Raise exception on invalid timestamp

6.1.1

Choose a tag to compare

@rocky rocky released this 21 Jul 16:46
  • Greatly improve extended-format output. (More could be done though)
  • Update Python versions recognize, e.g. 3.12.4
  • Add nullaryloadop for nullary load opcodes
  • More code linting and type annotation

BlackHat Asia 2024 -- Ides of March

Choose a tag to compare

@rocky rocky released this 16 Mar 01:17

Lots of changes major changes. API has changed.

We now support many disassembly options:

  • classic: disasm-like output
  • bytes: disasm-like output with bytecode
  • extended: simple interpretation of previous sequence of instructions
  • extended-bytes: same as above, but with "bytes" bytecode ouptut
  • header: show header/metadata information only

This is reflected in the --format (-F) options on pydisasm.
Option --show-source (-S) gives add the source text line (or part of it) before assembly instructions that implement the line.

Released Python magic numbers have been updated as of this release (up to Python 3.12.2, including PyPy magic numbers.

Some support for the GraalVM
implementation of Python started.

Many bugs fixed.

A lot of Linting and coding style modernization.

typing.NameTuple used for Python versions that support this.
Additional fields "start_offset" and "tos_str" added to instruction.

Elliot Tarbet (2elli) largely provided support for Python 3.11 and 3.12 bytecode