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);

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

相关推荐
alansoulKing3 小时前
CS1.5 新手入门与联机部署全攻略
游戏·电脑·娱乐
tanghonghanhaoli4 小时前
【图书翻译】有意义的游戏设计:桌面游戏的方法论与心理学(第1、2章)
前端·游戏·ui
我是苏苏4 小时前
Steam游戏:如何回退到旧版本下载(技术帖)
游戏
糖醋_诗酒18 小时前
游戏产品经理 - 蚂蚁外包 - 一面凉经
游戏·产品经理
yangmu32031 天前
龙胤立志传MOD生态深度解析与安装指南
游戏·游戏程序
辻弋2011 天前
一键优化电源计划、游戏模式、独显强制、禁用后台录制——DeltaForceBooster专治三角洲行动卡顿掉帧,所有改动可一键还原
服务器·数据库·windows·游戏·电脑·php
江上闲人.1 天前
COD23现代战争4试玩进不去报错?TPM2.0安全启动等常见问题解决方法
游戏·使命召唤·cod23·使命召唤现代战争4·cod
pearbing2 天前
游戏社群外包运营:一站式游戏玩家社区托管与生态搭建服务
游戏·游戏社群舆情监控·游戏社群管理外包·各行业社群外包运营
江上闲人.2 天前
Wardogs战犬\战狗Beta测试启动报错UE崩溃卡顿?解决方法来了
游戏·游戏引擎·虚幻·战犬·战狗·wardogs