アプリケーションでdotfuscateを使用しようとすると、実行時にアプリケーションエラーが発生します。難読化ツールを安全に使用するにはどうすればよいですか?
答えて
難読化で遭遇した問題の大半は、名前が変更されない型を中心にしています。何かがそれら(コードやランタイム)に反映される必要があるためです。いくつかの難読化ツールは、一般的なメソッドやクラスを扱うことができない。また
public class MyWebServiceProxy : SoapHttpClientProtocol
{
}
:あなたは、Webサービスのプロキシとして使用されているクラスを持っている場合、例えば
は、あなたが安全に、クラス名を難読化することはできません。
これらのタイプを見つけて、難読化装置がそれらの名前を変更するのを防ぐ必要があります。これは、難読化属性で行われます。
[global::System.Reflection.Obfuscation(Exclude=true, Feature="renaming")]
Dotfuscator(およびすべての難読化ツール)は、通常、アプリケーション上で実行しても安全ですが、彼らは時折問題が発生します。問題の具体的な詳細がなければ、診断するのは難しいです。
しかし、難読化ツールでよく見られる問題の1つは、リフレクションと混在させるときです。文字列ではなく型名を変更しているので、特定の文字列名を持つオブジェクトを反映させ、オブジェクトを構築するためにリフレクション空間を使用するときはいつでも問題が発生します。
私はちょうど興味があります - しかしなぜdownvoteですか?人々がなぜ同意しないのかを知ることは素晴らしいことです... –
難読化器で問題になる可能性があるもう一つの問題は、フィールド名を変更するため、BinaryFormatterを使用したシリアル化です。この理由から、難読化されたコードでprotobuf-netをシリアル化に使用しているユーザーがいます。
エラーの内容を教えていただけますか? –
腎臓が必要な場合を除き、obfustacatorに指を刺さないでください。 –