Skip to main content

A curated list of awesome Python reverse engineering libraries, tools and resources

84
GitHub Stars
43
Curated Resources
10
Categories
22 hours ago
Last Refreshed
DisassemblersDecompilersDebuggersBytecodePython internalsPackersExtractorsObfuscatorsDeobfuscatorsResources

Use this list with your AI agent

Add the Context Awesome MCP server to Claude, Cursor, or any MCP client, then ask:

"Show me manual analysis resources from awesome-python-re"

Installation instructions →

What's inside

Obfuscators

  • Anubis

  • Berserker

  • Cython

    Cython isn't officially seen as an obfuscator but because it compiles Python code to C code it definitely helps with making the code harder to understand.

  • development tools's obfuscator

  • Hyperion

    This obfuscator is unique since it's one of the only ones that actually transforms your Python code. Since it returns plain Python source code it can be used on any platform that has Python available.

  • Kramer

Deobfuscators

  • bonedensity

    A deobfuscator for the obfuscator PyArmor. Supports both the free and the paid Super mode.

  • Hyperion-deobfuscator

    A deobfuscator for the obfuscator Hyperion.

  • nuitka-helper

    Not a deobfuscator but a tool that does symbol recovery for Nuitka samples. Read the blog post linked in the README.

  • Pyarmor-Static-Unpack-1shot

    A deobfuscator for the obfuscator Pyarmor 8.0 and above. Supports both free and pro versions.

  • PyArmor-Unpacker

    The most popular deobfuscator for the obfuscator Pyarmor. It only supports the free version of Pyarmor.

Python internals

  • CPython

    The CPython source code itself can often times be very useful to modify or trace.

  • inspect

    A built-in library to inspect live objects. It gives information about objects like modules, classes, methods, functions, tracebacks, frame objects, and code objects. (Can be used along with

Decompilers

  • decompile3

    A Python decompiler aiming to support versions 3.7 - 3.8.

  • pycdc

    A disassembler and decompiler written in C++ aiming to support all Python versions. This decompiler is known to be unstable.

  • pycdc (snippet decompiler)

    This tool decompiles individual snippets of Python bytecode as opposed to entire binary files, aiming to help manual decompilation of binaries that are unsupported by state-of-the-art Python decompilers.

  • pylingual

    An AI decompiler for multiple, more recent, Python versions. Has built-in output checking and is in general one of the better decompilers out there.

  • uncompyle6

    A Python decompiler aiming to support versions 1.0 - 3.8 (including Dropbox's Python 2.5 bytecode and some PyPy bytecodes).

  • unpyc3.7-3.10

    A fork of a decompiler which aims to support versions 3.7 - 3.10.

Disassemblers

  • dis

    The built-in Python disassembler.

  • pyfalcon

    A cross-version Python disassembler written in Rust. Has a

Bytecode

  • hypnoManual analysis

    A cross-platform tool/library allowing to inject python code into a running python process. Can be installed through

  • PyInjectorManual analysis

    An injector for Windows that allows you to inject Python code into any Python process. It can be useful to expose variables, functions, grab code objects and many other things.

  • pySpyEditors

    This tool aims to make viewing and editing bytecode easier. Only works properly for version 3.9.

  • PythonForWindowsManual analysis

    This library allows you to interact with windows but also lets you inject Python code into another Python process without needing to inject a dll yourself.

  • xdisEditors

    A Python cross-version bytecode library and disassembler. This library allows you to modify bytecode programmatically.

  • x-pythonManual analysis

    A Python implementation of the C interpreter. It can be useful to run bytecode instruction by instruction.

Extractors

  • nuitka-extractor

    An extractor for nuitka. This basically does the same thing as looking in the

  • pyinstxtractor

    pyinstxtractor is the most popular extractor for PyInstaller. It supports almost all versions of PyInstaller. (

  • unpy2exe

    unpy2exe is an extractor for py2exe but is not maintained anymore and likely will fail on newer versions of py2exe.

Showing a sample of 43 resources. View the full list on GitHub →