运行库兼容性更新:
调整了运行库,修正了一处判断DynamicMethod错误的bug。
下载地址:
阅读全文……
DNGuard HVM RC2 发布(运行库更新) [ 2007-08-07 | 原创作品 | rick@博客园 ]
DNGuard HVM 试用版 RC1 发布 [ 2007-08-07 | 原创作品 | rick@博客园 ]
一款 .Net 内核级的加密保护工具。
采用的是纯虚拟机处理层的内核。
兼容目前所有的32位 .Net 框架版本,Net 1.1, 2.0, 3.0, 3.5 以及其所有子版本(如beta x,CTP,RC,sp x等)。
阅读全文……
采用的是纯虚拟机处理层的内核。
兼容目前所有的32位 .Net 框架版本,Net 1.1, 2.0, 3.0, 3.5 以及其所有子版本(如beta x,CTP,RC,sp x等)。
阅读全文……
.Net Jit层脱壳机的实现原理 [ 2007-08-04 | 原创作品 | rick@博客园 ]
本文将在 .Net 反射脱壳机核心源代码 的基础上介绍,如何实现 Jit层脱壳 机。
首先我们选择使用 C++/CLI 来完成这个工作。反射部分需要用到 。Net的相关类库,jit 层 hook 需要使用native c++ 方面的功能。
本文假设您已经完成了 hook jit的工作,并截获到了相关结构体。
阅读全文……
首先我们选择使用 C++/CLI 来完成这个工作。反射部分需要用到 。Net的相关类库,jit 层 hook 需要使用native c++ 方面的功能。
本文假设您已经完成了 hook jit的工作,并截获到了相关结构体。
阅读全文……
常见dotNet加密保护工具分析介绍 [ 2007-07-27 | 原创作品 | rick@博客园 ]
本文主要介绍一些dotNet加密保护工具的原理以及就其脱壳进行简单探讨。remotesoft protector、maxtocode、.Net Reactor、Cliprotector
、themida .Net、xenocode native compiler、DNGuard。
阅读全文……
、themida .Net、xenocode native compiler、DNGuard。
阅读全文……
[转载]Modifying IL at runtime (step II+) [ 2007-07-27 | 原创作品 | blogmonstuff ]
In my previous entry on IL modification we looked at the details for inserting a method call with a known (hardcoded) method token. We also used metadata to list the available methods, as a way to avoid this hardcoding.
When listing the methods on a given class, the method signatures were available, but we didn't use them. In this short entry, we'll extend our metadata inspection a little bit by using an existing method's signature to search for another method with a matching signature.
Update: I posted the zipped project.
Using a known signature to find a method
阅读全文……
When listing the methods on a given class, the method signatures were available, but we didn't use them. In this short entry, we'll extend our metadata inspection a little bit by using an existing method's signature to search for another method with a matching signature.
Update: I posted the zipped project.
Using a known signature to find a method
阅读全文……
[转载]Modifying IL at runtime (step II) [ 2007-07-27 | 原创作品 | blogmonstuff ]
A couple of days back, we tweaked the running IL a little bit. Today, let's modify it some more!
We'll insert a method call at the beginning of the body of the Main method. The method we'll call is as easy as can be: it is part of the of the same class, is static and has a void() signature.
The IL used during the modification is still hardcoded. But we'll try to start moving away from that by exploring the metadata, to try and find the method token at runtime. The first step of this is to list all the methods on the current class and print out their names, which we'll see how to do.
You'll need a running copy of the DNProfiler tool to try the code provided and I recommend that you read my previous blog on the subject if you haven't used the Profiler APIs before.
阅读全文……
We'll insert a method call at the beginning of the body of the Main method. The method we'll call is as easy as can be: it is part of the of the same class, is static and has a void() signature.
The IL used during the modification is still hardcoded. But we'll try to start moving away from that by exploring the metadata, to try and find the method token at runtime. The first step of this is to list all the methods on the current class and print out their names, which we'll see how to do.
You'll need a running copy of the DNProfiler tool to try the code provided and I recommend that you read my previous blog on the subject if you haven't used the Profiler APIs before.
阅读全文……
[转载]Modifying IL at runtime [ 2007-07-26 | 原创作品 | blogmonstuff ]
原文出处:http://blog.monstuff.com/
If you remember the Omniscient Debugger, it was a Java debugger that instrumented the bytecode at runtime to trace calls and monitor variables. It did so by using a custom ClassLoader.
Unfortunately the .NET classes that seemed somewhat equivalent to the Java ClassLoader are sealed, so they can't be extended. So, for a while I thought runtime instrumentation of the code wasn't possible in .NET...
A couple weeks later, I stumbled onto the NProf (open-source .NET profiler) project and wondered how they did their magic. It turns out they use the CLR Profiling APIs which are COM based and allow you to hook up into various events and get information on the runtime. It is while digging some more into these that I first found a mention of the intriguing ICorProfilerInfo::SetILFunctionBody method.
阅读全文……
If you remember the Omniscient Debugger, it was a Java debugger that instrumented the bytecode at runtime to trace calls and monitor variables. It did so by using a custom ClassLoader.
Unfortunately the .NET classes that seemed somewhat equivalent to the Java ClassLoader are sealed, so they can't be extended. So, for a while I thought runtime instrumentation of the code wasn't possible in .NET...
A couple weeks later, I stumbled onto the NProf (open-source .NET profiler) project and wondered how they did their magic. It turns out they use the CLR Profiling APIs which are COM based and allow you to hook up into various events and get information on the runtime. It is while digging some more into these that I first found a mention of the intriguing ICorProfilerInfo::SetILFunctionBody method.
阅读全文……
DNGuard HVM beta1 [ 2007-07-23 | 原创作品 | rick@博客园 ]
DNGuard 新版内核框架基本定下来了。目前版本定为 beta1。
综合考虑,采用了兼容所有 dotNet framework 版本的内核模式,Net 1.0, 1.1, 2.0, 3.0, 3.5 以及其所有子版本(如beta x,CTP,RC,sp x等)。
采用的纯虚拟机处理层内核,在dotNet执行引擎层没有安装内核服务,在执行层兼容所有版本的dotNet框架太费精力。
阅读全文……
综合考虑,采用了兼容所有 dotNet framework 版本的内核模式,Net 1.0, 1.1, 2.0, 3.0, 3.5 以及其所有子版本(如beta x,CTP,RC,sp x等)。
采用的纯虚拟机处理层内核,在dotNet执行引擎层没有安装内核服务,在执行层兼容所有版本的dotNet框架太费精力。
阅读全文……
.Net 中的名称混淆与名称反混淆 [ 2007-07-19 | 原创作品 | rick@博客园 ]
提到 .Net 的保护,首推就是混淆保护了,而名称混淆基本上是所有混淆保护工具都具有的功能。
可以说不支持名称混淆的工具称不上混淆保护工具。
对于混淆保护,大家有一个认识,就是 混淆是一个不可逆的过程。而加密保护是一个可逆的过程。
名称混淆真的完全不可逆吗?答案是否定的。
阅读全文……
可以说不支持名称混淆的工具称不上混淆保护工具。
对于混淆保护,大家有一个认识,就是 混淆是一个不可逆的过程。而加密保护是一个可逆的过程。
名称混淆真的完全不可逆吗?答案是否定的。
阅读全文……
DNGuard HVM副产品(元数据名称编辑器) [ 2007-07-18 | 原创作品 | rick@博客园 ]
程序采用的 VS2003 c++/mfc 编写。使用了frame work 2.0 的api。
这个是从DNGuard HVM的手动名称混淆功能中剥离出来的副产品。
可以用来协助手动 进行名称 混淆/反混淆 。
阅读全文……
这个是从DNGuard HVM的手动名称混淆功能中剥离出来的副产品。
可以用来协助手动 进行名称 混淆/反混淆 。
阅读全文……