2008-09-15 17 views
6

.Netのためのいくつかの難読化プログラムがあります。私は1つ試しましたが、私のexeは難読化されているとはるかに遅いです。すべての難読化プログラムは同じ効果を持っていますか、悪いものを選択しましたか?あなたが速い人のことを知っていれば、他の人よりも優れている人がいることを願っています。難読化プログラムから出るexeは速度が異なりますか?

+0

dotfuscatorを使用していますか? –

答えて

5

難読化は、コードのランタイムパフォーマンスを変更しないでください。そうであれば、難読化するよりもはるかに多くを行う悪意のある難読化ツールが得られます。すべての難読化はあなたのILを読みにくくすることです。

2

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

8

免責事項:私の雇用主は、Dotfuscator .NET obfuscatorの作成者であるPreEmptive Solutionsです。

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

名前の変更や削除を使用すると、メソッドやフィールドなどの名前のほうがはるかに小さな名前に変更されているために、難読化されたアセンブリの読み込み時間とメモリフットプリントが改善されることがあります(例: "ThisVeryLongMethodName(SomeVeryLongParameterName)"あなたはアセンブリのサイズと通常は読み込み時間でいくつかの利点を得るために、 "a(a)"になるので、決して呼び出されないメソッドやメソッドを削除し、再度バイナリのサイズを減らしてください。

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

Microsoft SLPのセキュアなVMテクノロジのような他のシステム/技術は、メソッドを読むことができないようにし、セキュアなVMのために実行時のパフォーマンス上のペナルティが発生します。

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

関連する問題