• Net加密保护工具分析介绍


     

    :  

    dotNet加密保护工具的原理以及就其脱壳进行简单探讨。remotesoft protectormaxtocode.Net ReactorCliprotectorthemida .Netxenocode native compilerDNGuard


    remotesoft protector

    该是一款比较老的。net加密保护工具了,看其官方网站似乎还是06年更新过。该软件没有提供试用版下载,相关资料比较少。去年接触过一个该软件保护的.Net程序。加密后的程序发布时需要附带native  dll。这款壳可以算是jit层的壳,是jit wrap 模式,通过hook getJit函数,拦截 jit 请求。在每次发生jit请求时其运行库会将加密的程序集完全 “原地” 解密还原。

    特点:整体解密

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


    maxtocode

    这个大家应该比较熟悉了,和 remotesoft protector 应该时前后脚起步的关系吧。其1.x2.x3.1x3.2内核有很大差别。

    特点:单方法体解密

    脱壳:因为是原地解密,所以方法体代码逃不过profile的。可以在profile里面记录每个方法体,然后填充到文件中。

    方法nop  其内核 的擦除代码。这个不用修改其内核文件,只要还原 mscorwks.dll 中其hook的第二处地方即可。这样方法体解密后就在内存中了。所有方法invoke一面,直接pe dump即可。maxtocode 3.1x版其内核相对2.x变动比较大。方法体已经不是原地解密的了,也就是说profile已经不能监视到其il代码了,这算是一个巨大的进步吧。3.1x的内核基本上是一样的,只是后续的版本针对反射做了一些小动作。

    脱壳:直接反射、修复后反射。

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

    maxtocode 2007 企业版

    Jit层内核 ,其在 ee 层和 jit层均安装了多处 hook

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

    .Net Reactor

    一款很特别的。net加密壳。它有两种模式, application  library。第一种模式 是把 .net程序整体加密,然后创建一个 nativeloader。整体加密的脱壳很简单,dump 内存即可。第二种模式 加密后的程序集也要带一个nativedll。和maxtocode一样,加了很多静态构造函数,一个startup函数。但是在 startup函数调用后,即完成了程序集的全部原地解密。所以运行后直接dump内存就可以了。

    脱壳:直接pe dump

    CliProtector

    一款jit层的加密壳,其内核模式和DNGuard 2.0jit层内核很相似。其jit层内核处理的一个漏洞,可以用简单的方式还原方法体。

    特点:单方法体解密

    脱壳:Jit hook,简单方法体还原, maxtocode2007企业版的脱壳方式。

    themida .Net

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

    脱壳:过antipe dump

    xenocode native compiler

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

    脱壳:直接pe dump

    DNGuard 

    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 frameworkDNGuard新版已经开始采用兼容全部framework的模式了。上面的所有工具加密的程序集,都可以直接在jit层中截获 IL字节码。 IL字节码不是方法体,它是方法体的一部分。只取得il字节码无法完成脱壳工作,但是已可反为MSIL汇编代码,进行算法分析了。DNGuard HVM的目标就是不让jit层截获可分析的IL字节码。

     

  • 相关阅读:
    构建自己的外汇智能交易系统
    EA范例
    读书札记:加拿大元因素
    预计欧元近期将“绝境大反攻”
    读书札记:新西兰元因素
    在新的一年里开启新的人生
    旧文重发:行在道上,从局部到全局——与师者高焕堂、赵善中先生谈《大道至简》
    与邹欣先生就《大道至简》一书中的两个主要问题的讨论
    《大道至简》一书第三版,与编辑就本书写作风格的讨论
    与读者们谈谈《大道至简》这五年
  • 原文地址:https://www.cnblogs.com/chjw8016/p/1723654.html
Copyright © 2020-2023  润新知