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

时间:2010-02-21 09:37:19  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:     remotesoft protector      应该是一款比较老的。net加密保护工具了,看其官方网站似乎还是06年更新过。该软件没有提供试用版下载,相关资料比较少。去年接触过一      个该软件保护的.Net程序。加密后的程序发布时需要附带native 的 dll。   这款壳可以算是jit层的壳,...
  正文:本文主要介绍一些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代码没有加密,可以不用考虑解密算法的研究)。
"常见dotNet加密保护工具分析介绍"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/12849.html


关键字:

关于《常见dotNet加密保护工具分析介绍》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td