游戏安全实验室 首页 外挂分析 查看内容

DNF游戏多玩盒子双开功能分析报告

发布于:2016-3-1 17:00   |    237960次阅读 作者: 管理员    |   原作者: TP   |   来自: 原创

功能描述:

双开

行为分析:

外挂有注入模块,DNFDouble.dll,开启第二个客户端的时候第一个会临时隐藏,第二个开启完成后就弹出。

实现原理:

1、分析摘除游戏互斥体,步奏如下:

(1)获取ntdll中几个函数:

(代码位于sub_10033F10函数中dnfdouble.dll ver_3.0.6.10)

获取函数ZwDuplicateObjectZwQueryObjectZwAllocateVirtualMemoryZwQuerySystemInformationZwFreeVirtualMemory

(2)枚举内核对象,判断如果是Mutant,判断名字是否是dbefeuate_ccen_khxfor_lcar_blr,如果是则调用ZwDuplicateObject关闭内核对象,步骤如下:

(代码位于sub_10034160函数中dnfdouble.dll ver_3.0.6.10)

 

A)调用ZwQuerySystemInformation获取句柄信息

复制句柄

OpenProcess

获取Object信息

 

B)调用ZwQueryObject获取对象类型,后面判断是否是Mutant类型

 

C)获取Mutant名字,并调用100340b0函数判断是否是游戏的互斥,是则关闭

函数100340b0就是对比这个名字是否与dbefeuate_ccen_khxfor_lcar_blr一致

 

D)如果是这个名字,就关闭内核对象

 

    总体就是枚举内核对象,并判断类型,判断名字符合后关闭内核对象。

2、分析隐藏窗口:

外挂就是把DNF窗口的父窗口设置为DNFBoxClient里面的一个隐藏的button,并将窗口隐藏,等到第二个窗口开启后,并同样对第一步操作后恢复

如,DNF被嫁接到一个隐藏的button上,看button的进程id是15e0(5600)

时机上就是dnfboxclient.exe


分析结果:

盒子实现双开是核心代码如上面分析,核心部分就是通过枚举内核对象,并判断对象类型,是mutant则获取名字,判断如果是游戏的,就关闭内核对象。


*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩1 赞0

收藏

相关阅读
最新评论
引用 谜题。 2016-3-18 16:09
TGP也是如此阿。= =被归类为外挂分析...

查看全部评论(1)

B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部