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

108.游戏安全项目:信息显示二-剑侠情缘基址分析

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

内容参考于:易道云信息技术研究院

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

上一个内容:107.游戏安全项目-基址更新后定位方法

血量的地址是基址 + CEF18的位置,当前基址是400000

然后这个地址是一个绿色的,绿色的一定会是全局变量,但是当切换进度的时候它又会变

切换进度发生改变,变成了基址+B5ACC,所以这样的可以猜测为声明人物属性的变量时是用的数组,一个全局的数组,内存地址的变化是因为访问数组的下标变了

然后接下来要逆向分析找 数组的起始点 与 索引,数组的起点也就是 数组[0] 的位置,索引就是当前是用什么来代表的人物。

然后右击选择是什么访问了它

然后就出来了两个,如果没有的话在游戏中使用一下加血的技能就会有了

它们所有的访问都是以 4B51D0 为开头进行的访问,然后加上了什么什么,它就很可能是数组的基址,上图红框附近的代码

edx * 4 + 4B51D0代表了人物血量

首先 eax=*ecx;

假设eax结果是1;

edx = eax+eax*8 也就是edx = eax*9

然后 shl 是左移运算符,edx << 6; 也就是 edx = eax * 576 ,具体可以看图1

然后 sub 是减法 也就是edx = edx - eax 也就是等于 edx = 576* eax-eax 也就等于edx = 575* eax 575 * 4 + 004B51D0 也就是等于 2300 + 4B51D0 也就是

eax是0的时候人物地址是4B51D0

eax是1的时候人物地址是4B51D0 + 2300

eax是2的时候人物地址是4B51D0 + 4600

然后在找到ecx 的值就可以了,它的值是索引,通过它可以找到人物对象地址 

 

图1:

然后ecx的值是537400

537400 - 游戏基址的结果在游戏pe中,符合全局变量的条件

然后人物的数组是来自于 4B51C0(4B51D0是血量),索引来自于游戏基址 + 0x137400位置,然后人物的地址就是 4B51C0 + 索引 * 8FC 这样计算获取,8FC的十进制是2300


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 委托和事件
  • Qt 之自定义控件(开关按钮)
  • Django Web开发基础介绍
  • Milvus - 架构设计详解
  • java 解析excel (本地资源)
  • LeetCode 2535.数组元素和与数字和的绝对差:模拟
  • Halcon基础系列1-基础算子
  • 【C++算法】2.双指针_复写零
  • 深入理解 CompletableFuture 的底层原理
  • 计算机视觉硬件整理(四):相机与镜头参数介绍
  • 【Kubernetes】常见面试题汇总(三十四)
  • python的逻辑控制
  • 高刷显示器哪个好?540Hz才有资格称高刷
  • 重修设计模式-行为型-责任链模式
  • 【玩转贪心算法专题】738. 单调递增的数字【中等】
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【mysql】环境安装、服务启动、密码设置
  • 0x05 Python数据分析,Anaconda八斩刀
  • co.js - 让异步代码同步化
  • Codepen 每日精选(2018-3-25)
  • Cookie 在前端中的实践
  • HTML-表单
  • IDEA 插件开发入门教程
  • JS专题之继承
  • laravel 用artisan创建自己的模板
  • redis学习笔记(三):列表、集合、有序集合
  • vue-cli3搭建项目
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 大数据与云计算学习:数据分析(二)
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 力扣(LeetCode)56
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 我的面试准备过程--容器(更新中)
  • 原生 js 实现移动端 Touch 滑动反弹
  • 正则表达式-基础知识Review
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • $jQuery 重写Alert样式方法
  • (06)金属布线——为半导体注入生命的连接
  • (1)Nginx简介和安装教程
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (笔试题)分解质因式
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)ssm码农论坛 毕业设计 231126
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (十三)Maven插件解析运行机制
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • ***详解账号泄露:全球约1亿用户已泄露
  • *1 计算机基础和操作系统基础及几大协议
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter