DNGuard 一款DotNet内核级加密保护工具

简介: 最近一直学习DotNet相关资料,sscli真是好东西啊:P。 一边学习一边把知识综合了一下,做了这个小工具。保护原理和国人的remotesoft,maxtocode差不多。加密后的程序发布时也需要附带一个运行库,不过和那两个不同,附带的运行库不是纯native的dll,而是C++/CLI的混合程序集。

最近一直学习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查看:


 



目录
相关文章
|
4月前
|
前端开发 JavaScript 安全
顶级加密混淆混淆工具测评:ipagurd
顶级加密混淆混淆工具测评:ipagurd
53 0
|
2月前
|
安全 Java 数据安全/隐私保护
提升 Java 编程安全性 - 代码加密混淆工具的重要性和应用
提升 Java 编程安全性 - 代码加密混淆工具的重要性和应用
|
3月前
|
存储 算法 安全
在线SM4加密/解密工具
在线SM4加密/解密工具支持快速、便捷地对数据进行SM4算法加密与解密。
217 0
|
4月前
|
安全 数据安全/隐私保护
如何使用GPG工具加密和解密文件?
如何使用GPG工具加密和解密文件?
202 0
|
4月前
|
Ubuntu API 开发工具
基于铜锁构建Web在线加密工具库
基于铜锁构建Web在线加密工具库
36 0
|
4月前
|
移动开发 JavaScript 前端开发
全球知名的五款JavaScript混淆加密工具详解
全球知名的五款JavaScript混淆加密工具详解
72 0
|
4月前
|
Java Linux 数据安全/隐私保护
SpringBoot代码混淆与反混淆加密工具详解
SpringBoot代码混淆与反混淆加密工具详解
67 0
|
Java 数据安全/隐私保护
Java实现最电话号码的简单加密源码
Java实现最电话号码的简单加密源码
20 0
|
3月前
|
存储 安全 算法
【接口加密】Java中的接口加密实践
【接口加密】Java中的接口加密实践
|
3月前
|
算法 安全 Java
Java 实现 RSA 非对称加密算法-加解密和签名验签
Java 实现 RSA 非对称加密算法-加解密和签名验签
102 0