Skip to Content
新しいバージョン 12 を公開しました 🎉
Obfuscator動的プロキシ難読化解除への耐性

難読化解除への耐性

書き換えられた呼び出しサイトは呼び出し先を直接参照しなくなり、エンコードもビルドごとに変わるため、自動難読化解除ツールは、静的解析で元の呼び出しグラフを復元できません。Babel の動的プロキシは、主要なオープンソースの .NET 難読化解除ツールに対して定期的に検証されています。それらのツールのプロキシ呼び出しリゾルバーは、プロキシ化された呼び出しを 1 つも復元できず、クリーンアップ後の出力でも、元の直接呼び出しは再構築されません。

動的プロキシをシンボルのリネーム、制御フロー難読化、改ざん防止と組み合わせると、保護されたアセンブリのリバースエンジニアリングに必要な労力がさらに増えます。

ベストプラクティス

  • 重要な部分を保護する:すべての呼び出しをプロキシ化するのではなく、フィルターを使用して、機密性の高い呼び出しフロー(ライセンス管理、セキュリティチェック、独自のアルゴリズム)を対象にします。これにより、サイズと起動時間への影響を最小限に抑えながら、保護を最大化できます。
  • 適切なモードを選ぶ:external は軽量なオプションで、主にデコンパイラーによる変数名と型推論の復元を妨げます。all は、内部ロジックに対して最も強力な呼び出しフローの難読化を提供します(内部呼び出しと外部呼び出しを参照)。
  • 機能を組み合わせる:動的プロキシは、リネーム、制御フロー難読化、改ざん防止と併用したときに最も効果を発揮します。
  • AOT ターゲットでは無効にする:.NET MAUI および Blazor アセンブリでは、DynamicProxy=false に設定します(AOT とプラットフォームの互換性に関する制限事項を参照)。
  • ビルド後に検証する:他の保護設定と同様に、難読化されたアセンブリに対してテストスイートを実行します。

Babel Obfuscator の動的プロキシによる保護を活用すると、メソッド呼び出しを見えにくくし、リバースエンジニアリングの作業を複雑にすることで、アプリケーションのセキュリティを大幅に高めることができます。

Last updated on