.Net之程序保護(.NET Reactor)
歡迎加入BIM行業開發交流1群 群號:711844216
一、背景
作為開發人員,自己辛苦在.net框架下寫的dll或者exe文件,不想被別人通過反編譯工具輕松查看。那么我們就需要對自己寫的代碼進行保護。在筆者經過大量的搜索與嘗試后,發現一款不錯的程序保護工具.NET Reactor。如其名字所示,這是一款針對.net程序進行保護的專門工具,因為專業,所以強大。
下載地址:https://www.jb51.net/softs/547521.html
接下來我們看下它的基本功能:
二、.NET Reactor功能介紹
主要功能如下:
- 源碼混淆處理
- 字符串加密
- NET Reactor強大的許可授權管理功能
- NET Reactor可以為您的軟件創建試用版
- 設置過期日期
- 為軟件限制一個安裝后的可用天數
- 使用次數限制(如將軟件作為一種服務)
如果涉及到軟件本身的保護,我們可以采用給軟件設置使用次數或者期限,對於dll保護我們可以對其進行混淆和字符串加密處理。
三、使用方法
首先,我們需要對Quick Settings 里面的東西有個基本認識
- NecroBit:把程序集轉為非托管代碼;
- Native Exe File:生成本機 Exe 文件;
- Anti ILDASM:反編譯;
- Obfuscation:混淆;
- Create Mapping File:創建地圖文件;
- Anti Tampering:防篡改;
- String Encryption:加密字符;
- Compress & Encrypt Resources:壓縮並加密資源;
- Control FlowObfuscation:混淆控制流。
第一步:通過Open找到自己需要加密的dll/exe,然后打開
第二步:對加密進行設置
對於dll或者exe加密,筆者這里推薦勾選
- Anti ILDASM
- Obfuscation
- String Encryption
這三個選項。因為這三個選項基本上能夠較好地對代碼進行較好的保護了,多選了可能會導致dll/exe不能正常加載或運行。
第三步:點擊左下角的Protect就可以了。等待一會兒,DSOffice-Successfully Protected!
接下來我們對比一下結果。這里我們用ILSpy反編譯工具查看保護前,和保護后的情況。
保護前
保護后
通過對比我們可以看到
- 類名,方法名,屬性名大部分都不能正常顯示
- 代碼已經不能再被查看
是不是很神奇,大家動手試試吧
四、注意事項
- 在進行加密設置時,並不是勾選的越多越好,因為勾選多了容易造成dll\exe不能正常加載或運行;
- 如果在open文件后,出現Can’t load assembly這種情況
那么找到LibG.Interface.dll這個文件,然后添加到這里的Addtional Files,即可。
- 加密方式有很多,本文介紹這種方式,用以拋磚引玉,大家可以自己多多探索。