44.第二阶段x64游戏实战-封包-分析掉落物列表id存放位置

发布于:2025-06-19 ⋅ 阅读:(12) ⋅ 点赞:(0)

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

本次游戏没法给

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

上一个内容:43.第二阶段x64游戏实战-封包-代码实现获取包裹物品

之前的内容找到了掉落物的物品id,然后想实现自动捡包,还需要一个东西,就是打开掉落物列表,之前说掉落物列表id在遍历周围里可以找到,但是有一个问题,游戏中点击掉落的物品然后打开掉落列表,打开的动作发送了数据包,这里就有一个问题,光有数据包不行,打开的时候游戏会把当前打开的掉落物列表的id放到一个内存地址(当前掉落物列表),如果我们光发送数据包没有给这个内存地址写东西,游戏就可能会崩溃,所以还要解决这个问题,这个问题从拾取的封包往上找,就是说捡物品的时候会有掉落物列表id,然后我找这个id的值在哪来的就可以了

下方是抓的最新打开掉落物列表和捡包的数据包(后面要用它)

3400040000 E9 92260000

AC000C0000 EB 92260000 271E00002900EF4E

AC000C0000 EC 92260000 271E00002A00EF4E

AC000C0000 ED 92260000 271E00002B00EF4E

AC000C0000 EE 92260000 271E00002C00EF4E

AC000C0000 EF 92260000 271E00002D00EF4E

然后打开x64dbg,如下图来着之前找的捡包函数

下图红框位置是掉落物列表id,下图红框位置怎么就是掉落物列表id了?因为它前面是1E27,上方271E00002D00EF4E,然后271E由于小端序问题在内存中的样子是1E27,然后271E00002D00EF4E的前面也就是 92260000 是掉落物列表id,这个之前确定的,所以下图红框位置就是掉落物品列表id,注意这个掉落物列表id在偏移0x18位置,然后就看rdx的值哪来的

如下图红框rdx的值来自于rbp-0x58,然后rbp-0x58+0x18也就是说rbp-0x40位置是掉落物列表id

然后找rbp-0x40位置的值哪来的,如下图红框rbp-0x40的值来自于eax,eax的值来自于上方的call

然后在下图红框位置打断点

然后捡物品触发断点

取消断点

按F7进入call,eax的值来自于rcx+0x182A4

然后观察它的值,可以看到它的值直接就是掉落物列表id

切换掉落物列表

rcx的值来自于基址

0x00007FF737CDB840 - 0x00007FF737390000 = 0x94B840

然后下图红框的call是一个虚函数,所以用的时候不能直接 rcx+0x182A4,要用的值rcx+0x1A8加0x2位置的数据

rcx+0x1A8的值加0x2位置(加完后是内存地址,需要取内存地址的值)是下图红框位置


img


网站公告

今日签到

点亮在社区的每一天
去签到