常见dotNet加密保护工具分析介绍

简介: 本文主要介绍一些dotNet加密保护工具的原理以及就其脱壳进行简单探讨。remotesoft protector、maxtocode、.Net Reactor、Cliprotector 、themida .Net、xenocode native compiler、DNGuard。

本文主要介绍一些dotNet加密保护工具的原理以及就其脱壳进行简单探讨。remotesoft protector、maxtocode、.Net Reactor、Cliprotector

、themida .Net、xenocode native compiler、DNGuard。


remotesoft protector

应该是一款比较老的。net加密保护工具了,看其官方网站似乎还是06年更新过。该软件没有提供试用版下载,相关资料比较少。去年接触过一

个该软件保护的.Net程序。加密后的程序发布时需要附带native 的 dll。
这款壳可以算是jit层的壳,是jit wrap 模式,通过hook getJit函数,拦截 jit 请求。在每次发生jit请求时其运行库会将加密的程序集完全

“原地” 解密还原。

特点:整体解密
脱壳:拦截地层jit请求,然后中断。这时程序集已经完全解密,直接pe dump就行了。

 


maxtocode
这个大家应该比较熟悉了,和 remotesoft protector 应该时前后脚起步的关系吧。其1.x,2.x,3.1x和3.2内核有很大差别。
特点:单方法体解密

maxtocode 1.x 版本没有用过,不过DST组的菩提曾经写过 maxtocode 1.x 的脱壳机。

maxtocdoe 2.x 其内核是EE层,单方法体“原地”解密。编译之后再擦除解密的代码。

脱壳:因为是“原地”解密,所以方法体代码逃不过profile的。可以在profile里面记录每个方法体,然后填充到文件中。
方法二:nop 调 其内核 的擦除代码。这个不用修改其内核文件,只要还原 mscorwks。dll 中其hook的第二处地方即可。这样方法体解密后就

在内存中了。所有方法invoke一面,直接pe dump即可。

maxtocode 3.1x,这个版本接触得比较多,我接触的第一个maxtocode版本就是3.10。这一版其内核相对2.x变动比较大。方法体已经不是原地

解密的了,也就是说profile已经不能监视到其il代码了,这算是一个巨大的进步吧。3.1x的内核基本上是一样的,只是后续的版本针对反射做

了一些小动作。

脱壳:直接反射、修复后反射。
方法二:直接调用其内核的解密函数进行脱壳,简单快速。

maxtocode 2007 企业版,Jit层内核 ,其在 ee 层和 jit层均安装了多处 hook。其内核在前面的文章里面有详细介绍。

脱壳:因其jit层内核的漏洞,可以用简单的方式还原方法体。Hook Jit 后可以简单的进行方法体还原完成单个方法的脱壳。
把每个方法都脱一面,填回文件即可。

.Net Reactor
一款很特别的。net加密壳。它有两种模式, application 和 library。
第一种模式 是把 。net程序整体加密,然后创建一个 native的loader。整体加密的脱壳很简单,dump 内存即可。

第二种模式 加密后的程序集也要带一个native的dll。和maxtocode一样,加了很多静态构造函数,一个startup函数。
但是在 startup函数调用后,即完成了程序集的全部“原地”解密。所以运行后直接dump内存就可以了。

脱壳:直接pe dump。

CliProtector
一款jit层的加密壳,大概是去年年底发现的。当时我在进行DNGuard2.0的开发,经分析后发现其内核模式和当时DNGuard 2.0的jit层内核很相似。分析后不久就发现了其jit层内核处理的一个漏洞,可以用简单的方式还原方法体。也就是最近在maxtocode 2007 企业版中发现的那个。在我的DNGuard 2.0 中对这个漏洞进行了预防处理。
个人感觉其模式兼容性比maxtocode 2007企业版要好。只是可惜,它除了有jit层漏洞,还偷了赖,IL代码没有加密,和我出的dnguard 1.0 demo一样,只是把 il搬了一下位置,没有加密。不过对于jit层脱壳来说加不加密倒无所谓了。但这样可能导致破解者从另一个角度去脱壳了。
特点:单方法体解密
脱壳:Jit hook,简单方法体还原, 同maxtocode2007企业版的脱壳方式。
方法二:分析其加密文件结构,直接还原(因其il代码没有加密,可以不用考虑解密算法的研究)。

themida .Net
themida 是win32的一个强壳,它支持 。Net的加密,其加密方式是整体加密,但是凭借其win32 anti的优势,相比其它整体加密的加密工具来说强度要高一点,不过也就仅仅那么一点。

脱壳:过anti,pe dump。

xenocode native compiler
xenocode 的专长是混淆保护,不过它也提供了一个所谓的生成本地代码的功能。其生成本地代码其实就是把 程序集打包,创建一个native loader。但是它的打包把framework都包进去了,也就是说打包后的程序可以在没有安装framework的机器上直接运行,代价是生成的文件体积非常大,因为它把十几兆的framework包进去了。

脱壳:直接pe dump。
方法二:分析其打包的文件格式直接解包(已有工具)。

DNGuard 1.0 内核模式同 maxtocode 3.1x。脱壳方式也雷同。

