紫雨轩 .Net, DNGuard HVM , .Net VMProtect

DNGuard HVM - Advanced .NET Code Protection Technology

导航

09 2007 档案

讨论 winform 引擎以及 CancelButton,OKButton 的实现原理
摘要:前面提到了form关闭时的两个奇怪现象,有不少朋友参与了讨论。 有些朋友还没有看清楚问题的所在就很轻率的评论。 A.Z. 在讨论中已经找到的问题的基本所在,问题关键还是在 CalledClosing 这个变量的状态。 这个问题要从另外一个奇怪现象说起。 为什么直接给 form的DialogResult属性赋值会导致form关闭? 这个属性的set函数如下: public void set_DialogResult(DialogResult value) { if (!ClientUtils.IsEnumValid(value, (int) value, 0, 7)) { throw new InvalidEnumArgumentException("value", (int) value, typeof(DialogResult)); } this.dialogResult = value; } 很明显,这个set函数不可能直接导致 form的关闭。 阅读全文

posted @ 2007-09-24 18:03 紫雨轩 .Net 阅读(3010) 评论(14) 推荐(0)

form关闭时的一个奇特现象
摘要:今天查一个错误时发现这个问题。 有一个frmEdit。在Closing事件里面判断数据是否修改,然后提示用户是否需要保存数据。 提供了三个按钮,yes,no,cancel。 yes:保存数据,关闭窗体。 no:直接关闭窗体。 cancel:不关闭窗体。 实际运行,点yes,cancel,处理都对,但是点 no,就会重复弹出这个对话框, 如果一直点 no的话,就会一直出现。 看一眼代码没有发现明显问题,实际调试才发现问题所在。 代码如下: 阅读全文

posted @ 2007-09-21 11:35 紫雨轩 .Net 阅读(3481) 评论(50) 推荐(0)

.Net 虚拟框架的实现原理
摘要:前面介绍了利用第三方虚拟环境来实现 .Net程序脱离框架运行, 并介绍了如何自己编写加载器程序。 今回我们介绍虚拟框架的核心实现原理,感兴趣的朋友可以参考自己实现。 在 让 .Net 程序 脱离 .net framework框架 运行(源代码实现说明) 中我们介绍的脱 离框架运行的方法,仍然需要依赖 rsdeploy.dll 才行。 今回我们就介绍这个 dll 的实现原理。 简单的实现方式: 首先我们需要用到一个 undocumented features 阅读全文

posted @ 2007-09-17 17:48 紫雨轩 .Net 阅读(7838) 评论(37) 推荐(0)

DNGuard HVM v2.61 发布
摘要:相比前一次的更新: 调整了加密算法以及加密数据的存储结构。 试用版(英文)下载地址:http://www.dnguard.net/downloads.aspx 上个星期花时间做了 DNGuard 的主页:http://www.dnguard.net/ 专业版的注册系统完成大半了,等主页上的客户中心完成了再正式发布。 阅读全文

posted @ 2007-09-16 19:24 紫雨轩 .Net 阅读(1123) 评论(7) 推荐(0)

DNGuard HVM 2007 标准版更新[20070910]
摘要:增加了一种加密算法。 对加密数据的保存结构进行了变更。 阅读全文

posted @ 2007-09-10 00:05 紫雨轩 .Net 阅读(1017) 评论(0) 推荐(0)

让 .Net 程序 脱离 .net framework框架 运行(源代码实现说明)
摘要:前面介绍了 “让 .Net 程序 脱离 .net framework框架 运行的方法”, 该方法主要是利用了Fetion的框架来实现的, 今天我们要介绍的是不使用Fetion的框架,自己来实现Fetion框架的相关功能, 并给出相关实现代码。 阅读全文

posted @ 2007-09-09 23:10 紫雨轩 .Net 阅读(9781) 评论(34) 推荐(0)

.Net 加密原理,纯Jit层加密壳核心的实现(七)
摘要:前面我们介绍了目前主流的双层加密壳核心实现原理, 以及应对兼容性,同时考虑安全性的前提下对加密壳核心进行简化。 并就加密壳核心的兼容性以及安全性进行了讨论 ,提到了加密壳核心兼容性和安全性共赢的实现模式,纯Jit层核心。 今回我们将介绍这种加密壳核心的实现。 这种核心可以基本保障方法体局部变量签名以及异常处理表的安全,但仍然无法保证IL字节码的安全。 那么它的保护意义何在? 阅读全文

