Konfiguration
Sie können Dynamic Proxy über die Befehlszeilenschnittstelle (CLI), die MSBuild-Aufgabe Babel oder Babel Desktop konfigurieren.
Befehlszeile
In der Befehlszeilenschnittstelle von Babel Obfuscator schalten Sie den Schutz durch dynamische Proxys mit dem Schalter --proxy ein. Mit diesem Schalter legen Sie fest, dass Babel Proxys für externe und interne Methodenaufrufe erzeugt. Je nach Ihren Anforderungen können Sie außerdem die Liste der Filter für dynamische Proxys angeben.
Die folgende Befehlszeile konfiguriert Babel Obfuscator so, dass dynamische Proxys nur für externe Methodenaufrufe erzeugt werden.
babel myapp.exe --proxy externalIm folgenden Beispiel erzeugt Babel Obfuscator dynamische Proxys für externe und interne Methodenaufrufe.
babel myapp.exe --proxy allDiese Befehlszeile legt einige Filterausdrücke für dynamische Proxys fest (siehe Filter).
babel myapp.exe --proxy ICollection.* --proxy IEnumerator.*MSBuild-Aufgabe Babel
<PropertyGroup>
<DynamicProxy>external=true;internal=true;true</DynamicProxy>
<DynamicProxyCallFilters>ICollection.*;IEnumerator.*</DynamicProxyCallFilters>
</PropertyGroup>
<Babel DynamicProxy="$(DynamicProxy)"
DynamicProxyCallFilters="$(DynamicProxyCallFilters)" />Babel Desktop
Wählen Sie die Assembly auf der Zeichenfläche des Projekts aus und setzen Sie im Eigenschaftenbereich DynamicProxy in der Gruppe „Codeverschlüsselung“ auf die Art des dynamischen Proxys, der erzeugt werden soll. Die Option DynamicProxyCallFilters in derselben Gruppe nimmt die Liste der Aufruffilter auf. Wie Sie in Babel Desktop mit Projekten arbeiten, erfahren Sie unter Verschleierungsprojekte.
Sie können die Aufruffilter auch je Regel festlegen: Öffnen Sie in Babel Desktop die Ansicht der XML-Regeln für die Assembly und legen Sie eine neue Regel an oder ändern Sie eine vorhandene, sodass sie die gewünschten Filter enthält. Geben Sie in den Eigenschaften der XML-Regel die regulären Ausdrücke an, die den Methodenaufrufen entsprechen, die über einen Proxy geleitet werden sollen.
<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>