
Donut obfuscator のサンプルから、ローダーシェルコードのシグネチャを検出し、DONUT_INSTANCE 構造体を解析し、DONUT_MODULE データをダンプすることで、内部ペイロードを抽出および復号します。
donutバイナリ難読化ツール用の設定およびモジュール抽出ツール
donut-decryptorは、ファイル内にdonut難読化ツールのローダーシェルコードの既知のシグネチャが存在するかどうかをチェックします。見つかった場合、シェルコードを解析してバイナリに埋め込まれたDONUT_INSTANCE構造体を特定・復号・抽出し、関連する設定データを報告します。バイナリ内にDONUT_MODULEが存在する場合は、それを復号してディスクにダンプします。
donut-decryptorを使用するには、プロジェクトのルートディレクトリに移動し、pipを使用してインストールします:
cd /path/to/donut-decryptor
python -m pip install .
インストール後、コマンドラインスクリプトが利用可能になります。使用方法については以下を実行してください:
donut-decryptor --help
このプロジェクトでは、プロジェクト管理にHatch、リンティングとフォーマットにRuff、型チェックにmypyを使用しています。
Hatchをインストールします:
pip install hatch
hatch run test
hatch run test-cov # カバレッジ付き
hatch run lint:style # スタイルチェック
hatch run lint:fmt # コードのフォーマットと問題の修正
hatch run lint:typing # mypy型チェックの実行
hatch run lint:all # すべてのチェックを実行
samplesディレクトリに存在するファイルは、パスワードinfectedで保護された7zファイルであり、そのすべてにこのスクリプトでデコード可能なdonutが含まれています。