ソースコード
プラグインは、完全な C# ソースコードとともに配布されます。ソースコードからプラグインをビルドするには、次のものが必要です。
- Visual Studio 2022 以降
- Babel Obfuscator の Enterprise エディションまたは Ultimate エディションの最新リリース
ビルド手順
Visual Studio のソリューションファイル「Babel.BabelEncrypt.sln」を開き、プロジェクトをビルドします。プラグインのプロジェクトは、babel_net472 zip パッケージを展開したフォルダーにある「babel.exe」(コマンドラインツールの .NET Framework ビルド)を参照しています。「babel.exe」への参照が見つからない場合は、その参照を削除し、同じフォルダーの「babel.exe」を追加してください。
コードの変更
ソースコードを変更する予定がある場合は、このセクションが簡単なリファレンスとヒントになり、スムーズに作業を始められます。
ソースファイル
Encrypt Plugin のプロジェクトには、次のファイルが含まれています。
EncryptPlugin.cs
このファイルには、Babel のプラグインインターフェイスを実装する EncryptPlugin クラスが含まれています。プラグインは、Babel Obfuscator が文字列の暗号化に使用する文字列暗号化サービスクラスを登録します。babel のコマンドラインで渡された引数は、プラグインの初期化時にここで処理されます。
StringEncrypter.cs
StringEncrypter クラスは、文字列暗号化サービスを提供します。復号ルーチンを難読化ターゲットに統合するコードを含み、XOR アルゴリズムと HASH アルゴリズムの暗号化メソッドを実装しています。Encrypt(...) メソッドはエントリポイントで、文字列暗号化フェーズ中に Babel Obfuscator から呼び出され、文字列はそこで XOR または HASH の暗号化ルーチンによって処理されます。暗号化フェーズが完了すると、Terminate() メソッドが呼び出され、暗号化されたデータがターゲット内に格納されます。埋め込まれた復号コードは、実行時に、難読化されたターゲット内の暗号化されたデータを取得します。
StringDecrypter.cs
このファイルには、ターゲットアセンブリにマージされる復号ロジックがすべて含まれています。このファイル内のクラスはプラグインの実行中にコンパイルされてマージされるため、このファイルはプラグイン DLL の埋め込みリソースとしてコンパイルされます。
コードの構文を一時的に確認したり、コードを変更したりするには、「Build Action」を「Embedded Resource」から「Compile」に切り替えます。すべての変更が終わったら、「Embedded Resource」に戻して、変更のデバッグを始められます。
プラグインのデバッグ
プラグインをデバッグするには、Babel.BabelEncrypt プロジェクトのプロパティを開き、Debug プロパティページを選択して、新しいプロファイルを作成します。続いて、次の構成を設定します。
デバッグの構成
Executable(実行可能ファイル)
<展開先フォルダー>\babel.exe(zip パッケージを展開したフォルダー。たとえば C:\Tools\Babel\babel.exe)
Command line arguments(コマンドライン引数)
MyApp.exe @ -v5 —stringencrypt custom —plugin BabelEncrypt.dll
ここで「MyApp.exe」は、プラグインを使って難読化するターゲットアセンブリです。