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

31.第二阶段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.mrgr.cn/news/55471.html

相关文章:

  • el-table表格里面有一条横线
  • WPF实现类似网易云音乐的菜单切换
  • [LeetCode] 733. 图像渲染
  • Resources的资源加载管理器
  • 正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 5427(unattended-upgr)持有
  • 集合论(ZFC)之共尾属性(Properties of Cofinality)
  • 第 6 章 Kafka-Eagle 监控 和 Kafka-Kraft 模式
  • 电能表预付费系统-标准传输规范(STS)(16)
  • 2025 年IT技术人员关键技能,零基础入门到精通,收藏这篇就够了
  • C++ : STL容器之list剖析
  • 业务开发常见问题-并发工具类
  • Bootstrap Blazor框架添加全局页面水印
  • OpenIPC开源IPC之Ardupilot配置
  • linux_c IPC消息队列练习
  • [云] Deploying Your First Serverless Application
  • 每日OJ题_牛客_数组变换_贪心+位运算_C++_Java
  • Python+Selenium+Pytest+POM自动化测试框架封装
  • Redis优劣势分析
  • 智慧公厕厂家:智慧公厕建设推动城市公厕智能化变革
  • 【Java】正则表达式详解
  • 倪师学习笔记-天纪-斗数星辰介绍
  • 《IDE 巧用法宝:使用技巧全解析与优质插件推荐》
  • Windows进程的睡眠与唤醒
  • 洛谷刷题 P1003 [NOIP2011 提高组] 铺地毯
  • coze上构建必应搜索工作流
  • Xilinx 7系列FPGA中IDDR的介绍(一)