48.x86游戏实战-封包抓取进图call

embedded/2024/10/9 13:31:14/

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:47.x86游戏实战-VEHHOOK封包函数

上一个内容里把进图相关的函数都给进行了hook(拦截)获取了它们的入参(给函数的数据),本次就来分析这些入参

之前在 46.x86游戏实战-DXX封包实现进入地图房间 找到了进入有怪物地图(进入副本)的代码,并且成功进入了副本,但是进入副本只能手动点到副本选择界面之后才可以进入副本,本次就来找怎么进入副本选择界面

首先打开OD并且附加游戏并且来到公共call

然后在公共call打断点

然后通过打开副本选择界面触发断点

然后取消断点

然后按CTRL+F9,它给0x1127D60传了一个0xF,然后调用了0x1127EC0然后就发送了数据包,然后使用wctool.exe模拟这段代码

所以通过wctool.exe模拟这段代码,可以正常进入选择地图界面,那么问题来了,它是怎么知道副本有哪些的

然后经过测试发现,这个游戏某些副本只能在某个区域才有,比如a区域的副本有af1、af2、af3,b区域的副本有bf1、bf2、bf3,如果在b区域模拟上方的代码就会是bf1、bf2、bf3,如果在a区域模拟上方的代码就会是af1、af2、af3,所以接下来要找怎么瞬移到a区域或b区域,也就是找切换地图的代码,然后回到OD,还是在公共call打断点,这次通过切换地图触发(移动也会触发切换地图这里要多搞几次避免分析半天分析的是移动的代码)

通过切换地图触发断点

取消断点

然后按CTRL+F9,按完CTRL+F9之后就来到了下图位置

然后接下来观察下图红框函数的参数

上图红框中的函数在上一个内容里已经被HOOK过了

所以接下来通过wctool.exe注入我们的dll,注入之后启动hook,然后来到Dbgview.exe观察打印的参数,首先启动HOOK之前关闭OD,如果不关闭OD我们的dll没法正常hook,没法正常的原因是我们的HOOK会让OD认为成是它的断点,关闭OD后点击下图红框启动HOOK

启动完来到游戏进行切换地图(切换到可以选择副本地图)的操作,然后通过观察Dbgview.exe,看到它们的入参

然后换一个副本选择地图进入看看它的入参有什么不同

它俩不同的地方

然后下图的来数据猜测是坐标

然后下图的俩数据猜测是地图id

通过切换大量地图做对比,最终发现,如下图E是区域的id

然后区域里的地图id

然后下图红框的两个应该分别是x、y坐标,然后其它的就不知道了

可能随便传就行,接下来写代码测试,并且尝试push的值随便写

pushad
push 0x26
mov ecx,0x1AEB6E4
mov ecx,[ecx]
mov eax,0x1127D60
call eaxpush 0xE
mov ecx,0x1AEB6E4
mov ecx,[ecx]
mov eax,0x1128550
call eaxpush 0x2
mov ecx,0x1AEB6E4
mov ecx,[ecx]
mov eax,0x1128550
call eaxpush 0x1E
mov ecx,0x1AEB6E4
mov ecx,[ecx]
mov eax,0x1128580
call eaxpush 0x10F
mov ecx,0x1AEB6E4
mov ecx,[ecx]
mov eax,0x1128580
call eaxpush 0x5
mov ecx,0x1AEB6E4
mov ecx,[ecx]
mov eax,0x1128550
call eaxpush 0xE
mov ecx,0x1AEB6E4
mov ecx,[ecx]
mov eax,0x1128580
call eaxpush 0x1
mov ecx,0x1AEB6E4
mov ecx,[ecx]
mov eax,0x1128580
call eaxmov ecx,0x1AEB6E4
mov ecx,[ecx]
mov eax,0x1127EC0
call eaxpopad

切换地图代码说明:x、y坐标当切换地图之后会把角色放到0x1128580指定的坐标位置

然后切换到有副本选择地图、然后调用副本显示界面、然后调用进入副本的代码,这一套下来就完成了不管在什么地方都可以进入指定副本的功能

