構成
動的プロキシは、コマンドラインインターフェイス(CLI)、MSBuild の Babel タスク、Babel Desktop から設定できます。
コマンドライン
Babel Obfuscator では、コマンドラインインターフェイスの --proxy スイッチを使用して、動的プロキシによる保護を有効にできます。このスイッチを使用すると、外部メソッド呼び出しと内部メソッド呼び出しのプロキシを生成するように Babel を設定できます。要件に応じて、動的プロキシのフィルターのリストを指定することもできます。
次のコマンドラインは、外部メソッド呼び出しに対してのみ動的プロキシを生成するように Babel Obfuscator を設定します。
babel myapp.exe --proxy external次の例では、Babel Obfuscator は外部メソッド呼び出しと内部メソッド呼び出しの両方に対して動的プロキシを生成します。
babel myapp.exe --proxy all次のコマンドラインは、動的プロキシのフィルター式をいくつか設定します(フィルターを参照)。
babel myapp.exe --proxy ICollection.* --proxy IEnumerator.*MSBuild の Babel タスク
<PropertyGroup>
<DynamicProxy>external=true;internal=true;true</DynamicProxy>
<DynamicProxyCallFilters>ICollection.*;IEnumerator.*</DynamicProxyCallFilters>
</PropertyGroup>
<Babel DynamicProxy="$(DynamicProxy)"
DynamicProxyCallFilters="$(DynamicProxyCallFilters)" />Babel Desktop
プロジェクトのキャンバスでアセンブリを選択し、プロパティパネルの「コード暗号化」グループにある DynamicProxy に、生成する動的プロキシの種類を設定します。同じグループの DynamicProxyCallFilters オプションには、呼び出しフィルターのリストを指定します。Babel Desktop でのプロジェクトの扱い方については、難読化プロジェクトを参照してください。
呼び出しフィルターは、ルールごとに定義することもできます。Babel Desktop でアセンブリの XML ルールビューを開き、新しいルールを作成するか、既存のルールを変更して、必要なフィルターを含めます。XML ルールのプロパティ内に、プロキシ化するメソッド呼び出しに対応する正規表現を指定します。
<Rules>
<Rule name="rule1" feature="dynamic proxy" exclude="false" applyToMembers="true">
<Pattern>*</Pattern>
<Description>Set Dynamic Proxy Call Filters</Description>
<Properties>
<DynamicProxyCallFilters>IEnumerator.*</DynamicProxyCallFilters>
</Properties>
</Rule>
</Rules>