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

32.第二阶段x86游戏实战2-遍历技能2(技能二叉树基址)

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

本次游戏没法给

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

本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。

工具下载:

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

提取码:6tw3

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

上一个内容:31.第二阶段x86游戏实战2-遍历技能1

上一个内容里找到了一个返回值,本次接着继续

首先来到下图位置,也就是上一个内容最后的位置

然后现在通过断点进入下图红框的call里分析

然后打断点

然后触发断点

然后注意栈红框所示是返回值,这里要注意,按了F7之后就要找谁给这个地址里的值进行的修改,然后取消断点按F7

然后按完F7之后

然后会发现又是一个二叉树遍历,现在的公式[edi+0x18]+0xC

然后一路F8,下图红框所示eax的值是入参,然后在下图红框位置把入参给的内存地址里的值进行了修改,修改成了ecx的值

现在的公式[ecx+0x18]+0xC,然后开始找ecx的值哪来的,如下图红框ecx的值来自于ecx,现在的公式[[ecx]+0x18]+0xC

如下图ecx的值有来自于ebp+0xC的地址,注意它是lea指令取的地址,所以现在的公式[[ebp+0xC]+0x18]+0xC

通过断点确定ebp+0xC的值又来自于ecx,现在的公式[ecx+0x18]+0xC,为什么不是[[exc]+0x18]+0xC这个公式?因为在下图红框位置取了ecx的值了,在上图位置又取了ecx的地址,在使用时又有一句mov ecx,dword ptr[ecx],这又把ecx的值取了出来,所以实际上最终用的还是ecx的值,所以公式是[ecx+0x18]+0xC,这里有多余的代码,汇编代码都是编译器生成的所以有这种多余代码很正常

ecx的值来自于二叉树现在的公式[eax+0x18]+0xC

然后最终的公式[[[[ecx]+0x4]+0x8]+0x18]+0xC

通过dd指令加断点可以看出公式是正常的,然后接下来就要找二叉树的基址,也就是ecx的值哪来的

然后按减号(-号)继续往上反,来到下图位置,也就是按F7之前的位置,看看ecx的哪来的

ecx的值来自于esi+0x2A44,如下图红框现在的公式 [[[[esi+0x2A44]+0x4]+0x8]+0x18]+0xC

esi的值来自于edi+0x10,现在的公式 [[[[[edi+0x10]+0x2A44]+0x4]+0x8]+0x18]+0xC

edi的值来自于ecx,如下图红框,所以需要开始CTRL+F9了

然后在下图红框位置打断点(其实也不用打断点了,上一个内容里已经找到过了,打断点要注意一件事如果当前代码有多个位置调用会,比如走路也会调用技能显示名也会调用它可能会CTRL+F9到走路里,这样就错了,做好的办法就是通过上一个内容的硬件访问断点找)

然后来到了下图位置

通过断点确定ecx来源

然后现在基址可以说是找到了,然后现在的公式[[[[[[[[0x105F008]+0x60]+0x148]+0x10]+0x2A44]+0x4]+0x8]+0x18]+0xC

通过dd指令验证,可以正常得到技能名字,现在就找到了技能列表

计算偏移本次Game.exe的基址是AC0000,偏移是0x59F008


img


http://www.kler.cn/news/359862.html

相关文章:

  • WPF中的<Style.Triggers>
  • 项目管理软件真的能让敏捷开发变得更简单吗?
  • 【2024CANN训练营第二季】使用华为云体验AscendC_Sample仓算子运行
  • 【华为HCIP实战课程十六】OSPF虚链路Vlink,网络工程师
  • 代码随想录算法训练营第三十一天|56. 合并区间、738.单调递增的数字
  • Typora的使用方法(个人学习笔记)
  • 03 springboot-国际化
  • Lambda架构保持批处理和实时处理之间的数据一致性
  • Vite:功能
  • 基于webpack的react多页面项目框架
  • PHP echo、print_r、print、var_dump之间的区别
  • Qt 窗口悬停事件和鼠标跟踪
  • 云电脑使用教程标准版
  • 基于Java微信小程序的水果销售系统详细设计和实现(源码+lw+部署文档+讲解等)
  • 《汇编语言》笔记一 寄存器
  • 软件I2C的代码
  • PROFIENT开发和Ethernet IP开发—嵌入式板卡:赋予通讯设备之间的神奇力量
  • 机器学习与深度学习1:神经网络概念
  • 高级java每日一道面试题-2024年10月19日-消息队列[RabbitMQ]-RabbitMQ中积压了大量的消息,如何处理?
  • 相同的树算法