posted @ 2007-09-08 23:54 紫雨轩 .Net 阅读(3968) 评论(12) 推荐(0)

.Net 加密原理,加密壳核心的兼容性以及安全性讨论(六)
摘要:前面我们介绍了目前主流的双层加密壳核心实现原理, 同时提到了应对兼容性,同时考虑安全性的前提下对加密壳核心进行简化。 今回主要讨论一下安全性、兼容性需要注意哪些因素。 阅读全文

posted @ 2007-09-07 22:59 紫雨轩 .Net 阅读(2775) 评论(4) 推荐(0)

.Net 加密原理,EE,Jit双层加密壳核心的实现(五)
只有注册用户登录后才能阅读该文。

posted @ 2007-09-06 23:02 紫雨轩 .Net 阅读(1754) 评论(2) 推荐(0)

让 .Net 程序 脱离 .net framework框架 运行的方法(补充)
摘要:前面介绍了 让 .Net 程序 脱离 .net framework框架 运行的方法 , 但是有些朋友应用中还是遇到了一些问题,主要时需要自己提取框架程序以及应用的dll问题。 这里介绍一个偷懒提取方式。 阅读全文

posted @ 2007-09-05 23:12 紫雨轩 .Net 阅读(6139) 评论(36) 推荐(0)

泛型,.Net 加解密中的一个麻烦
摘要:.Net中的泛型和C++中的模版很相似,但在编译行为上有些不同。 之前做DNGuard HVM 时就遇到了加密泛型的麻烦问题,最近又发现了泛型在 ngen 加强保护模式下也有问题,在.Net解密中它同样也是一个麻烦。 C++中的模版在编译时就生成了实例代码,出现代码膨胀。 .Net的泛型,在编译时只会生成一份MSIL代码 阅读全文

posted @ 2007-09-04 16:31 紫雨轩 .Net 阅读(2801) 评论(13) 推荐(0)

.Net 加密原理,虚拟机预处理层加密壳核心的实现(四)
只有注册用户登录后才能阅读该文。

posted @ 2007-09-04 00:12 紫雨轩 .Net 阅读(1854) 评论(1) 推荐(0)

.Net Native Image 加强保护的模式在 ORM、 AOP 中的问题
摘要:前面我们讨论了 ngen 生成的 ni 文件的还原,以及它的加强保护方式阻止还原。 今天我在测试一个 ORM 程序时发现, 用加强保护模式的 ni 文件运行会出现 BadImageFormat 的 异常。 阅读全文

posted @ 2007-09-03 15:37 紫雨轩 .Net 阅读(1880) 评论(4) 推荐(0)

.Net 加密原理,EE层加密壳核心的改进(三)
只有注册用户登录后才能阅读该文。

posted @ 2007-09-03 11:02 紫雨轩 .Net 阅读(1853) 评论(2) 推荐(0)

.Net 加密原理, 纯EE层加密壳内核的实现(二)
摘要:在上一回 .Net 加密原理,方法体加密信息对应关系的实现 中介绍了实现加密壳首要解决的基础问题, 今回以第一种实现模式介绍如何实现一个纯EE层(mscorwks.dll)的加密壳内核。 加壳运行库的核心代码 DWORD* __fastcall DNGuard_GetILHeader(DWORD_PTR MethodPtr) { DWORD* pIL = OrgGetILHeader(MethodPtr); if(*pIL == gdwMagic) { pIL = DecryptMethod(pIL[1]); } return pIL; } 阅读全文

posted @ 2007-09-02 16:35 紫雨轩 .Net 阅读(2414) 评论(2) 推荐(0)

.Net 加密原理,方法体加密信息对应关系的实现(一)
摘要:在 per method 的dotNet加密中,首要解决的方法体对应关系,即在运行时加密壳如何确定当前要解密的方法体所对应的加密信息。 目前大部分加密壳都直接利用了dotNet的元数据来保存这种对应关系, 阅读全文

posted @ 2007-09-01 17:53 紫雨轩 .Net 阅读(3408) 评论(9) 推荐(0)