【游戏逆向】某某游戏邮件遍历分析

news2024/11/23 8:33:15

邮件常常用来远程交易,这样可以节省交易时间,并且降低数据的需求。邮件遍历的分析,一般是以邮件名字,邮件数量等为突破口。不过有些游戏的邮件名字并不存放在邮件对象中,或者在对象中也不会改变邮件的本地显示,而且也没有邮件具体数量的存放地址,比如《天涯明月刀》,所以我们可以通过当前选中的邮件为突破口,来查看周围是否有邮件相关的遍历信息。

首先我们通过CE扫描出当前选中邮件相关的信息,比如邮件对象,邮件ID等等。如果用未知初始值无从下手,可以考虑通过明文发包出观察邮件的ID。扫描后得到两个结果(如图)
在这里插入图片描述
在OD中观察第一个地址周围的内存,发现在-24偏移处有三个地址很像数组,通过重复打开邮件可以确定这里就是邮件数组(如图)
在这里插入图片描述
在选中邮件ID处下访问断点,发现这里只能断到VM代码段(如图)
在这里插入图片描述
所以我们在上面的数组处下访问断点,游戏断下后,我们发现这里并没有VM,可以得到+30偏移(如图)
在这里插入图片描述
执行到返回后可以得到基地址(如图)
在这里插入图片描述
接下来对邮件数组中的属性进行观察分析,得到如下公式

[429D3B4]+30 数组起始地址

[429D3B4]+34 数组结束地址

[[[429D3B4]+30]+n*4]+0 邮件ID1

[[[429D3B4]+30]+n*4]+4 邮件ID2

[[[429D3B4]+30]+n*4]+18 邮件名字UTF-8

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

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

相关文章

Canal搭建 idea设置及采集数据到kafka

Canal GitHub:https://github.com/alibaba/canal#readme 实时采集工具canal:利用mysql主从复制的原理,slave定期读取master的binarylog对binarylog进行解析。 canal工作原理 canal模拟MySQL slave的交互协议,伪装自己为MySQL slav…

tb-gateway配置modbus

