55.网游逆向分析与插件开发-游戏增加自动化助手接口-自动药水设定功能的逆向分析

内容来源于:易道云信息技术研究院VIP课

上一个内容:项目需求与需求拆解-CSDN博客

之前在找到过一个虚函数,每个按钮的都有一个实现机制,参考这里游戏结束过程的逆向分析

实际上找起来会不会用上不知道,接下来开始逆向分析。

首先游戏中为了保护我们的插件,做了一些int3,这个int3编译器是处理不了的,需要设置一个东西,如下方的两个图,设置异常,意思是当x96dbg出现异常之后,点击忽略上次,这样x96dbg下次遇到这个位置的异常时就不处理的就交给游戏来处理。

首先在按钮处理函数接口位置打断点,再点击游戏中的按钮,发现可以正常断下来,但我们要找的并不是这个按钮,所以这个我们不看

点击游戏自动药水设定按钮也可以正常断下来,这个我们要看,现在的eax是0x6D9A90

然后按下f7,就来到了游戏药水设定功能的函数,然后接下来要做一个测试,继续往下看

麻烦来了,点击系统按钮时也会进入到0x6D9A90函数里,按照之前理解的逻辑,0x6D9A90应该是对应自动药水设定按钮的功能,但很显然并不是,继续往下看。

它是把下图红框里的按钮都对应到了 0x6D9A90 函数上,所以 0x6D9A90 函数不是我们要找的,我们要找的函数在 0x6D9A90 函数里面,

0x6D9A90函数还是很大的,有点像一个 switch 结构,它里面是一段一段的,都是调用了不同的函数,所以想switch结构,也就是它把所有的菜单都放到了一起,每个菜单都对应一个switch的case,然后会发现ecx都是来自于固定的基址,这个没必要看,然后它调用了一个函数,这个调用的函数每个case里都不一样,然后函数调用完之后,调用了一个虚函数,edx+0x5C一般都是虚函数,也就是调用了基类的某一个函数,然后每个case的上半部分是调用的不同的函数,下半部分是调用的相同函数(只从分析上看出的,实际的值可能会导致调用不同的函数),所以现在要分析的是上半段,根据现在分析的,分析上半部分的准确率是百分之80左右。

0x6D9A90函数是一个所有按钮共用的函数所以要,跟踪一下,就是点自动药水设定按钮看看它会执行哪个case,一路f8就来到了下图位置,在0x6D9CC9位置打断点可以发现其它按钮并不会断下来

然后自动药水设定有三个相应点,所以接下来要看其它两个,会不会在 0x6D9CC9位置断下来,可以发现 0x6D9CC9 位置并不会断下来,所以接下来要往下继续找,现在要确认一下它具体是下图红框中的哪一个函数。

首先把sro_client.8687F0位置的函数第一行,改成下图的样子,然后看看自动药水设定功能还有没有,可以发现它没有了,所以 sro_client.8687F0位置是自动药水设定按钮真正干活的函数,所以call eax不需要看了,只看 sro_client.8687F0

接下来先把修改的ret恢复一下

然后把断点下到sro_client.8687F0位置如下图

然后发现它按取现按钮也会触发,所以还要往下跟

快捷键会触发

动作里的自动药水设定也会触发,也就是三个入口都会触发

接下来就对0x8687F0函数下手就可以了,接下来分析为什么按取消也会触发,分析一个函数的几个重点,首先分析它的调用约定,这个调用约定是一个类的成员函数,第二点分析有几个参数,它有一个参数,第三点是看它的返回值,看调用下图调用位置,并没有对eax做什么操作,所以认为它没有返回值一个void返回类型,ecx一般是放的this地址所以0x1256E3C的值是按钮对象

然后取消按钮入参是0,自定药水设定时的入参是1,也就是0是不显示1是显示,它这个函数也就是传递了一个true或者false,0x8687F0它就是一个显示界面和取消界面的功能,下图红框位置时取了一个byte类型这样就更确认它传入的是bool类型并不是int类型了,这时可以还原成c++代码就是 void 0x1256E3C::ShowAutoHelp(bool ShowUI);

假设没有做之前的分析,并不知道,按钮的虚函数,这样时没有切入点所有的假设没法成立,所以后面要写不利用虚函数这个东西,再去找一遍自动药水设定功能,也就是从零去找。

相关推荐
wanhengidc7 小时前
云手机的基本原理
运维·服务器·游戏·智能手机·云计算
闲人编程9 小时前
Python游戏开发入门:Pygame实战
开发语言·python·游戏·pygame·毕设·codecapsule
AA陈超10 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-06 能力输入的回调
c++·游戏·ue5·游戏引擎·虚幻
IT教程资源C13 小时前
(N_152)基于java贪吃蛇游戏5
游戏
Arenaschi16 小时前
AI对未来游戏模式与游戏开发的助力
网络·人工智能·游戏·ai
todoitbo17 小时前
游戏远程操控性能横评:ToDesk、Parsec、UU远程深度对比
游戏·todesk·远程·游戏远程
007php00718 小时前
某游戏大厂的常用面试问题解析:Netty 与 NIO
java·数据库·游戏·面试·职场和发展·性能优化·nio
Bluesonli19 小时前
第五章:构建用户界面(UMG) - 游戏内HUD
游戏·ui
wanhengidc20 小时前
云真机和云手机的区别
运维·服务器·游戏·智能手机·云计算
上海云盾安全满满1 天前
怎么针对游戏、金融行业定制CC攻击防护规则
游戏·金融