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

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.kler.cn/a/319497.html

相关文章:

  • 申论1_概括、分析
  • 豆瓣均分9:不容错过的9本大模型入门宝藏书籍,非常详细收藏我这一篇就够了
  • 【Pikachu】目录遍历实战
  • 应用程序部署(IIS的相关使用,sql server的相关使用)
  • Springboot集成syslog+logstash收集日志到ES
  • 《情商》提升:增强自我意识,学会与情绪共处
  • Unicode编码如何转换为汉字
  • DAY78服务攻防-数据库安全RedisCouchDBH2database未授权访问CVE 漏洞
  • 仓颉编程入门2,启动HTTP服务
  • 基于数据挖掘的航空客户满意度分析预测系统
  • 安卓系统常见问题如native crash,卡顿卡死定位工具命令技巧-android framework实战开发
  • Java_Day05学习
  • 搜维尔科技:通过xsens动作捕捉为影视角色注入生命
  • 前端框架的对比和选择
  • MySQL备份与恢复详解
  • Anaconda/Miniconda的删除和安装
  • rapidocr 提取汇总
  • 可以写自动化测试工具的AI工具
  • [笔记]交流接触器
  • UR机器人坐标系转化
  • C++系列-Stackqueue
  • Qt中多语言的操作(以QtCreator为例)
  • Android个性名片界面的设计——约束布局的应用
  • 「iOS」——单例模式
  • Angular面试题三
  • javascript的闭包学习