如何保護.net中的dll檔案(防破解、反編譯)

來源:互聯網
上載者:User

標籤:選項   加密工具   解釋   混淆   而且   art   檔案加密   加密   產生   

.net是一種建立在虛擬機器上執行的語言,它直接產生 MSIL 的中繼語言,再由.net編譯器 JIT 解釋映象為機器碼並交付CPU執行。中繼語言很容易被反編譯,所以研究下如何有效保護dll檔案。我大致的方法為 :強簽名+混淆+加密。  強簽名強命名程式集,可以確保你的程式集唯一,而不被篡改、冒用等;即使相同名字的程式集如果簽名也會不同。強簽名很簡單,本站另一文章已經詳細進行了講解,請參考:http://www.cn-web.com/shtml/article/net/fxsj/2009/06/16/913.shtml註:未簽名的主程式可以引用已簽名或未簽名的程式集;而已簽名的主程式不能引用未簽名的程式集。(上述文章有相應解決辦法)  混淆混淆就是對編譯產生的MSIL中間代碼進行模糊處理,最簡單的混淆是名稱混淆,即將 命名空間名、類名、方法名、欄位名等統統換成特殊符號或其它符號,目的就是讓人看到暈為止,但是並不改變程式執行邏輯。我這裡使用的Dotfuscator進行混淆。Dotfuscator混淆方法:1.建立新工程;2.選擇要混淆的dll、exe檔案;3.在屬性裡選擇Library屬性(很重要,因為我這裡要混淆的是dll檔案,如果不選中,混淆後將不能被正確調用!),如所示:4.選擇bulid標籤,點擊bulid按鈕進行混淆。我們也可以選擇其它標籤進行加密字串、增加浮水印等操作,我這裡加密工作用另外的方法,所以沒有選擇操作。OK,混淆完成後,我們可以用Reflector.exe來反編譯下混淆後的dll檔案,可以對比源碼看下效果。  加密接下來我們繼續對混淆過的dll檔案進行加密處理,進一步保護dll檔案。我使用的加密工具是MaxtoCode。開啟軟體後,切換到中文,可以看到非常簡單,添加上dll檔案後,直接點擊執行加密就可以。其他選項比如:加密字串、強式名稱等都很簡單,大家一試就知道,而且MaxtoCode的協助做的非常友好,一看就會使用。加密後的dll檔案比先前大了一倍,用Reflector.exe反編譯後,發現dll檔案加密的更徹底,因為主體函數內容都隱藏了。通過以上三步,使您的dll檔案可免於一般人的破解,當然,不可能絕對防止被破解。

如何保護.net中的dll檔案(防破解、反編譯)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.