.net程式混淆、安全、保護、加密

iDotNetSpace發表於2009-05-06

反編譯工具:.net 反編譯工具reflector 工具 .NET Reflector外掛FileDisassembler

大家都知道.net開發的軟體,無論WebForm專案還是WinForm專案,釋出的時候都是編譯成dll或者exe檔案。但是我們經常會無論是出於學習還是其他什麼目的,想檢視軟體原始碼和解除軟體的某些限制。這時反編譯技術就派上了用場。上面提到的reflector就是這樣一個工具。

他可以把dll或者exe等目標檔案反編譯成原始碼。如果目標檔案沒有經過混淆、加密等處理,往往反編譯得到的原始碼跟軟體編譯前的原始碼幾乎一模一樣。這樣就為程式的版權、安全等帶來嚴重的隱患。

另外還有個工具ILDASM可以把目標檔案反編譯成IL原始碼。然後我們就可以修改IL原始碼,然後再使用ILASM編譯這個IL原始碼,就可以得到一個修改過的目標檔案,這個目標檔案解除了程式的某些限制,例如時間限制、使用次數限制。

那麼我們如何保護我們的程式不被修改呢?

這兩天實際操作了下編譯、反編譯、混淆。總結如下:

  1. 專案中,增加強簽名。具體操作方法:右鍵單擊專案,選擇屬性,找到簽名選項卡,新建簽名檔案,輸入密碼即可。
  2. 專案釋出以後,對dll、exe檔案進行混淆,混淆工具:Dotfuscator Professional Edition 4.2 ,如果是混淆web專案,請排除web專案檔案的重新命名功能。免得aspx檔案無法引用dll程式集。同理HttpModule一類的引用也要注意。
  3. 另外如果還不放心,可以對混淆過的檔案進行加殼。加殼工具: MaxtoCode.Professional.2007.v3.21-Lz0.rar 該工具我沒有親自試用過,有興趣的自己研究。

通過以上三層保護,應該可以對付一般的破解菜鳥了。本來文章都沒什麼可說的,但是想想還是介紹一下,對沒有接觸混淆的網友應該能有幫助。免得走彎路。

我就走了很多彎路。找Dotfuscator Professional Edition 4.3版找了好久,用其他的混淆軟體也摸索了許久,這裡不得不提到一個軟體:Xenocode Postbuild,最新版本是2008,該軟體是非常出名的混淆器。但是我沒有找到好用的下載,有該軟體的朋友請發給我。還有NET Reactor(帶註冊檔案)也是一個混淆器,可以混淆.net 2.0以前的版本。

總結:以上提到的兩個方法“強簽名”和“Dotfuscator Professional Edition 4.2”混淆是簡單易用的保護程式集的辦法。推薦使用。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-594312/,如需轉載,請註明出處,否則將追究法律責任。

相關文章