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.0.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.0-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: themida_unmutate-0.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 e002fea8903c1c0b91fbb261a383f15fc2db1584538d86de353d2587610ece08
MD5 444278109d35c89a1c806ad94ffc22fd
BLAKE2b-256 894543c68570f34b185003fe71c60b07f10a40908110f898c55116620ae60047

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for themida_unmutate-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 469ab99eb32165eb01b30ba6a451bc71934c6cb0bca8e05ce7dbfaa8f64db265
MD5 7471f320c301bb0b9dba724eea0e7394
BLAKE2b-256 ba318e1b8e7364b90d4672cf726dfc4c647575408edafb58280bc2664a089d0d

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