ergrelet / themida-unmutate

Static deobfuscator for Themida, WinLicense and Code Virtualizer 3.x's mutation-based obfuscation.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

themida-unmutate

GitHub release Minimum Python version CI status

A Python 3 tool to statically deobfuscate functions protected by Themida 3.x's mutation-based obfuscation.

Features

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

Known Limitations

  • Doesn't support ARM64 binaries

How To

Download

You can fetch the project with git and install it with pip:

pip install git+https://github.com/ergrelet/themida-unmutate.git

Use

Here's what the CLI looks like:

themida-unmutate --help
usage: themida-unmutate.cmd [-h] -a ADDRESSES [ADDRESSES ...] -o OUTPUT [-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
  -v, --verbose         Enable verbose logging

You can also find a Binary Ninja plugin in the binja_plugin directory.

About

Static deobfuscator for Themida, WinLicense and Code Virtualizer 3.x's mutation-based obfuscation.

License:GNU General Public License v3.0


Languages

Language:Python 100.0%