摘要:学习过了名称混淆,最近又看了一些字符串加密方面的东西。
在混淆保护和加密壳中都有字符串加密保护功能。
总体上字符串加密可以分为两类,
第一类是混淆保护中的字符串加密技术。主要特征是修改代码执行路径。
大部分混淆保护工具的字符串加密都是这一类。
第二类就是加密壳中的字符串加密技术。这种不用修改IL代码,直接对元数据中的字符串加密。
阅读全文
摘要:混淆在目前的DotNet保护中占主流地位。名称混淆是最基础的混淆保护技术。
DotNet加密保护工具MaxToCode也在最近的更新中加入了部分混淆保护功能---名称混淆。
我们先谈谈名称混淆技术,名称混淆从本质上可以分为两类。
阅读全文
摘要:这段时间在测试.Net Jit的容错性,为了方便,就直接将代码插入到Jit中进行测试了。
这个种方式就是我前面介绍DNGuard时提到的第一种增加内核强度防反射脱壳的方法。
这种技术即可用在dotnet代码的保护上,也可以用在dotnet加密壳的解密上。
DNGuard 2.0的内核使用的就是Jit层,容错性测试差不多了。
DNGuard目前的内核基调就不会再调整了。
接下来就要着手DNGuard H-VM的试验和测试了。这个也是纯Jit层的。(H = half)
DNGRuntime在运行时动态还原程序集,进行程序集方法的拆分(即一个方法被拆分为两个或多个),
拆分后的方法差不多是一半走jit,一半走DNG H-VM。
遵循如下约定:
如果方法A走Jit,则被方法A所调用的方法都走 DNG H-VM。
阅读全文
摘要:自从.Net 2.0的新特性被公开用来获取IL代码后,加密壳就成了鸡肋。
就如tankaiha所说“.net下逆向暂时没啥新东西可搞,某软件的版本升级是一次不如一次强”,由于先天不足,这成了加密壳强度的一个瓶颈。
但是还有相当一部分人认为1.1的程序集加密后是安全的。
阅读全文