Skip to main content

Static deobfuscator for Themida's mutation-based obfuscation.

Project description

themida-unmutate

GitHub release Minimum Python version CI status

A Python 3 tool to statically deobfuscate functions protected by Themida, WinLicense and Code Virtualizer 3.x's mutation-based obfuscation.
The tool has been tested on Themida up to version 3.1.9. It's expected to work on WinLicense and Code Virtualizer as well.

A Binary Ninja plugin is also available here.

Features

  • Automatically resolve trampolines' destination addresses
  • Statically deobfuscate mutated functions
  • Rebuild fully working binaries

Known Limitations

  • Doesn't support ARM64 binaries

How to Download

You can install the project with pip:

pip install themida-unmutate

A standalone PyInstaller build is available for Windows in "Releases".

How to Use

Here's what the CLI looks like:

$ themida-unmutate --help
usage: themida-unmutate [-h] -a ADDRESSES [ADDRESSES ...] -o OUTPUT [--no-trampoline] [--reassemble-in-place] [-v] protected_binary

Automatic deobfuscation tool for Themida's mutation-based protection

positional arguments:
  protected_binary      Protected binary path

options:
  -h, --help            show this help message and exit
  -a ADDRESSES [ADDRESSES ...], --addresses ADDRESSES [ADDRESSES ...]
                        Addresses of the functions to deobfuscate
  -o OUTPUT, --output OUTPUT
                        Output binary path
  --no-trampoline       Disable function unwrapping
  --reassemble-in-place
                        Rewrite simplified code over the mutated code rather than in a new code section
  -v, --verbose         Enable verbose logging

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

themida_unmutate-0.2.1.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

themida_unmutate-0.2.1-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

Details for the file themida_unmutate-0.2.1.tar.gz.

File metadata

  • Download URL: themida_unmutate-0.2.1.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for themida_unmutate-0.2.1.tar.gz
Algorithm Hash digest
SHA256 92736112936bd6f528894dfcf55747a0944a581178f13809f39555cece4b27b5
MD5 d98a08541fb0fa203748a453fe4f9d9e
BLAKE2b-256 f0e3f90feb31467d2d4a87ee93a05afec390ef11c7e9ffbc4ed4f49ac0e89e60

See more details on using hashes here.

File details

Details for the file themida_unmutate-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for themida_unmutate-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3c1726bb0c49ffc9b3ee596f09862eb2d506ae00e3649ef0368697fd6da4660f
MD5 2b527b97a04041b6aa87cb8ad55ab77f
BLAKE2b-256 f690ad5f03a74f960f8c14cb8170adc5f90b55dd11c16dcd38d9b01e33788456

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page