1、在tb_gateway.yaml开启modbus连接器 2、配置modbus.json 2.1、配置文件示例 {"master": {"slaves": [{"host": "127.0.0.1","port": 5021,"type": "tcp","method": "socket",…

DBCO-Cy3,荧光染料标记点击化学二苯基环辛炔CAS 1782950-79-1;DBCO-Cyanine3分子量983.18

中文名称:二苯基环辛炔-CY3 中文别称:花菁染料CY3标记DBCO 英文名称:DBCO-CY3 英文别称:DBCO-Cyanine3 性状:红色固体或粉末 分子量:983.18 分子式:C50H54N4O11S3 CSA:1782950-79-1 激发…

ESP32-S3 N8R2 烧录调试记录

ESP32 型号:ESP32-S3-WROOM-1(M0N8R2) ESP32 烧录器型号:ESP Prog v1.0 IOTMCU 烧录器的开关按键是复位按键。 接线图如下: 注意:RX连 RX TX连TX EN连RST Arudion IDE 配置如下: 注意 Arudino 中使用串口为 Serial…

【计算机网络】| Http.*协议该知道的那些事儿 | 面经

本文章参考了很多文档文献整理成狮子自己喜欢的风格类型文字,主要有: 《图解网络-小林coding》、Github上面的《前端语音社群》,ChatGpt 3.5 大家有兴趣可以去找来看看,一起上岸!!! 目录 面试官…

leecode654——最大二叉树

leecode最大二叉树 🌻题目要求: 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的…

数据信托:可信的数据流通模式

数据信托:可信的数据流通模式 黄京磊, 李金璞, 汤珂 清华大学社会科学学院经济学研究所,北京 100084 摘要:数据信托可被视作一种新型的、可信的数据流通模式。数据信托不仅是一种保障信息安全的组织结构,还是一种增进数据要素市场…

DreamGPT - 基于生成式AI的灵感激发器

dreamGPT是第一个利用LLM大模型的幻觉(hallucinations)进行发散思维的灵感激发系统,目的是帮助你产生新的创新想法。 推荐:用 NSDT设计器 快速搭建可编程3D场景。 LLM的幻觉通常被视为大模型的缺陷,但如果这一特性可以…

什么是KD树?

一、什么是KD树? KD树(K-Dimensional Tree)是一种用于高效处理多维数据的数据结构。它是二叉搜索树的一种变体,在每个节点上对数据进行分割,从而构建一个多维空间的层次结构。 因为KD树是基于二叉搜索树的特性构建的&…

【C++初阶】C++内存分配与动态内存管理

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C初阶 🎯长路漫漫浩浩,万事皆有期待 文章目录 C内存分配与动态内存管…

端口扫描的CS木马样本的分析

序言 病毒、木马是黑客实施网络攻击的常用兵器,有些木马、病毒可以通过免杀技术的加持躲过主流杀毒软件的查杀,从而实现在受害者机器上长期驻留并传播。 CobaltStrike基础 Cobalt Strike简称CS,它是一款非常好用的渗透测试工具&#xff0c…

网络编程--select实现IO复用

何为复用 简单来说,复用就是在1个通信频道中传递多个数据的技术。 常见的复用方式有时分复用和频分复用。 时分复用:即在某一时间段内容,只允许传输一个数据。 频分复用:指的是在某一时间段可以传输多个“频率”不同的数据。 …

朱金宝:数据治理产品发展趋势及Datablau产品最新动态

在刚刚结束的2023数据治理新实践峰会上,Datablau数语科技联合创始人&CTO朱金宝先生分享了对数据治理产品发展趋势的深度思考及Datablau新产品预览,并在现场发布了两款最新工具。 以下是朱金宝先生的演讲实录,为了方便阅读,小…

商家中心之java商城 java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

字符串String

目录 String 字符串比较 charAt 取数组中的值 案例 substring 案例:手机号加密​ StringBuilder StringBuilder提高效率原理图 StringJoiner 字符串拼接底层方法 String 创造方法 直接赋值通过new关键字 / 构造方法 字符串比较 equals :要求比…

chatgpt赋能Python-pycharm滚轮调大小

PyCharm使用技巧:滚轮调整代码大小提高工作效率 介绍 PyCharm是目前最受欢迎的Python开发IDE之一。然而,即使在使用PyCharm多年的开发者中,很多人都不知道如何使用滚轮来调整代码显示的大小。这在工作中可能会导致眼睛疲劳,降低…

Mysql案例

Mysql案例 1.分组查询排名优先的数据1.1 分组获取最新一条记录1.2 分组获取最新的两条数据 1.分组查询排名优先的数据 -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS user; CREATE TABLE user (id int(…

力扣82删除排序链表中的重复元素 II:思路分析+代码实现+方法总结(三指针法快慢指针法【双指针】递归法)

文章目录 第一部分:题目描述第二部分:代码实现2.1 三指针法2.2 快慢指针法(双指针)2.3 递归 第一部分:题目描述 🏠 链接:82. 删除排序链表中的重复元素 II - 力扣(LeetCode&#xf…

简单快速的在openEuler22.03上部署openGauss2.10

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装openEuler1.创建虚拟机2.安装openEuler系统 二、安装openGauss1.设置openGauss2.创建数据库用户并设置权限3.设置防火墙4.远程连接openGauss 总结 前言…

PyQt5桌面应用开发(15):界面动画

本文目录 PyQt5桌面应用系列界面动画PyQt5的动画框架QPropertyAnimationQAnimationGrouppyqtProperty与插值 一个例子代码代码解析 结论 PyQt5桌面应用系列 PyQt5桌面应用开发(1):需求分析 PyQt5桌面应用开发(2)&#…