
Themida / Code Virtualizer / WinLicense (v3.0-v4) の自動アンパッカーおよびダンプ修正ツール
Themidaで保護されたバイナリ用の汎用アンパッカーであり、実行時保護を除去するツールです。 Unthemidatorはバイナリを実行せず、ホストマシン上で対象バイナリが使用するAPIの呼び出しやシステムコールの実行も行いません。
Unthemidatorは、x86(32ビット)およびx86_64 / amd64(64ビット)の両方のバリエーションで、あらゆる種類のWindowsバイナリ(dll、exe、sysなど)に対応します。
アンパック後は完全なPE再構築が行われ、アンパックされたバイナリは実行可能かつデバッグ可能になります。
アンパックとPE再構築に加えて、Unthemidatorはバイナリ内で使用されているThemida / Code Virtualizer仮想マシンのバージョンを特定できます。
パックされたバイナリをunthemidatorにドラッグ&ドロップするか、Windows上で以下のCLIコマンドを使用するだけです:
unthemidator.exe [options] {path_to_bin.exe|.dll|.sys|.bin}
and the following CLI command on a Unix-based system:
./unthemidator [options] {path_to_bin.exe|.dll|.sys|.bin}
PE は、ファイル拡張子が .sys の場合にのみカーネルドライバと見なされます。 これは、任意の拡張子を持つファイルをデフォルトでユーザーモードアプリケーションとして正しく解析するために行われます。 言うまでもなく、パックされたカーネルドライバは極めて稀であり、安全でないシステム上でしか実行できません。
以下は、すべての unthemidator オプションの完全な概要です。
--out-file - 出力ファイル名 / パス。デフォルトは {program_name}.unpacked.{program_extension}--license-file - ライセンスファイル名 / パス。WinLicense で保護されたバイナリのアンパックを成功させるために必要です。--imports-file - インポートに関する情報を保存するファイルの名前(またはパス)。JSON である必要があります。デフォルトは {program_name}.imports.json--vms-file - VM エントリポイントに関する情報を保存するファイルの名前(またはパス)。JSON である必要があります。デフォルトは {program_name}.vms.json--vm-depth - 仮想マシンの調査および仮想命令トレース用に、何層の仮想化レイヤーをシングルステップ実行するか。デフォルトは 0 - VM 探索なし。--no-imp - インポート検索をスキップ--no-startup - ランタイムスタートアップ処理をスキップ。これにより、初期ブート段階を除くすべてのアンパックが防止されます。--no-vm-lookup - 仮想マシン検索をスキップ--no-loader - アンチダンプフィクサローダーの生成をスキップ。OEP が仮想化されている場合や、マクロごとのセキュリティチェックが存在する場合、バイナリが実行不能になる可能性があります。一部のバイナリは、プログラムに同梱されたカスタムモジュールに依存しています。そのようなバイナリをアンパックする前に、すべてのカスタムモジュールを
modules ディレクトリに置くだけで済みます。同様のことは、不足しているシステム
モジュールにも当てはまり、Unix システム上で unthemidator を実行している場合に便利です。
問題が発生した場合や、意図したとおりに動作しない(またはまったく動作しない)場合は、このリポジトリで issue を作成してください。
コンパイル済みの unthemidator は Releases ページを確認してください。 現在、以下のバリアントが利用可能です:
仮想マシンを含む Themida の難読化内部構造について詳しくは、以下の記事をご覧ください: