最適化
Babel Obfuscator は、コードとメタデータの両方について一連の最適化を実行できます。これらの最適化には、難読化されたコードの効率、サイズ、セキュリティを改善するさまざまな手法が含まれます。コードの最適化では、パフォーマンスを高めてサイズを減らし、コードをより高速でコンパクトにします。同時に、メタデータの最適化を適用してコードを理解しにくくし、リバースエンジニアリングが成功する可能性を下げます。Babel Obfuscator は、コードとメタデータの最適化を組み合わせて、難読化されたコードの品質と保護を総合的に高めます。
Babel Obfuscator には、難読化されたコードを改善するさまざまな最適化が用意されています。次のものがあります。
- デッドコード除去
Babel は、未使用のメソッド、プロパティ、フィールド、型など、実行時に決して実行されないコードを特定して除去します。 - メタデータの最適化
a) クラスの自動シール:Babel はクラスを自動的にシールします。非仮想メンバーの呼び出しに対して CLR が行う最適化により、パフォーマンスが向上します。さらに、クラスをシールすると継承と変更ができなくなり、保護レイヤーが 1 つ加わります。
b) カスタム属性の除去:Babel は不要なカスタム属性を除去し、メタデータのサイズを減らします。
c) System.Enum 型の除去:Babel は、情報を漏らすおそれのある System.Enum 型を除去します。
d) Disgregate Removal(プロパティとイベントのメタデータ除去):Babel はプロパティとイベントの構成要素を除去して、コードを簡素化し、複雑さを減らします。 - コードの最適化
a) インライン展開:Babel は、小さなメソッドやプロパティを呼び出し元のコードにインライン展開し、関数呼び出しのオーバーヘッドを減らしてパフォーマンスを向上させます。
b) const フィールドの除去:Babel はコードから const フィールドを除去し、サイズを減らしてセキュリティを高めます。
これらの最適化は、全体として、難読化されたコードのパフォーマンス、サイズ、セキュリティを高めることを目的としています。デッドコードの除去、メタデータの最適化、コード自体の改善によって、Babel Obfuscator は、より無駄がなく効率的で、理解しにくいコードベースを作ります。
Babel Desktop
プロジェクトのキャンバスでアセンブリを選択し、プロパティパネルの「最適化」グループで、必要な最適化を有効にします。DeadCodeElimination、InlineExpansion、SealClasses のほか、属性とメタデータの除去オプションがあります。プロジェクトを実行すると、「結果」ビューに最適化の統計が表示されます。Babel Desktop でのプロジェクトの扱い方は、難読化プロジェクトを参照してください。
Last updated on