【轉】Eazfuscator.NET 3.3中混淆化需要注意的一些問題

來源:互聯網
上載者:User

標籤:blog   http   io   ar   使用   sp   檔案   資料   on   

對於DLL,Eazfuscator.NET預設不會混淆化任何公用成員,因為類庫的公用成員很有可能被外界調用,而對於EXE的程式集,所有類型都可能被混淆化。注意上面這句話有一個“可能”,因為Eazfuscator.NET會智能得判定一個成員是否該被混淆化。比如某些可序列化類別型的名稱是不被混淆化的,還有WPF程式用到的資料繫結可能會影響某些類型屬性名稱的混淆化。

 

當然Eazfuscator.NET會讀取.NET中已經定義的一些特性來供開發人員自訂一些選項,比如上述的公用成員的混淆化可以通過System.Reflection命名空間中的ObfuscateAssemblyAttribute特性來設定,這個特性在.NET 2.0就有了。建構函式有一個參數:assemblyIsPrivate,為True的話所有成員都(可能)會被混淆化。為False的話公用成員不會被混淆化。

所以如果不想讓Eazfuscator.NET混淆化EXE程式集中的公用成員,那麼需加入下方代碼:

using System.Reflection; [assembly: ObfuscateAssemblyAttribute(false)]

 

其次,即便是程式集的公用成員會被混淆化,還可以對部分類型進行更細緻的混淆化設定。使用System.Reflection命名空間中的ObfuscationAttribute特性。

比如禁止對所有公用枚舉實值型別和其成員進行混淆化:

using System.Reflection; [assembly: Obfuscation(Feature ="Apply to type * when public and enum: renaming", Exclude =true, ApplyToMembers =true)]

 

甚至還可以針對某一個類型,比如不對程式集當中的Mgen.MyClass類型進行任何混淆化:

using System.Reflection; [assembly: Obfuscation(Feature ="Apply to type Mgen.MyClass: renaming", Exclude =true, ApplyToMembers =true)]

 

在實際運用中還有一些需要說明的,尤其是WPF/Silverlight/WinRT這種用到XAML資料繫結或其他依靠反射來定義屬性值的方式(如Markup Extension)。此時則需要注意RESX資源類型不應該被混淆化,Visual Studio中建立的RESX資源類型預設都是internal修飾符的,這樣Eazfuscator.NET會混淆化RESX資源類型產生的屬性名稱。你可以聲明[assembly: ObfuscateAssemblyAttribute(false)],然後把RESX的修飾符改成Public:

 或者使用Obfuscation特性來排除RESX類型的混淆化,當然第一種方法最方便。

 

另外有些環境可以沒有ObfuscateAssemblyAttribute和ObfuscationAttribute類型的定義,那麼可以複製Eazfuscator.NET安裝目錄下的Code Snippets檔案夾內相應類型的定義(提供C#和VB.NET版本)。當然使用者也完全可以自己定義,只要名稱和.NET中的一致便可以。

另外還曾寫過一些關於Easfuscator.NET的文章,可以參考:

Eazfuscator.NET 3.3中屬性的特性問題

Eazfuscator.NET 3.3中枚舉的處理

Eazfuscator.NET 3.3:對WPF ViewModel類型定義的處理

 

最後更多詳細的資訊,建議參考Eazfuscator.NET的協助文檔,講的很詳細的!

【轉】Eazfuscator.NET 3.3中混淆化需要注意的一些問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.