リソース暗号化
Babel Obfuscator は、埋め込みリソースを圧縮して暗号化できます。これにより、リソースが保護されると同時に、アセンブリ全体のサイズも小さくなります。暗号化されたリソースは、アセンブリ内に安全に格納されたまま、必要になった時点で実行時に動的に読み込まれます。
埋め込みリソースを暗号化すると、機密情報や重要なアセットを不正アクセスから守れます。これは WPF アプリケーションのリソースを扱う場合に特に有効で、.NET Reflector などのツールによるリソースの調査や抽出を防ぎます。
FIPS が有効なホストにデプロイする場合:暗号化されたリソースは、実行時にプラットフォームの暗号化プロバイダーを通じて復号されます。そのため、認定済みの OpenSSL FIPS プロバイダーを持たないコンテナーを FIPS が有効なホストで実行すると、リソースの読み込みに失敗することがあります。原因と対処方法については、FIPS 準拠を参照してください。
コマンドライン
コマンドラインでリソースの圧縮を有効にするには、次のオプションを使用します。
babel MyApp.exe --resource compress=on --resource encrypt=onリソースを圧縮するとディスク容量を節約できますが、リソースの展開が必要になるため、アプリケーションの起動時間がわずかに長くなることがある点に注意してください。
MSBuild の Babel タスク
<PropertyGroup>
<ResourceEncryption>compress=true;encrypt=true;true</ResourceEncryption>
</PropertyGroup>
<Babel ResourceEncryption="$(ResourceEncryption)" />Babel Desktop
プロジェクトのキャンバスでアセンブリを選択し、プロパティパネルの「コード暗号化」グループで ResourceEncryption を設定します。その compress と encrypt の項目の一方または両方をオンにして、マネージドリソースを圧縮するか、暗号化するか、その両方を行うかを選択します。Babel Desktop でのプロジェクトの扱い方については、難読化プロジェクトを参照してください。
XML ルールを使用すると、一部のマネージドリソースについて、リソースの暗号化と圧縮を無効にできます。
次の XML ルールは、保護する必要のない特定のカーソルリソースについて、リソース暗号化を無効にします。
<Rules>
<Rule name="rule1" feature="resource encryption" exclude="true">
<Target>Resources</Target>
<Pattern>Babel.HexEdit.Resources.Cursor.RightArrow.cur</Pattern>
<Description>Disable Resource Encryption</Description>
</Rule>
</Rules>リソースの圧縮と暗号化を利用することで、重要なリソースを保護し、アプリケーションの整合性を維持し、リバースエンジニアリングの試みを抑止できます。