紫雨轩 .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 阅读(2038) | 评论 (14)  编辑

form关闭时的一个奇特现象
     摘要: 今天查一个错误时发现这个问题。
有一个frmEdit。在Closing事件里面判断数据是否修改,然后提示用户是否需要保存数据。
提供了三个按钮,yes,no,cancel。
yes:保存数据,关闭窗体。
no:直接关闭窗体。
cancel:不关闭窗体。

实际运行,点yes,cancel,处理都对,但是点 no,就会重复弹出这个对话框,
如果一直点 no的话,就会一直出现。

看一眼代码没有发现明显问题,实际调试才发现问题所在。
代码如下:  阅读全文

posted @ 2007-09-21 11:35 紫雨轩 .Net 阅读(2579) | 评论 (50)  编辑

.Net 虚拟框架的实现原理
     摘要: 前面介绍了利用第三方虚拟环境来实现 .Net程序脱离框架运行,
并介绍了如何自己编写加载器程序。
今回我们介绍虚拟框架的核心实现原理,感兴趣的朋友可以参考自己实现。

在 让 .Net 程序 脱离 .net framework框架 运行(源代码实现说明) 中我们介绍的脱

离框架运行的方法,仍然需要依赖 rsdeploy.dll 才行。
今回我们就介绍这个 dll 的实现原理。

简单的实现方式:
首先我们需要用到一个 undocumented features
  阅读全文

posted @ 2007-09-17 17:48 紫雨轩 .Net 阅读(4825) | 评论 (35)  编辑

DNGuard HVM v2.61 发布

posted @ 2007-09-16 19:24 紫雨轩 .Net 阅读(498) | 评论 (6)  编辑

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

posted @ 2007-09-10 00:05 紫雨轩 .Net 阅读(556) | 评论 (0)  编辑

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

posted @ 2007-09-09 23:10 紫雨轩 .Net 阅读(4839) | 评论 (32)  编辑

.Net 加密原理,纯Jit层加密壳核心的实现(七)
     摘要: 前面我们介绍了目前主流的双层加密壳核心实现原理,
以及应对兼容性,同时考虑安全性的前提下对加密壳核心进行简化。
并就加密壳核心的兼容性以及安全性进行了讨论 ,提到了加密壳核心兼容性和安全性共赢的实现模式,纯Jit层核心。

今回我们将介绍这种加密壳核心的实现。

这种核心可以基本保障方法体局部变量签名以及异常处理表的安全,但仍然无法保证IL字节码的安全。
那么它的保护意义何在?

  阅读全文

posted @ 2007-09-08 23:54 紫雨轩 .Net 阅读(2155) | 评论 (12)  编辑

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

  阅读全文

posted @ 2007-09-07 22:59 紫雨轩 .Net 阅读(1928) | 评论 (3)  编辑

.Net 加密原理,EE,Jit双层加密壳核心的实现(五)
     摘要: 前面介绍了虚拟机预处理层的加密壳核心的实现,今回将在这个基础上介绍另一个目前主流的加密壳核心实现方式--EE、Jit双层加密壳核心

前一回的核心模式解决了反射漏洞的问题,今回将就双层模式介绍两种实现实例。

在今回的双层核心中,  阅读全文

posted @ 2007-09-06 23:02 紫雨轩 .Net 阅读(1577) | 评论 (2)  编辑

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

posted @ 2007-09-05 23:12 紫雨轩 .Net 阅读(3918) | 评论 (36)  编辑

泛型,.Net 加解密中的一个麻烦
     摘要: .Net中的泛型和C++中的模版很相似,但在编译行为上有些不同。

之前做DNGuard HVM 时就遇到了加密泛型的麻烦问题,最近又发现了泛型在 ngen 加强保护模式下也有问题,在.Net解密中它同样也是一个麻烦。

C++中的模版在编译时就生成了实例代码,出现代码膨胀。
.Net的泛型,在编译时只会生成一份MSIL代码  阅读全文

posted @ 2007-09-04 16:31 紫雨轩 .Net 阅读(1926) | 评论 (12)  编辑

.Net 加密原理,虚拟机预处理层加密壳核心的实现(四)
     摘要: 前面介绍了 EE 层核心的实现,以及针对反射漏洞的改进,
但是仍然没有达到彻底阻止反射的目的。

今回将介绍实现一个虚拟机预处理层的加密壳核心,使反射彻底失效。

前面提到 第二种模式 已经将核心向预处理层拉近了,
今回就在这个基础上介绍实现预处理层的加密壳核心。
  阅读全文

posted @ 2007-09-04 00:12 紫雨轩 .Net 阅读(1711) | 评论 (1)  编辑

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

posted @ 2007-09-03 15:37 紫雨轩 .Net 阅读(1477) | 评论 (4)  编辑

.Net 加密原理,EE层加密壳核心的改进(三)
     摘要: 前面介绍了 EE 层加密壳核心的实现,但是那个实现模式存在反射漏洞,
今回介绍针对反射,对核心的增强方法。

方式一、破坏反射  阅读全文

posted @ 2007-09-03 11:02 紫雨轩 .Net 阅读(1695) | 评论 (2)  编辑

.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 阅读(1528) | 评论 (2)  编辑

.Net 加密原理,方法体加密信息对应关系的实现(一)
     摘要: 在 per method 的dotNet加密中,首要解决的方法体对应关系,即在运行时加密壳如何确定当前要解密的方法体所对应的加密信息。

目前大部分加密壳都直接利用了dotNet的元数据来保存这种对应关系,
  阅读全文

posted @ 2007-09-01 17:53 紫雨轩 .Net 阅读(1859) | 评论 (9)  编辑