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

常见dotNet加密保护工具分析介绍,第1张

 本文主要介绍一些dotNet加密保护工具的原理以及就其脱壳进行简单探讨 remotesoft protector maxtocode Net Reactor Cliprotector   themida Net xenocode native piler DNGuard           remotesoft protector      应该是一款比较老的 net加密保护工具了 看其官方网站似乎还是 年更新过 该软件没有提供试用版下载 相关资料比较少 去年接触过一个该软件保护的 Net程序 加密后的程序发布时需要附带native 的 dll  这款壳可以算是jit层的壳 是jit wrap 模式 通过hook getJit函数 拦截 jit 请求 在每次发生jit请求时其运行库会将加密的程序集完全 原地 解密还原      特点 整体解密   脱壳 拦截地层jit请求 然后中断 这时程序集已经完全解密 直接pe dump就行了           maxtocode   这个大家应该比较熟悉了 和 remotesoft protector 应该时前后脚起步的关系吧 其 x x x和 内核有很大差别   特点 单方法体解密      maxtocode x 版本没有用过 不过DST组的菩提曾经写过 maxtocode x 的脱壳机      maxtocdoe x 其内核是EE层 单方法体 原地 解密 编译之后再擦除解密的代码      脱壳 因为是 原地 解密 所以方法体代码逃不过profile的 可以在profile里面记录每个方法体 然后填充到文件中   方法二 nop 调 其内核 的擦除代码 这个不用修改其内核文件 只要还原 mscorwks dll 中其hook的第二处地方即可 这样方法体解密后就在内存中了 所有方法invoke一面 直接pe dump即可      maxtocode x 这个版本接触得比较多 我接触的第一个maxtocode版本就是 这一版其内核相对 x变动比较大 方法体已经不是原地      解密的了 也就是说profile已经不能监视到其il代码了 这算是一个巨大的进步吧 x的内核基本上是一样的 只是后续的版本针对反射做了一些小动作      脱壳 直接反射 修复后反射   方法二 直接调用其内核的解密函数进行脱壳 简单快速      maxtocode 企业版 Jit层内核 其在 ee 层和 jit层均安装了多处 hook 其内核在前面的文章里面有详细介绍      脱壳 因其jit层内核的漏洞 可以用简单的方式还原方法体 Hook Jit 后可以简单的进行方法体还原完成单个方法的脱壳   把每个方法都脱一面 填回文件即可      Net Reactor   一款很特别的 net加密壳 它有两种模式 application 和 library   第一种模式 是程序整体加密 然后创建一个native的loader 整体加密的脱壳很简单 dump 内存即搏晌可      第二种模式 加密后的程序集也要带一个native的dll 和maxtocode一样 加了很多静态构造函数 一个startup函数   但是在 startup函数调用后 即完成了程序集的全部 原地 解密 所以运行后直接dump内存就可以了      脱壳 直接pe dump       CliProtector   一款jit层的加密壳 大概是去年年底发现的 当时我在进行DNGuard 的开发 经分析后发现其内核模式和当时DNGuard 的jit层内核很相似 分析后不久就发现了其jit层内核处理的一个漏洞 可以用简单的方式还原方法体 也就是最近在maxtocode 企业版中发现的那个 在我的DNGuard 中对这个漏洞进行了预防处理   个人感觉其模式兼容性比maxtocode 企业版要好 只是可惜 它除了有jit层漏洞 还偷了赖 IL代码没有加密 和我出的dnguard demo一样 只是把 il搬了一下位置 没有加密皮信 不过对燃银轮于jit层脱壳来说加不加密倒无所谓了 但这样可能导致破解者从另一个角度去脱壳了   特点 单方法体解密   脱壳 Jit hook 简单方法体还原 同maxtocode 企业版的脱壳方式   方法二 分析其加密文件结构 直接还原(因其il代码没有加密 可以不用考虑解密算法的研究)       themida Net   themida 是win 的一个强壳 它支持 Net的加密 其加密方式是整体加密 但是凭借其win anti的优势 相比其它整体加密的加密工具来说强度要高一点 不过也就仅仅那么一点      脱壳 过anti pe dump       xenocode native piler   xenocode 的专长是混淆保护 不过它也提供了一个所谓的生成本地代码的功能 其生成本地代码其实就是把 程序集打包 创建一个native loader 但是它的打包把framework都包进去了 也就是说打包后的程序可以在没有安装framework的机器上直接运行 代价是生成的文件体积非常大 因为它把十几兆的framework包进去了      脱壳 直接pe dump   方法二 分析其打包的文件格式直接解包(已有工具)      DNGuard 内核模式同 maxtocode x 脱壳方式也雷同      DNGuard Jit层内核 同maxtocode 企业版和CLIProtector 相比少了一个漏洞 不能用简单方式还原方法体   如果破解者对jit内核工作非常熟悉 也能从jit层的结构体中重构出方法体      脱壳 Jit hook 结构体重构模式    总结   以上除了 maxtocode x DNGuard CLiProtector 外 其它工具加密的程序都存在profile漏洞 可以通过profile获取代码      综合兼容性和强度 CLiProtector 和 maxtocode 企业版 要好一些   DNGuard 的强度好一些 兼容性比较差 就只支持 v 的framework      DNGuard新版已经开始采用兼容全部framework的模式了      上面的所有工具加密的程序集 都可以直接在jit层中截获 IL字节码 IL字节码不是方法体 它是方法体的一部分   只取得il字节码无法完成脱壳工作 但是已可反为MSIL汇编代码 进行算法分析了      DNGuard HVM的目标就是不让jit层截获可分析的IL字节码 lishixinzhi/Article/program/net/201311/11563

