5

.Net には多数の難読化プログラムがあり、私は 1 つを試してみましたが、難読化すると exe がかなり遅くなるようです。すべての難読化プログラムの効果は同じですか、それとも悪いプログラムを選択したのでしょうか? 高速なものを知っている場合は、他のものよりも優れているものがあることを願っています。

4

3 に答える 3

8

免責事項:私の雇用主は、Dotfuscator.NET難読化ツールの作成者であるPreEmptiveSolutionsです。

使用する難読化ツールとその中で有効にするオプションによって異なります。Dotfuscatorの経験からお話します。

名前の変更と削除を使用すると、難読化されたアセンブリの読み込み時間とメモリフットプリントが改善される可能性があります。これは、メソッド、フィールドなどのすべて/ほとんどがはるかに小さい名前に名前変更されているためです(たとえば、「ThisVeryLongMethodName(SomeVeryLongParameterName)」は「a( a) "したがって、アセンブリのサイズと通常はロード時間のメリットが得られます。削除に加えて、呼び出されないメソッドなどを削除して、バイナリのサイズを再び小さくします。

文字列は実行時に人間が読めるテキストに変換し直す必要があるため、文字列の暗号化は実行時のパフォーマンスにわずかな悪影響を与える可能性があります。

Microsoft SLPのセキュアVMテクノロジなどの他のシステム/テクノロジを使用してメソッドを読み取り不能にする場合、セキュアVMが原因で実行時のパフォーマンスが低下します。

マネージコードアセンブリを出力として生成せず、代わりにネイティブコードローダーに依存して出力を「前処理」する他の難読化ツールも、実行時のパフォーマンスに影響を与える可能性があります(特にロード時)。

于 2008-09-15T17:04:40.847 に答える
5

難読化によってコードの実行時のパフォーマンスが変わることはありません。もしそうなら、単に難読化する以上のことをしている悪い難読化ツールを持っています。難読化は、IL を読みにくくするだけです。

于 2008-09-15T16:47:16.690 に答える
2

ツールが使用できるさまざまな難読化方法があります。パフォーマンスにまったく影響を与えない単純な名前変更メソッドがあります。他の方法では、コードの流れが変わる場合があります。これは、パフォーマンスに悪影響を及ぼす可能性があります。他の難読化ツールをチェックして、さまざまな設定を試してみてください。

于 2008-09-15T16:51:59.567 に答える