76.网游逆向分析与插件开发-背包的获取-背包地址的逆向分析

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

上一个内容:75.网游逆向分析与插件开发-背包的获取-背包结构与指针的逆向分析-CSDN博客

通过上一个内容,知道了背包的结构,它是一个指针数组,它里面还记录的背包有多少格。

然后打开x96dbg,来到上一个内容分析过的0x787022位置

然后ctrl+f9,再按f8,来到上一层

然后这个函数的一个参数与ecx的情况,ecx是0x217D6034,然后现在的代码位置是0x9518F0,这个位置是使用药品来的

然后ctrl+f9,再按f8来到上一层

是一个虚函数

然后这时使用药品没有 0x217D6034,所以0x217D6034这个值是被计算出来的,然后就只能一行一行的分析在执行到 0x9518F0 这一行之前的代码,然后按f7进入函数

然后进入到下图函数,一路f8,注意观察 0x217D6034 这个值第一次出现的位置

在下图位置第一次发现 0x217D6034 这个值,它是在0x950A88位置调用的函数的返回值

现在游戏因为长时间不动掉线了,所以后续图中的物品指针地址与上方图中的地址会不一样

然后因为记录的地址,所在在0x950A88位置开始分析,然后看下图红框里的四行代码,第一行mov ecx, dword ptr ds:[0x1256E3C],这个0x1256E3C之前在找弹框的时候找到过,然后接着调用了0x1256E3C类里的成员函数,也就是call sro_client.866140这个函数,然后 sro_client.866140 这个函数有返回值,为什么说它有返回值,因为它的下一行是mov ecx,eax,eax跟在一个call指令后面一般就是函数的返回值,这个是一个典型的返回值写法,然后下一行是call sro_client.7722C0函数,这几行代码的意思就是,从 0x1256E3C 成员函数 sro_client.866140 里得到一个对象,然后调用这个对象里的sro_client.7722C0成员函数,然后通过 sro_client.7722C0 函数得到了物品指针,所以sro_client.866140这个函数里有背包找物品的算法

然后sro_client.866140函数很短,如下图红框里的代码,有两个参数1和19,然后ecx+370这样的操作多半与继承有关,然后调用了sro_client.98F3A0函数

然后结合上一个内容中分析的,它物品里的偏移3A0位置是第一个物品指针,然后偏移加3A4位置是最后一个物品的指针,然后就可以认定下图的几行代码就是为了获取背包基址的

然后接下来看看,能根据背包基址得到些什么东西

现在的基址是,0x1941B294

首先说明一点,这里我是使用的游戏中背包里第一个物品,也就是使用的下图红框位置的物品,所以才说0x1941B294它是背包的基址

然后打开 Cheat Engine 分析数据,首先看看 0x1941B294 与金钱有没有关系

然后下图红框里的地址就很可疑,它与 0x1941B294 太相近了,很明显是一块内存地址,也就是一个结构体里的数据,然后算一下金钱的迁移 0x1941B60C - 0x1941B294 = 0x378

然后这里记入一下获取背包基址的关键点 0x950A88 地址

然后理一下分析过程,最早是通过鼠标放上去的字符串的方式去找物品地址,很麻烦然后就放弃了,这里可以看上一个内容里的分析记录,然后现在换一种思路,之前有分析到有物品的id也就是5912、5913等这个数字,然后它肯定会有访问它的,然后接下来通过它的id来找这个东西,看看好不好找,然后通过上方找到的背包基址得到物品id

这里游戏又掉线了,重新登录了,下方图中的地址变了

重新找物品id

然后查看有什么访问了它,有两个地方

大体看一眼代码

下图这个代码,相似是一个get函数

记录现在寄存器的数据,方便在x96dbg里做条件断点:ecx是 0x244870C8,然后地址分别是0x995800与0x995830

然后关闭 Cheat Engine 打开x96dbg,如果不关闭 Cheat Engine,x96dbg没法附加

然后先看 0x995830,它是一个长断的函数,需要做条件断点