.net软件加密锁,可试试德国的威步,威步(WIBU)信息系统的软件加密狗,还能申请免费试用版。

加密锁:威步(WIBU)的CodeMeter,AxProtector(for.net)两款软件加密锁性能非常不错

混淆的问题,与传统的代码混淆工具(Obfuscator)不同,AxProtector可以完全阻止对.NET 程序集(由 C#, VB.NET, Delphi.NET, ASP.Net… 等语言编写)的反编译。通俗的讲,AxProtector在破解者和您的 .NET 代码之间构建了强大的防破解保护屏障,生成一个基于 Windows 的而不是基于 MSIL 的兼容格式文件。原始的 .NET 代码完整的被加密后封装在本地代码内,无论何时都不会释放到硬盘,对于破解者是不可见的。

与单纯的.net加密软件不同,AxProtector与CodeMeter硬件加密狗配套餐使用,采用了更为严密的密钥管理,及最先进的AES、RSA、ECC等加密算法存储或传输密钥,保证通讯安全。

.Net代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候。所以一个按照正常方式编译的.class 文件可以非常轻易地被反编译。一般软件开发商会采用一种叫做混淆器的工具。混淆器的作用是对编译好的代码进行混野迟淆,使得其无法被反编译或者反编译后的代码混乱难懂。由于混淆器只是混淆了方法名称或流程,而不能防止源代码被反编译,因此混淆器的作用只是增加了陵脊迹反编译的难度,最终的结果也是治标不治本。对于一些掌握工具的人来说几乎还是透明的。AxProtector是一款真正意义的加密源代码、防止反编译的.net软件加密软件。

AxProtector加密了.net原代码,任何时候原代码都不可能被还原到硬盘当中。采用AxProtector加密后的.net代码只有在程序调用或执行某一段函数的时候,才能通过AxProtectorClass在内存中解密后返回到程序中执行,运行之后迅速立即加密。这种随机加密、按需解密原代码的功能,能很好的防止.Net程序的反编译,同时尺并能够很好地防止API加密点被摘除。有效地保证了源代码的执行效率和安全性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12366714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存