0

Dotfuscator を使用して WCF プロキシ クラスを難読化する方法 Dotfuscator Pro Edition Trial を Web サイトからダウンロードしました。app.exe ファイルを難読化しました。すべてが適切に難読化されましたが、WCF プロキシ クラスは難読化されませんでした。(私はexeをILDASMしました)。

WCF プロキシ クラスがアプリケーションの構造を公開しています。Dotfuscator アプリケーションで不足している設定はありますか?

WCF サービス プロキシ クラスを非表示にするより良い方法はありますか?

4

1 に答える 1

1

いずれにせよ、WCFは、サービスのデータコントラクトの要素をクライアントのプロキシクラスにバインドできる必要があります。通常、プロキシクラスとそのメンバーを難読化する価値はほとんどありませんが、それらを難読化する場合は、または属性のNameパラメーターを使用して、型とそのメンバーの名前を明示的に設定できます(例)。これを行ったら、[名前の変更]-> [組み込みルール]タブから[シリアル化可能としてマークされたタイプとフィールド]組み込みルールを無効にし、[名前変更]->[オプション]で[XMLシリアライザーとの互換性]がオンになっていることを確認できます。タブ。このアプローチの注意点は、シリアル化されたプロパティの名前が(属性の)コードに引き続き含まれ、ネットワークを介して送信されることです。[DataContract][DataMember][DataMember Name="ID"]

より多くの保護が必要で、サービスとクライアントの両方を制御できる場合は、サービスコントラクトを独自のアセンブリに入れて、Dotfuscatorで処理することをお勧めします。ここでも、[名前の変更]-> [組み込みルール]タブから[シリアル化可能としてマークされたタイプとフィールド]組み込みルールを無効にし、[名前変更]->[オプション]タブで[XMLシリアライザーとの互換性]がオンになっていることを確認します。次に、サービスとクライアントアプリケーションの両方から結果のサービスコントラクトDLLを参照します。このアプローチとのトレードオフは、契約メンバー全員が難読化された名前(たとえば、「a」)を持ち、サービスおよびクライアントアプリケーションコードでそれらを参照する必要があることです。名前が変更された名前を理解するために、Dotfuscatorが作成するマップファイルを調べることができます。

于 2012-03-16T02:15:18.123 に答える