然后看到下方有个390

然后在看上一个内容通过访问去找的分析记录,就能想到可能根据物品id的访问去找也没法玩

然后一直按ctrl+f9再按f8就会发现它会一直循环到下图中的代码里,所以通过访问去找还是很麻烦

所以有时候通过写入的方式比通过访问的方式去找要好,要容易许多,这种有涉及到ui访问的数据,然后还通过访问去找它的机制,会麻烦,ui的干扰性很大,而写入的干扰性就会小,但如果跟怪物共用的数据,还是去使用写入的方式,那就又会是一个很麻烦的东西

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/635423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言基础快速上手

1、Go语言关键字 2、Go数据类型 3、特殊的操作 3.1、iota关键字 Go中没有明确意思上的enum(枚举)定义,不过可以借用iota标识符实现一组自增常亮值来实现枚举类型。 const (a iota // 0b // 1c 100 // 100d // 100 (与上一…

linux LPT和COM回路测试(基于python+Qt+C++)

软件UI: 回路治具&#xff08;COMLPT&#xff09;&#xff1a; lpt_test.cpp&#xff08;c 源代码&#xff09;&#xff1a; #include <iostream> #include <fstream> #include <sstream> #include <unistd.h> #include <fcntl.h> #include <…

基于 UniAPP 社区论坛项目多端开发实战

社区论坛项目多端开发实战 基于 UniAPP 社区论坛项目多端开发实战一、项目准备1.1 ThinkSNS 简介及相关文档1.2 使用 UniAPP 构建项目1.3 构建项目文件结构1.4 配置页面 TabBar 导航1.5 使用 npm 引入 uView UI 插件库 二、首页功能实现2.1 首页 header 广告位轮播图功能实现2.…

小白水平理解面试经典题目LeetCode 121 Best Time to Buy and Sell Stock

121 Best Time to Buy and Sell Stock (买卖股票的最佳时机) 你好&#xff0c;2024年的第一个月&#xff0c;又是秋风萧瑟天气凉&#xff0c;草木摇落露为霜。.。。在这个特殊的时代&#xff0c;作为我们普通的一个打工人&#xff0c;我们用这道题&#xff0c;开启对这个不符合…

2023全球边缘计算大会深圳站:核心内容与学习收获(附大会核心PPT下载)

边缘计算作为当今IT领域的热门话题&#xff0c;已经引起了全球范围内的广泛关注。本次大会汇聚了众多业界精英&#xff0c;共同探讨边缘计算的发展趋势、技术应用与创新实践。本文将围绕大会的核心内容展开讨论&#xff0c;并分析参会者从中能够学到的东西。 一、边缘计算的发…

C++PythonC# 三语言OpenCV从零开发(2):教程选择

文章目录 相关专栏前言视频教学和官方文档视频教程OpenCV 官方教程最终选择我的最终选择 相关专栏 C&Python&Csharp in OpenCV 前言 OpenCV 有官方的教程和简单的视频教程&#xff1a; OpenCV 官方教程 B站也有相关的视频教学 OpenCV4 C 快速入门视频30讲 - 系列合集 …

【Java】JDBC的使用

JDBC package jdbc_demo;import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;public class jdbc {public static void main(String[] args)throws Exception {//1.注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//2.获取…

【开源】基于JAVA语言的教学资源共享平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…

逸学Docker【java工程师基础】3.4Docker安装redis

1.拉取redis docker pull redis 2.选择一个合适的redis 版本的配置文件 Redis configuration | Redis 或者这个 链接&#xff1a;https://pan.baidu.com/s/1RRdtgec4xBAgQghlhm0x1Q 提取码&#xff1a;ycyc 在1044行修改密码 3.提前在服务器建立 /data/redis 文件夹&…

【华为 ICT HCIA eNSP 习题汇总】——题目集1

1、&#xff08;多选&#xff09;根据下面所示的命令输出&#xff0c;下列描述中正确的是&#xff1f; A、GigabitEthernet0/0/1 允许VLAN1通过 B、GigabitEthernet0/0/1 不允许VLAN1通过 C、如果要把 GigabitEthernet0/0/1 变为 Access 端口&#xff0c;首先 需要使用命令“un…

2023 年,我患上了 AI 焦虑症!

【作者有话说】2023 年对我来说是神奇的一年&#xff0c;我意外地从一个程序员变成了一个 AI 资讯届的“网红”&#xff0c;到年底时我在 X 平台的阅读量超过 1 亿&#xff0c;微博上的阅读量则超过 10 亿&#xff0c;很多人通过我的微博或者 X 了解最新的 AI 资讯、教程和 Pro…

SpringMVC下半篇之整合ssm

4.ssm整合 4.1.创建表 CREATE TABLE account (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,money double DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8;4.2.创建工程 4.3.pom.xml <?xml version"1.0" encoding&…

蓝桥杯备战 每日一题 (4)

题目地址 首先我们要有一个知识储备 1 加法&#xff1a;(ab)%m(a%mb%m)%m 2 减法&#xff1a;(a-b)%m(a%m-b%m)%m 3 乘法&#xff1a;a*b%m(a%m)*(b%m)%m 我们可以每次计算就可以取余一次&#xff0c;这样就保证了最后取余的结果和一起相加再取余的结果一样 然后这个题目要怎…

【LeetCode】数学精选4题

目录 1. 二进制求和&#xff08;简单&#xff09; 2. 两数相加&#xff08;中等&#xff09; 3. 两数相除&#xff08;中等&#xff09; 4. 字符串相乘&#xff08;中等&#xff09; 1. 二进制求和&#xff08;简单&#xff09; 从字符串的右端出发向左做加法&#xff0c;…

SQLAlchemy ORM指南:简化数据库操作的最佳实践

SQLAIchemy 开发指南 背景&#xff1a; ​ SQLAlchemy是一个数据库的ORM框架&#xff0c;让我们操作数据库的时候不要再用SQL语句了&#xff0c;跟直接操作模型一样。操作十分便捷&#xff0c;其实SQLAlchemy应该是在Flask和Django应用的特别多&#xff0c;而且在flask中已经…

Oracle架构_数据库底层原理、机制 (授人以渔)

目录 系统全局区SGA 高速缓存缓冲区(数据库缓冲区) 日志缓冲区 共享池 其他结构 用户连接进程 用户进程User Process Server Process服务进程 程序全局区PGA Oracle的connect连接和session会话与User Process紧密相关 后台进程 数据库写入进程(DBWn) 检查点(CKPT)…

多维时序 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积长短期记忆神经网络融合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积长短期记忆神经网络融合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积长短期记忆神经网络融合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料 效果…

“深入理解 Docker 和 Nacos 的单个部署与集成部署“

目录 引言&#xff1a;Docker Nacos 单个部署1.1 什么是 Docker&#xff1f;Docker 的概念和工作原理Docker 为什么受到广泛应用和认可 1.2 什么是 Nacos&#xff1f;Nacos 的核心功能和特点Nacos 在微服务架构中的作用 1.3 Docker 单个部署 Nacos Docker Nacos 集成部署总结&a…

【重点!!!】【背包】【回溯】518.零钱兑换II

题目 跟39.组合总数、322.零钱兑换题目很类似。 法1&#xff1a;背包DP&#xff0c;最优解法 解释如下&#xff1a; 0 1 2 3 4 5(背包容量)1 0 0 0 0 0 没有硬币的时候&#xff09; 0 1 2 3 4 5(背包容量) 1 1 1 1 1 1 1 0 1 2 3 4 5(背包容量) 1 …

Ubuntu 22.04 安装MySql

MySQL是非常常用的关系型数据库,无论是大厂还是小厂,都有它的身影。最大的优点是免费,安装起来也比较简单。 MySQL的架构 画了个简图,描述了下MySQL的架构。 其中的比较有趣的点在于连接池和存储引擎。连接池缓存了数据库和客户端的TCP连接,以减少建立连接的开销。存储引…