完整代码:wctool里的数字默认都是十六进制,如果不加0x就放到c++里它会认为是十进制的数

pushad
// 切换地图
push 0x26
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1127D60
call eaxpush 0xE
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128550
call eaxpush 0x2
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128550
call eaxpush 0x1E
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128580
call eaxpush 0x10F
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128580
call eaxpush 0x5
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128550
call eaxpush 0xE
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128580
call eaxpush 0x1
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128580
call eaxmov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1127EC0
call eax
// 进入副本选择界面
push 0xF
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1127D60
call eaxmov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1127EC0
call eax
// 进入副本
push 0x10
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1127D60
call eaxpush 0x68
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128580
call eaxpush 0
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128550
call eaxpush 0
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128550
call eaxpush 0
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1128550
call eaxmov eax, 0x1127EC0
call eaxpopad// 进入副本选择界面
pushadpush 0xF
mov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1127D60
call eaxmov ecx, 0x1AEB6E4
mov ecx, [ecx]
mov eax, 0x1127EC0
call eax
popad

img


http://www.ppmy.cn/embedded/101416.html

相关文章

采用ELK搭建日志平台,安装elasticsearch中文分词器

1、进入ES安装目录下 cd /usr/local/elasticsearch7.17 2、安装 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.7/elasticsearch-analysis-ik-7.17.7.zip 3、查看是否安装成功 systemctl restart elas…

day-40 合并区间

思路 将二维数组按照第一列升序排列&#xff0c;把intervals[0][0]作为第一个区间的起点&#xff0c;将 intervals[0][1]和intervals[1][0]进行比较&#xff0c;如果intervals[0][1]<intervals[1][0]&#xff0c;则不能合并&#xff0c;否则可以合并&#xff0c;将Math.max(…

基于计算机视觉的图书推荐应用【AI编程实录】

我相信这篇文章的许多读者都有一个“抽屉”&#xff0c;里面装满了未完成的很酷的业余项目。由于AI每天都在帮助我的团队编写代码&#xff0c;我决定试一试&#xff0c;看看它能让我在一个我最喜欢的业余项目中走多远&#xff0c;最好是用最少的代码编写。 由于我对它能走多远…

Mysql集群相关技术

目录 一、源码部署mysql 1.1 下载源码包 1.2 安装部署 二、mysql 的主从复制 2.1 在master上配置 2.2 在slave上的配置 2.3 测试 2.4 延迟复制 2.5 慢查询日志 2.6 mysql的并行复制 2.7 原理剖析 2.8 架构缺陷 三、半同步模式 3.1半同步模式原理 3.2 gtid模式 …

NLP -->定义、应用、与职业前景解析

1. 自然语言处理&#xff08;NLP&#xff09;的定义与误区 定义: 自然语言处理主要集中于文本的处理&#xff0c;旨在使计算机能够理解和生成自然语言文本。常见误区: 初学者容易将自然语言处理与语音识别混淆。 语音识别: 将语音转成文字&#xff0c;这不属于自然语言处理范畴…

DNS详解

DNS详解 DNS 是一个域名系统&#xff0c;它主要用于将人类容易记忆的域名转换成ip地址。 默认情况下&#xff0c;设备会自动从网络供应商获取DNS服务器地址&#xff0c;并使用DNS服务器对域名进行解析。 此外&#xff0c;你也可以手动设置DNS服务器&#xff0c;具体操作系统…

nginx知识补充

文章目录 一、正、反向代理服务器正向代理服务器&#xff08;Forward Proxy&#xff09;反向代理服务器&#xff08;Reverse Proxy&#xff09;正向代理与反向代理的主要区别总结 二、nginx的四、七层反向代理七层反向代理&#xff08;Layer 7 Proxy&#xff09;四层反向代理&a…

【YOLOv8改进[Conv]】 感受野注意力卷积RFAConv(2024.3)| 使用RFAConv改进目标检测效果 + 含全部代码和详细修改方式

本文将进行在YOLOv8中使用 感受野注意力卷积RFAConv改进v8 的实践,助力YOLOv8目标检测效果,文中含全部代码、详细修改方式。助您轻松理解改进的方法。