阿里云服务器免费领卷啦。

捡代码论坛-最全的游戏源码下载技术网站!

 找回密码
 立 即 注 册

QQ登录

只需一步,快速开始

搜索
关于源码区的附件失效或欺骗帖, 处理办法捡代码论坛官方微信,不定期分享免费优质资源下载
查看: 137|回复: 1

[开发技术] [.NET逆向] SightInside-.NET托管加密初探

[复制链接]

3111

主题

3311

帖子

9万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
98305
QQ
发表于 2019-11-3 13:20:54 | 显示全部楼层 |阅读模式
SightInside-.NET托管加密初探
前言
现阶段,.NET应用程序有几种主要保护方式:

混淆
名称混淆:对元数据进行处理,使反编译的代码命名的可读性降低。兼容性好,对性能影响较小。适用于Mono等多个分支。
传统控制流程混淆:对程序流程进行处理,使反编译的代码流程的可读性降低。兼容性好,对性能影响较大。主要技术有代码碎片化、代码乱序等。
虚拟保护控制流程混淆:在传统控制流程混淆的基础上,模拟处理器对指令集的处理,达到保护的效果。兼容性好,对性能影响大。
非托管层面加密:使用Native应用程序的保护手段保护程序集。如NT系统下的 ThemIDA 。
混合编译:利用CLR混合编译特性,将托管代码与非托管代码编译至一个应用程序中。如 DLLProtect 。
托管层面加密:通过原地解密或挂钩运行库等方式加密托管代码。根据挂钩来源,又可分为:
由托管代码挂钩:由托管程序集挂钩运行库,如 Reactor 。兼容性优于非托管挂钩形式的加密。
由非托管代码挂钩:由非托管程序挂钩运行库,如 MaxtoCode 。
其他方式
SupressIldasm属性。
利用一些特有特性。
本篇文章将针对托管层面加密展开。

看看非托管代码挂钩了什么
首先要说明的是,并非所有托管层面的加密都存在Inline HOOK,也并非所有的HOOK都来自非托管加密代码。

我们来看这样一个例子:

查看挂钩对象

可以发现, mscorwks.dll 中有函数被挂钩了。我们推断,这是一个虚拟机预处理层的加密。

为什么这么推断呢?
.NET程序运行时,先交由 mscoree.dll 检查所需版本运行库是否存在。因此,.NET应用程序只有一个导入函数,即 _CorExeMain 或 _CorDllMain 。

然后交由相应版本的执行引擎(Execution Engine,abbr. EE)处理。这一层称为虚拟机预处理层(EE层)。在.NET 2.0中,由 mscorwks.dll 承担这一角色,在.NET 4.0中,由 clr.dll 承担这一角色。

最后交由即时编译器(Just-in-Time compiler,abbr. JIT compiler)编译 MSIL 为 Machine Code 执行。这一层称为即时编译器层(JIT层)。在.NET 2.0中,由 mscorjit.dll 承担这一角色,在.NET 4.0中,由 clrjit.dll 承担这一角色。

结合 mscorwks.dll 的符号文件,搜索挂钩地址,我们可以定位到这样的函数中:

使用符号文件查看挂钩对象

对于这种情况,有两种思路可行。一种是分析 Word.dll ,找到解密的算法。另一种是直接截获解密的数据。

尝试分析 Word.dll
思路是正确的,因为确实是在挂钩的函数处将加密的方法体解密。但是,由于 Word.dll 是一个非托管程序,分析难度较大。此外,非托管程序可以被很多成熟的保护工具保护,如此处的 VMProtect ,分析难以进一步进行。相对于托管代码挂钩,非托管代码挂钩虽然降低兼容性,但强度更大。

游客,如果您要查看本帖隐藏内容请回复




捡代码论坛-最全的游戏源码下载技术网站! - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与捡代码论坛-最全的游戏源码下载技术网站!享有帖子相关版权
3、捡代码论坛版权,详细了解请点击。 捡代码论坛微信号

回复

使用道具 举报

0

主题

10

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2019-11-4 09:27:26 | 显示全部楼层
666666666666666
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立 即 注 册

本版积分规则

阿里云双11服务器优惠

阿里云双11服务器优惠
技术支持
在线咨询
QQ咨询
3351529868

QQ|RSS订阅|Archiver|手机版|小黑屋|捡代码论坛-专业源码分享下载 ( 陕ICP备15015195号-1|网站地图

GMT+8, 2020-1-18 16:55 , Processed in 0.121985 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表