千家信息网

差异分析定位Ring 3保护模块

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,差异分析定位Ring 3保护模块由于保护模块通常会Hook操作系统的原生DLL接口来进行保护,所以可以采用差异比较原生DLL文件和加载到内存中的原生DLL直接的差别来定位Ring 3模块。在分析的过程
千家信息网最后更新 2026年10月31日差异分析定位Ring 3保护模块

差异分析定位Ring 3保护模块

由于保护模块通常会Hook操作系统的原生DLL接口来进行保护,所以可以采用差异比较原生DLL文件和加载到内存中的原生DLL直接的差别来定位Ring 3模块。

在分析的过程中,为了防止被Ring 3保护模块发现,暂时可以先把除了自己线程外的其他线程暂停,如图8-14所示。

图8-14 悬挂除自己线程外的其他线程

从图8-14中可以看出,除自己线程外,该游戏有58个线程,可以通过SuspendThread()函数悬挂这些线程以便后续的分析(GS的命令就是ste序号)。

下面,我们再对3个常用原生DLL--ntdll.dll、kernel32.dll和user32.dll进行文件和内存的比较,如图8-15所示。

图8-15 差异分析原生DLL的变化

从图8-15中可以看出,ntdll.dll有3处地址发生了变化,分别是0x7c921230、0x7c92DEB6和0x7c97077B。下面让我们看看这3处地址目前的指令是什么,如图8-16所示。

图8-16 两处地址jmp指令

在图8-16中,有一处jmp指令是跳入地址0x45320F0。让我们看看它属于哪个模块,如图8-17所示。

图8-17 模块节信息

从图8-17的地址区间来看,是包含0x45320F0的,所以,在ntdll.dll中地址0x7c92deb6会跳入X.dll模块。到目前为止,我们基本可以判断ring 3下的游戏保护模块是X.dll。

为了能更准确地判断X.dll是否是真的保护模块,下面让我们看看ntdll.dll中3处发生变化的地址在原生ntdll.dll中的作用。

可以用IDA对ntdll.dll进行分析,然后定位地址0x7c921230、0x7c92DEB6和0x7c97077B。

如图8-18所示,原来此处地址是DbgBreakPoint函数。这个函数是供调试器下软件断点用的,而在游戏中却被改成了ret指令,这样做能起到防止下软件断点的作用。

图8-18 0x7c921230地址所处函数

如图8-19所示,0x7c97077B地址是属于DbgUiRemoteBreakin函数的,这个函数的详细介绍可以参见张银奎老师的《软件调试》一书的第10.6.4节。这里还是简单说明一下这个函数的作用,以便读者能了解。

图8-19 0x7c97077B地址所处函数

DbgUiRemoteBreakin是ntdll提供的用于在目标进程中创建远线程下软件断点的函数,其伪代码如下。

DWORD WINAPI DbgUiRemoteBreakin( LPVOID lpParameter)

{

__try

{

if(NtCurrentPeb->BeingDebugged)

DbgBreakPoint();

}

__except(EXCEPTION_EXECUTE_HANDLER)

{

Return 1;

}

RtlExitUserThread(0);

}

当调试器通过CreateRemoteThread函数在目标程序中创建DbgUiRemoteBreakin线程的时候,从代码上来看是下了int 3软件断点。由于在被调试状态,所以调试器可以捕获这个异常。如果目标程序没有被调试的话,DbgUiRemoteBreakin中的S.H.E显然可以捕获并处理它。

所以,游戏保护系统在对DbgUiRemoteBreakin进行jmp操作,很明显是为了防止被调试。下面再看看保护系统从DbgUiRemoteBreakin跳到了哪里。

如图8-20所示是保护系统从DbgUiRemoteBreakin跳入执行的函数,很明显,LdrShutdownProcess是一个关闭进程的函数。

图8-20 0x7C943DEF地址所处函数

下面再让我们看看地址0x7c92DEB6处的含义。

如图8-21所示,保护模块对ZwProtectVirtualMemory函数进行了Hook,以防止虚拟内存所在页面的保护属性被改变。


图8-21 0x7c92DEB6地址所处函数

关于更多分析游戏保护方案的思路见<<游戏外挂***艺术>>第8章。

作者简介

徐胜,2009年于电子科技大学获得计算机科学与工程硕士学位,现就职于阿里巴巴,从事移动安全的研究和移动产品的研发,主要研究方向包括:Windows平台下的***、外挂、Rootkit、防火墙和二进制逆向分析,Android和iOS客户端软件安全,以及Web和WAP安全。

本文节选自《游戏外挂***艺术》一书。徐胜 著,由电子工业出版社出版。

函数 地址 保护 模块 线程 如图 分析 软件 指令 断点 系统 差异 定位 安全 作用 内存 目标 调试器 变化 外挂 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网和科技技术 厦门中拓互联网络科技有限公司 中资互联网科技 高科技与互联网 广州互联网络科技有限公司 智慧科技互联网 互联网科技上市公司 睿民互联网科技 科技互联网创业计划书 南山科技园互联网公司有哪些 青海科技产业互联网发展 佛山市拉法互联网科技有限公司 晋城互联网科技 特约风豹互联网科技为什么扣费 山东大美朱楼互联网科技有限公司 信承诺互联网科技有限公司 互联网的科技体现在哪里 北京品多多互联网科技有限公司 华人运通互联网科技公司 银川新华互联网科技学校招聘 互联网与科技 湖南永感互联网科技有限公司 互联网科技卖菜 上海挚品互联网科技 互联网高科技企业 开启互联网科技时代小说 金融科技与互联网金融相同和不同 互联网为啥属于高科技 新兴科技互联网创新大赛颁奖典礼 信承诺互联网科技有限公司
0