7

eazfuscator.net で .net プロジェクトを難読化しようとしています。問題は、.NET Reflector を使用して逆コンパイルすると、多くのコードが表示されることです。すべてのプライベート メンバーは難読化されていますが、パブリック メンバーはプログラムに関する多くの情報を提供します。

私のライブラリの公開メンバーも難読化することは可能ですか? 通常、パブリック メンバーは他のアセンブリからアクセスされるため、これがプログラムによって行われないことはわかっています。しかし、他のアセンブリからのアクセスもツールから名前が変更されるように、ソリューション全体を難読化することは可能ではないでしょうか?

私はすでに使用しようとしましたObfuscationAttribute

[assembly: Obfuscation(Feature = "Apply to type * when public: renaming", 
                       Exclude = false)]

しかし、それは実際には何の違いもありませんでした。

では、eazfuscator または別のツールでそのようなことを行うことは可能ですか?

4

1 に答える 1

3

一般に、難読化ツールは public/protected メンバーを難読化しません。

彼らは理由でそれを行います.アセンブリにパブリックメンバーがあると仮定します(dllとしましょう)。通常、アセンブリはコードを共有するために作成されますが、難読化ツールがメンバー名とクラス名を変更した場合はどうなるでしょうか? 別のアセンブリがそれに依存している場合、これはどのように機能しますか?

クラスを難読化したいのなら、なぜそれがpublic最初にあるのでしょうか? internalアセンブリ以外で使用する予定がない場合は、いつでも作成できます。

難読化ツールは、内部型/メンバーの処理に優れています。クラスのメンバーを難読化するだけでなく、さらに一歩進んでクラス自体の名前を変更します。

フェニックスプロテクターの使用を検討してください。パブリックメンバーも難読化するように構成できることを願っています。

アップデート:

1 つのオプションは、すべての依存アセンブリを 1 つの巨大なアセンブリ (exe) にマージし、マージされたアセンブリを難読化パブリック メンバーオプションで難読化することです。このようにして、何も壊さずに同時にパブリック メンバーを難読化できます。

于 2014-09-25T15:06:41.197 に答える