Skip to Content
新しいバージョン 12 を公開しました 🎉
Obfuscator

Babel Obfuscator のプラグイン

Babel Obfuscator はカスタムプラグインをサポートしており、難読化ツールの機能を、標準で用意されている範囲を超えて拡張できます。カスタムプラグインでは、次のことができます。

  • 独自の文字列暗号化と値の暗号化のアルゴリズムを作成する
  • 型、メソッド、プロパティ、イベント、フィールドなどのシンボルをリネームする
  • カスタムコードをアセンブリにマージする
  • アセンブリのメタデータを照会して難読化ルールを定義する
  • アセンブリのコードを変更する
  • そのほか多数

カスタムプラグインは .NET Framework を使って開発でき、プラグイン管理インターフェイスを通じて Babel に統合できます。

コードサンプル

GitHub では、いくつかの Babel プラグインをソースコード付きで入手できます。カスタムプラグインを実装する場合は、これらのサンプルプラグインを出発点として参考にできます。すべてのプラグインプロジェクトを含むソリューションをダウンロードするには、次の git コマンドを使用します。

git clone https://github.com/babelfornet/BabelPlugins.git

これにより、コードを調べ、必要に応じてプラグインを変更できます。

コマンドラインでのプラグインの使用

Babel は、コマンドラインでプラグインファイルのリストを受け取れます。babel.exe のコマンドラインで 1 つ以上のプラグインファイルを指定するには、--plugin スイッチの後にプラグインファイルの完全パスを指定します。

babel MyApp.exe --plugin CustomPlugin1.dll --plugin CustomPlugin2.dll

プラグインには、コマンドラインスイッチ --argument を使って引数を渡せます。

babel MyTarget.exe --plugin CustomPlugin1.dll --plugin CustomPlugin2.dll --argument arg1=value1 --argument arg2=value2

引数は、キーと値のペアとして定義します。複数の引数を指定するには、--argument スイッチを複数回使用します。

MSBuild の Babel タスクでのプラグインの使用

MSBuild の Babel タスクを使用している場合は、次のように Babel タスクに Plugins 属性を追加して、プラグインのリストを指定できます。

<ItemGroup> <BabelPlugin Include="DesEncrypt.dll"/> <BabelPlugin Include="LicenseInjector.dll"/> </ItemGroup> <Babel Plugins="@(BabelPlugin)" PluginsArguments="arg1=value1;arg2=value2" />

Babel タスクの PluginsArguments プロパティでは、すべてのプラグインに対するプラグイン引数を指定できます。プラグイン引数のリストは、セミコロンで区切ったキーと値のペアの並びで表します。

Babel Desktop でのプラグインの使用

Babel Desktop でターゲットアセンブリにプラグインを使用するには、次の手順に従います。

  1. プロジェクトのキャンバスでターゲットアセンブリを選択します。
  2. プロパティパネルの「ファイルと依存関係」グループで、プラグインの DLL を Plugins に追加します。コマンドパレットの「エンジン プラグイン: DLL パスを設定」を使うと、同じオプションに移動できます。
  3. コマンドパレットから「エンジン プラグイン: 引数名を検出」を実行して、プラグインが受け取る引数を一覧表示し、その値を PluginsArguments に入力します。

プラグインは、お使いのアカウントの権限で難読化エンジンの内部で実行されます。信頼できるプラグイン DLL だけを読み込んでください。

Last updated on