2011-07-28 22 views
4

コンパイル済みのWebサイトでSmartAssembly難読化ツールを試していました。これはほとんどのコードで動作しますが、App_Codeのどのクラスも難読化されていません。例えば私はApp_Codeで次のクラスを持っていますSmartAssemblyが難読化をスキップ

このヘルパークラスはスキップされています。ヘルパークラスとそのメソッドで名前のマングリングはしません。 SmartAssemblyを使用している人は、この点で助けてもらえますか? SmartAssemblyよりも費用対効果の高い他のツール(無料または有料)がありますか?

答えて

8
  • 免責事項:それは彼らが外部で使用される前提としているので、私はSmartAssemblyにレッドゲートのために働く*

SA(SmartAssemblyは)自動的に、難読化や剪定からのDLLにパブリックメンバーを除外します。これは関係なく、公開状態の、すべてのメンバーを難読化します

<Obfuscation ExcludePublicMembers="0" Obfuscate="1"> 

:あなたは、難読化ラインは次のように見えるようにsaprojファイルを編集することによって、この動作をオーバーライドすることができます。

IISが特定の名前を持つ特定のパブリックメンバーを探すためにリフレクションを使用する可能性があるため、この問題が発生することがあります。この場合、これらの項目を枝刈り/難読化から除外する必要があります。

難解なツールに関しては、SmartAssemblyは非常に強力な難読化器です(ハッカーは同意します)。また、多くの追加機能があります(エラー報告、機能使用報告など)。しかしもちろん、SmartAssemblyを超えた数があります。 Dotfuscatorまたは深海Obfuscator。いくつかはかなり良いです、いくつかは非常に悪いです。 http://www.red-gate.com/products/dotnet-development/smartassembly/support

+1

ありがとう:

あなたが任意のより多くの問題を持っている場合は、でお問い合わせをお願いしています。難読化するかどうかを完全に制御する必要があります。たとえば、すべてのパブリックメンバーに対して有効にすることはできますが、[WebMethod()]属性が適用されているメンバーは除外します。出来ますか? – kumar

+1

の設定を試しました。うまく行かなかった。私の例を試してください。 Classlibraryにコードを入れてビルドし、saprojを変更しますが、それでも難読化することはできません。もう1つは、常にsaprojファイルを上書きすることです。 UIの設定を制御する方法が必要です。私はCrypto Obfuscatorを試しましたが、難読化と価格の両方でずっと良いと思われます。 – kumar

+0

私が言っている必要があります。それは例えば、関連するノードの下にあることを確認します: <難読化ExcludePublicMembers =「0」難読化=「1」 –

2

publicのメソッドは、デフォルトでは難読化されません(DLLではexesで実行されます)。難読化を強制することはできますが、コードの装飾を使用する必要があります。詳細can be found here