国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

保護.net中的dll文件方法(防止破解、反編譯dll)

2024-07-10 12:46:35
字體:
來源:轉載
供稿:網友

.net是一種建立在虛擬機上執行的語言,它直接生成 MSIL 的中間語言,再由.net編譯器 JIT 解釋映象為本機代碼并交付CPU執行。中間語言很容易被反編譯,所以研究下如何有效的保護dll文件。

我大致的方法為 :強簽名+混淆+加密。

強簽名  
強命名程序集,可以確保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果簽名也會不同。
強簽名很簡單

為項目添加強名稱方法:
1.右鍵單擊項目,打開屬性窗口;
2.在屬性窗口里選擇《簽名》標簽,選中為程序集簽名的選項,在下拉列表里選擇新建,如下圖所示:

如何保護.net中的dll文件(防止破解、反編譯dll)

如何保護.net中的dll文件(防止破解、反編譯dll)

如何保護.net中的dll文件(防止破解、反編譯dll)

3.打開新建簽名窗口,輸入簽名的名稱密碼等內容,如下圖所示:
 

 

單擊確定后,簽名添加完成。

 

為沒有源碼的DLL文件添加強名稱

 

如果項目中引用了其他沒有源碼的dll文件,并且此dll文件是沒有強名稱的程序集,則編譯時會出現類似 "Assembly generation failed -- 引用的程序集 'xxxxxxxxxxx' 沒有強名稱" 這樣的錯誤。
我這里引用的是Interop.Scripting.dll程序集,它不是強名稱的,則需要進行以下操作:
1.打開SDK 命令提示窗口;

 


2.創建一個新的隨機密鑰對:
sn -k Interop.Scripting.snk
3.反編譯目標程序集
ildasm Interop.Scripting.dll /out=Interop.Scripting.il
3.重新編譯,附帶強命名參數
ilasm Interop.Scripting.il /dll /resource=Interop.Scripting.res /key=Interop.Scripting.snk /optimize
4.驗證簽名信息
sn -v Interop.Scripting.dll


OK,將生成的dll文件重新引入到項目中然后編譯。

注:未簽名的主程序可以引用已簽名或未簽名的程序集;而已簽名的主程序不能引用未簽名的程序集。(上述文章有相應解決辦法)

混淆
混淆就是對編譯生成的MSIL中間代碼進行模糊處理,最簡單的混淆是名稱混淆,即將 命名空間名、類名、方法名、字段名等統統換成特殊符號或其它符號,目的就是讓人看到暈為止,但是并不改變程序執行邏輯。
我這里使用的Dotfuscator進行混淆。
Dotfuscator混淆方法:
1.創建新工程,如下圖所示:

如何保護.net中的dll文件(防止破解、反編譯dll)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 于田县| 洛扎县| 理塘县| 色达县| 乐安县| 潮州市| 灵武市| 岐山县| 汽车| 东丽区| 呼玛县| 台湾省| 金门县| 武平县| 乌兰县| 乐昌市| 房山区| 广昌县| 双流县| 房产| 新化县| 富平县| 新竹县| 泰兴市| 泉州市| 新邵县| 德保县| 张家界市| 靖西县| 平阳县| 佳木斯市| 鱼台县| 抚顺市| 乐业县| 丰镇市| 乐安县| 建湖县| 武穴市| 本溪市| 内江市| 涟源市|