程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> DNGuard 一款DotNet內核級加密保護工具

DNGuard 一款DotNet內核級加密保護工具

編輯:.NET實例教程


最近一直學習DotNet相關資料,sscli真是好東西啊:P。

一邊學習一邊把知識綜合了一下,做了這個小工具。
保護原理和國人的remotesoft,maxtocode差不多。加密後的程序發布時也需要附帶一個運行庫,
不過和那兩個不同,附帶的運行庫不是純native的dll,而是C++/CLI的混合程序集。

工具已經有了雛形,整體內核框架完成了。用來加密了一個sample,運行正常。
有些方面甚至超過了maxtocode。

1.不依賴微軟的ildasm和ilasm程序。
  IL反匯編和IL匯編都程序實現。
 可以加密包含本地代碼的程序集。

2.Anti反編譯工具,maxtocode加密的程序集無法用reflector直接查看,但是程序運行後用pedumper,dump後就可以用reflecotr查看結構了,當然還是看不到代碼的。
dnguard加密的程序集比我預期的效果還要好,加密後的程序集無法用reflector查看,dump後的也無法用reflector插件。

感覺reflector還是有些弱,同類軟件Disa#, Xenocode fox 就可以直接打開查看maxtocode和dnguard加密的程序集。
為此我嘗試在dnguard加密的程序集裡面增加了結構混淆,有一點效果,就是在Disa#和 fox裡面查看結構是會出現一些張冠李戴的混亂,即類A的函數可能會顯示到類B中。效果還不是很好,會出現問題的函數每個類只有很少的幾個。

3.Anti .Net 2.0的新特性,不是很強,強度和maxtocode 3.13(內部版)差不多,聽說maxtocode出了3.14了,不知道強度是否有增強(看Jason的blog裡的回復似乎和3.13是一樣的)。max的3.12patch幾個字節,反射就可以用了,3.13也差不太多,需要patch的字節數比3.12還要少。

關於這個方面現在有一個比較好的方案,能夠在不影響效率的前提下使強度提高很多。但也不能完全防dump。
還有一個比較完美的防dump的方案,需要配合另一項保護技術一起才能實現。
這個方面不打算再深入探討了,等DNGuard加密殼完成後,會著手另一項保護技術,最後將兩項保護合在一起。

4. Anti dump後用ildasm,ilasm恢復程序集。DNGuard除了anti .Net 2.0的新特性防dump外,還增加了anti,我早期做的dumper。另外還利用C++/CLI混合程序集的特性實現了,防dump後ildasm。不過這個強度不大,對小程序集能被很容易修復後實現il匯編。

現在需要做的工作還有很多,加密算法還沒有弄,運行庫自身的保護也還沒有做。發現純native的dll可以找到現成的保護工具,就thmida很不錯,maxtocode的運行庫就有用這個殼,C++/CLI的dll就一直找不到好的方法。看來只能手動加一層保護了,已經開始著手試驗了。現在准備加一個簡單的加密殼,等這個做完後就把DNGuard放一個demo上來。

DNGuard加密程序集後用reflector查看:

 

DNGuard加密程序集dump後用reflector查看:

 

Maxtocode加密後的程序集用Reflector查看:

 

Maxtocode加密程序集Dump後用Reflector查看:

 

http://www.cnblogs.com/rick/archive/2006/11/20/566704.Html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved