看看下面的代码:
sbyte sba, sbb,sbv;
sba = 1;
sbb = 2;
sbv = sba + sbb;
阅读全文……
.Net中的数字类型四则运算的有趣问题 [ 2007-11-29 | C# .Net编程 | rick@博客园 ]
DNGuard HVM 2.71beta [ 2007-11-28 | 原创作品 | rick@博客园 ]
.Net 加密原理,HVM核心的实现原理(八) [ 2007-11-26 | 原创作品 | rick@博客园 ]
目前加密壳将核心转移到Jit层后,内核模式的强度增加空间已经很小了。目前市面上的加密壳至少有一个共同的缺陷,无法防止Jit底层截获IL字节码。
有些壳采用从周边增加强度(如 Anti Hook),由于hook的多样性再加上壳又需要考虑自己的兼容性,所以这个效果不是十分理想。
从防止脱壳入手,通过保护局部变量签名和异常处理表,来阻止方法体的脱壳还原。这样虽然不能阻止截获IL字节码,如果配合流程混淆还是能起到相对有效的保护。
这样仍然有些遗憾,能实现阻止Jit层截获完整的IL字节码就完美了。
阅读全文……
有些壳采用从周边增加强度(如 Anti Hook),由于hook的多样性再加上壳又需要考虑自己的兼容性,所以这个效果不是十分理想。
从防止脱壳入手,通过保护局部变量签名和异常处理表,来阻止方法体的脱壳还原。这样虽然不能阻止截获IL字节码,如果配合流程混淆还是能起到相对有效的保护。
这样仍然有些遗憾,能实现阻止Jit层截获完整的IL字节码就完美了。
阅读全文……
.Net的混淆属性以及ildasm限制的简单解除方法 [ 2007-11-15 | 原创作品 | rick@博客园 ]
.Net 2.0开始提供了两个混淆相关的属性,ObfuscationAttribute 和 ObfuscateAssemblyAttribute 。
为开发者提供一种批注二进制文件的方法,以便混淆处理工具能够使用最少的外部配置正确处理这些二进制文件。
混淆处理工具就处理每个对象时就需要判断这个对象是否有这样的属性,如果有还需要把属性的参数值读取出来。然后进行相应处理。
阅读全文……
为开发者提供一种批注二进制文件的方法,以便混淆处理工具能够使用最少的外部配置正确处理这些二进制文件。
混淆处理工具就处理每个对象时就需要判断这个对象是否有这样的属性,如果有还需要把属性的参数值读取出来。然后进行相应处理。
阅读全文……