Skip to content

Releases: rocky/python-xdis

BSides NYC 2025 - take 2

17 Oct 17:14

Choose a tag to compare

  • 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

12 Oct 19:36

Choose a tag to compare

  • 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

05 Sep 00:13

Choose a tag to compare

  • Note existence of 3.13.{6,7}
  • bugfix from Andrey that caused a slowdown when disassembling massive amounts of bytecode

6.1.5

25 Jul 19:29

Choose a tag to compare

  • 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

26 May 15:18

Choose a tag to compare

  • 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

19 Dec 17:19

Choose a tag to compare

  • 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

09 Nov 00:21

Choose a tag to compare

  • 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

21 Jul 16:46

Choose a tag to compare

  • 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

16 Mar 01:17

Choose a tag to compare

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

Season Update

23 Dec 03:28

Choose a tag to compare

  • Detect versions pypy3.8.15, pypy-3.9.15
  • Dectect Python 3.{7,8,9}.14 3.10.{5,6,7}
  • correct 3.10+ pydisasm -F xasm label
  • Revise marshal error handling (Issue #97)
  • Improve PyPy 3.7 CALL_FUNCTION arg interpretation
  • Fix 1.5-2.x bugs in line number encoding
  • Fix showing MAKE_FUNCTION operand
  • Miscellaneous lint, black, and isort changes