DNGuard 2.0 Jit层内核,同maxtocode 2007企业版和CLIProtector。相比少了一个漏洞,不能用简单方式还原方法体。
如果破解者对jit内核工作非常熟悉,也能从jit层的结构体中重构出方法体。

脱壳:Jit hook 结构体重构模式。

总结:
以上除了 maxtocode 3.x, DNGuard, CLiProtector 外,其它工具加密的程序都存在profile漏洞,可以通过profile获取代码。

综合兼容性和强度 CLiProtector 和 maxtocode 2007 企业版 要好一些。
DNGuard 2.0的强度好一些,兼容性比较差,就只支持 v2.0.50727.42 的framework。

DNGuard新版已经开始采用兼容全部framework的模式了。

上面的所有工具加密的程序集,都可以直接在jit层中截获 IL字节码。 IL字节码不是方法体,它是方法体的一部分。
只取得il字节码无法完成脱壳工作,但是已可反为MSIL汇编代码,进行算法分析了。

DNGuard HVM的目标就是不让jit层截获可分析的IL字节码。

 

 


 

目录
相关文章
|
8月前
|
人工智能 安全 API
这款流行 AI 工具被盗用挖取加密货币,这些隐患你需要知道
Docker 镜像被注入挖矿脚本并不是个别现象,而是一个需要引起重视的安全问题,本文向大家分享下 Higress 防范此类风险的相关经验。
221 101
|
5月前
|
数据采集 监控 API
加密货币 Pump 监测刮刀工具开发原理及实现路径
开发Pump监测刮刀工具需综合运用高频数据采集、波动率建模、跨平台对冲三大核心技术,2025年的技术瓶颈已从基础数据获取转向超低延迟执行与合规适配。建议采用模块化开发策略,优先实现核心监控功能,再逐步接入AI决策与链上套利模块。代码示例需根据最新交易所API文档动态调整,并严格遵守所在地监管法规。
|
存储 安全 数据安全/隐私保护
打造安全防线!Python AES&RSA加密工具,黑客绕道走的秘籍
【9月更文挑战第9天】随着数字化时代的到来,信息安全问题日益凸显。本文将介绍如何使用Python结合AES与RSA两种加密算法,构建强大的加密工具。AES以其高效性和强安全性著称,适用于大量数据的快速加密;RSA作为非对称加密算法,在加密小量数据及实现数字签名方面表现卓越。通过整合两者,可以构建既安全又灵活的加密系统。首先,需要安装pycryptodome库。接着,实现AES加密与解密功能,最后利用RSA加密AES密钥,确保其安全传输。这种设计不仅提高了数据传输效率,还增强了密钥交换的安全性,为敏感数据提供坚实保护。
409 43
|
7月前
|
存储 监控 算法
taosd 写入与查询场景下压缩解压及加密解密的 CPU 占用分析
在当今大数据时代,时序数据库的应用越来越广泛,尤其是在物联网、工业监控、金融分析等领域。TDengine 作为一款高性能的时序数据库,凭借独特的存储架构和高效的压缩算法,在存储和查询效率上表现出色。然而,随着数据规模的不断增长,在保证数据安全性和存储效率的同时,如何优化 CPU 的资源占用,成为了一个值得深入讨论的问题。
129 1
|
8月前
|
人工智能 安全 API
这款流行 AI 工具被盗用挖取加密货币,这些隐患你需要知道
这款流行 AI 工具被盗用挖取加密货币,这些隐患你需要知道
|
11月前
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
296 2
|
数据采集 数据可视化 数据挖掘
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
本文介绍了一个基于Python和Django框架,使用Scrapy进行去哪儿网数据采集与分析的项目,包括实现登录注册功能、MD5加密以及通过可视化大屏展示分析结果的综合系统。
195 1
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
|
安全 Java 数据安全/隐私保护
- 代码加密混淆工具-Java 编程安全性
在Java编程领域,保护代码安全与知识产权至关重要。本文探讨了代码加密混淆工具的重要性,并介绍了五款流行工具:ProGuard、DexGuard、Jscrambler、DashO 和 Ipa Guard。这些工具通过压缩、优化、混淆和加密等手段,提升代码安全性,保护知识产权。ProGuard 是开源工具,用于压缩和混淆Java代码;DexGuard 专为Android应用程序设计,提供强大加密功能;Jscrambler 基于云,保护Web和移动应用的JavaScript及HTML5代码;DashO 支持多种Java平台和
493 1
|
存储 算法 Linux
在Linux中,如何理解加密工具?如GnuPG和OpenSSL。
在Linux中,如何理解加密工具?如GnuPG和OpenSSL。
|
存储 安全 数据安全/隐私保护
打造安全防线!Python AES&RSA加密工具,黑客绕道走的秘籍
【8月更文挑战第3天】数字化时代下,信息安全至关重要。本文介绍如何用Python结合AES与RSA构建加密工具。AES因其高效加密大量数据的能力而被选中;RSA作为非对称加密算法,在密钥管理和数字签名上表现出色。先安装`pycryptodome`库,接着实现AES加密解密功能,并利用RSA加密AES密钥以安全传递。这套方案不仅速度快,还能有效保障数据安全,为开发者提供坚实的信息防护屏障。
147 5