当前位置: 首页 > news >正文

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

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

本次游戏没法给

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

工具下载:

链接: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.mrgr.cn/news/11962.html

相关文章:

  • 在NVIDIA Jetson AGX Orin中使用jetson-ffmpeg调用硬件编解码加速处理
  • DataWhale AI夏令营-《李宏毅深度学习教程》笔记
  • [C++番外] 抛异常
  • 【论文阅读】NGD-SLAM: Towards Real-Time SLAM for Dynamic Environments without GPU
  • redis基础与进阶(二)
  • 【Linux C++】log4cpp日志库的安装和使用详解
  • wpf livechart 绘制笛卡尔曲线
  • 【LabVIEW子vi引用或者赋值】
  • 【应用开发】解决正点原子I.MX6ull应用编程zlib移植问题
  • 零基础5分钟上手亚马逊云科技 - AI模型内容安全过滤
  • 面试常问:接口信息泄漏的危害是什么?
  • 云原生系列 - Nginx(高级篇)
  • 2.pandas--读取文件夹中所有excel文件进行合并
  • 主流短视频评论采集python爬虫(含一二级评论内容)
  • JS中【reduce】方法讲解
  • Android 开机之让barcode无效,刷机还原model型号
  • GUI / GitOps / API: 用 Bytebase 实现 SQL 审核
  • 音频处理新纪元:深入探索PyTorch的torchaudio
  • 微服务——远程调用
  • 4个原创改写工具,为你轻松改出优质内容