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

13.第二阶段x86游戏实战2-动态模块地址

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

本次游戏没法给

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

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

工具下载:

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

提取码:6tw3

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

上一个内容:12.第二阶段x86游戏实战2-CE找基地址

上一个内容通过CE找到了人物状态的基址,上一个内容中游戏是用64位启动的所以内存地址会很长,不管是32位还是64位找法都是一样的,后面会以32位为主

然后本次找模块的地址

首先找一下人物的状态

下图是32位版游戏的人物状态的基地址,公式是 [[[0x00FBEF6C]+0x60]+0x14C],0x00FBEF6C是基址,0x60是偏移,0x14C是偏移

然后有些游戏它模块(这里的模块指的是exe、dll、lib)的地址是会变的,模块变了这个人物状态的基地址就会变,也就是说这个游戏换个电脑或重启电脑之后现在找的人物状态的基地址就没法用了,所以接下来要把 0x00FBEF6C 换成模块基地址加偏移的方式,首先找模块地址,关闭CE打开OD,如下图只有CE打开过这个界面就要把CE关闭,如果不关闭OD没法附加

然后打开OD并附加到游戏,附加之后,在下图红框位置输入 dd [[0x00FBEF6C]+0x60]+0x14C,然后按回车键(Enter键)

然后下图红框位置就会显示人物状态了

然后右击选择硬件访问断点,如下图

然后它会在下图位置断下来,这里要注意下图红框位置的代码还没执行

然后关闭硬件访问断点,如下图

到这就通过OD找了一次基址,接下来找模块的地址

然后点击下红框的E,点击之前要记住现在的人物状态的基址 0xFBEF6C

然后下图红框的列就是模块的地址了,这么多模块要用哪个?继续往下看,看完就知道了

然后第一个模块的范围是A20000 到110D000这个范围,上方找的人物状态基址是 0x00FBEF6C,它正好在A20000 到110D000这个范围内,所以人物状态的基址要从第一个模块里找,怎么找?继续往下看

如下图用人物状态基址减去模块基地址,得出一个结果,这个结果就是模块基地址到人物状态基地址的偏移,现在的公式 [[模块基地址+0x59EF6C]+0x60]+0x14C 这样来使用,这样只要游戏不修改模块里的内容,地址就不会发生变化,也就是只要游戏的版本一样任何电脑都可以用这个公式来找人物状态基地址

模块里面的代码,也就是游戏更新了,模块+偏移的偏移会变,这怎么办?可以通过代码的特征去定位偏移,通过特征定位的方式后面再写,这种代码特征定位的方式放在基础中不合适

img

http://www.lryc.cn/news/445278.html

相关文章:

  • 【WebLogic】WebLogic 11g 控制台模式下安装记录
  • 失踪人口回归(明天开始继续更新学习内容)
  • AIGC对网络安全的影响
  • golang学习笔记25——golang 实现 MD5加密、RSA加密 和 Base64编码
  • 2024海外电商数据分析之印度篇
  • JavaWeb纯小白笔记02:Tomcat的使用:发布项目的三种方式、配置虚拟主机、配置用户名和密码
  • 为什么数据需要 QA 流程
  • Spring Boot 学习之路 -- 基础认知
  • JavaScript --json格式字符串和对象的转化
  • LabVIEW提高开发效率技巧----采用并行任务提高性能
  • 裸土检测算法实际应用、裸土覆盖检测算法、裸土检测算法
  • 深入剖析链表反转:多语言实现与高级语法特性20240924
  • 【数据结构初阶】链式二叉树接口实现超详解
  • 力扣189 轮转数组 Java版本
  • RMAN异机恢复数据库记录
  • JVM 调优篇7 调优案例4- 线程溢出
  • C++类与对象(三)
  • 云栖实录 | 阿里云 OpenLake 解决方案重磅发布:多模态数据统一纳管、引擎平权联合计算、数据共享统一读写
  • 《线性代数》学渣笔记
  • 对网页聊天项目进行性能测试, 使用JMeter对于基于WebSocket开发的webChat项目的聊天功能进行测试
  • 《程序猿之设计模式实战 · 适配器模式》
  • Elasticsearch案例
  • SpringBoot 项目如何使用 pageHelper 做分页处理 (含两种依赖方式)
  • GSR关键词排名系统是针对谷歌seo的吗?
  • HarmonyOS Next开发----使用XComponent自定义绘制
  • 什么是电商云手机?可以用来干什么?
  • Python 2 和 Python 3的差异
  • Leetcode 第 139 场双周赛题解
  • spring 注解 - @NotEmpty - 确保被注解的字段不为空,而且也不是空白(即不是空字符串、不是只包含空格的字符串)
  • 深入理解华为仓颉语言的数值类型