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

DNF威武辅助外挂原理分析

发布于:2015-7-17 12:04   |    346147次阅读 作者: 管理员    |   原作者: TP   |   来自: 原创

外挂版本:威武辅助0915A

 

功能描述:

启动游戏,开启辅助,进入副本,可以实现,超级评分,无敌,秒杀,吸怪,按v键可以实现全屏捡物,按alt+方向键可以实现瞬间过图。

 

实现原理:

1、无敌功能实现原理:修改dnf.exe偏移0xB8CCC0出代码,0x45改为0x4d,如下所示:

原来的代码为:MOV DWORD PTR SS:[EBP-18H],EAX,其中eax表示本次攻击的伤害值,更改以后代码为MOV DWORD PTR SS:[EBP-18H],ECX,其中ecx是当前被攻击单位对象的基址,由于怪物与人物对象都是堆内存,一般来说数值较大,改为ecx后就可以实现秒杀了。

2、超级评分功能实现原理:

修改dnf.exe[[02A8B7AC]+1a0]处的数据实现的,辅助实现过程如下图所示:

经手动修改验证,修改[[02A8B7AC]+1a0]处的数据确实可以达到修改超级评分的效果。

3、无敌功能实现原理:

通过调用dnf.exe模块中的函数实现,如下图所示:

经过分析发现,上图中的人物对象指针与秒杀时候ecx(如果被攻击的是玩家的话)的值一样。

4、吸怪功能实现原理:

首先读取人物的坐标包括xy坐标及高度,读取x坐标,x坐标保存在[02b110e0]+1a4中如下所示:

读取y坐标,y坐标保存在[02b110e0]+1a8中,如下所示:

读取人物高度,高度值保存在[02b110e0]+1ac中,如下所示:

然后读取数据遍历所有的怪物,怪物数组(当然此数组保存的不止是怪物,还有其他东西如物品等,此处姑且称之为怪物数组)起始地址保存在[[02b110e0]+b8]+c4中,终止地址保存在[[02b110e0]+b8]+c8中,辅助计算两处数据差除以4得出此数组的大小,然后依次遍历数组中的元素,通过怪物对象基址偏移0x94出的数据判断是否为怪物,如果是,则调用怪物对象虚表的0x39号函数来改变怪物的地址。

辅助更新怪物坐标方法如下图所示:

V键全屏捡物的实现方法与吸怪相同,只是在筛选的时候的条件不同而已,如下图所示:

alt+方向键瞬间过图实现方法也是通过调用函数来实现的,如下图所示:

经验证,直接调用上图中的函数确实可以实现快速过图的效果。

*转载请注明来自游戏安全实验室(https://gslab.qq.com)

分享到:
踩4 赞30

收藏

相关阅读
最新评论
引用 就不告诉你 2018-4-1 20:39
强大的我也不会玩

查看全部评论(1)

B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部