99.游戏安全项目-可见数据的搜索与技巧

news2024/9/26 21:27:41

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

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

上一个内容:98.游戏的启动与多开-分析与实现多开器

下图中红框位置显示的数据,只有下图红框位置显示了那么在内存中一定是存在的,存在中存在就一定可以找得到,找到就可以显示,找的方式剑侠情缘找的方式是很简单的只需要在 Cheat Engine 中输入数字就可以得到

字节对应char,2字节对应short,4字节对应int,8字节对应long long,4字节和8字节原则上来讲它包含了float和double,如果使用精确的值搜索float和double类型使用4字节个8字节是搜不出来的只能模糊搜索,字节数组是一个一个的数据以空格分开

字符串默认是char类型的数组,如果把UTF-16勾选上那么就是w_char类型

搜索游戏中数据是类型的选择,比如说要找它的生命,先看它的范围,它的范围是1562,然后再看936这个数据分析它用char类型够不够如果不够再分析它用short类型够不够如果不够就用int、longlong,很显然936这个数据用short类型可以存下,虽然可以用short找936并不代表游戏中就是使用的short类型存储的,但是只要数据满足short类型那么数据是一定可以找到的,即使当时是用int存储的也一定是可以找到的

可以找到原因是比如有一个数据是1000,1000是可以用short类型存放的,但实际上游戏中是用的int类型存放的

然后1000再内存中的样子是 e8 03 00 00,由于1000使用int类型4字节的方式存放所以是e8 03 00 00, 然后1000这个数字实际上内存占用的情况只需要e8 03就可以表达了,00 00现在是没用的,所以使用short类型搜索内存时是可以把1000给搜到的,然后在不知道数据是以什么类型存放的时候找数据要采用这种最小存放单位来找,使用int类型找时不一定会找得到,但是使用short类型是一定可以找到的,只要找2字节然后再确认它后面是不是0再判断它是不是int类型或者longlong类型

下图使用2字节就找到了血量的内存地址

然后确认类型,把找到的血量改成以4字节显示看看数据变不变如果不变那它可能是4字节

然后改成8字节数据变了,然后这样就可以确定血量这个数据一定是4字节的也就是当时写游戏时是 int hp;这样声明的

现在计算机发展的比较好内存资源不是很紧俏所以一般都会是4字节。

然后有时候搜索数据时会找到多个一模一样的数据,如下游戏它的血量就搜索出了三个

然后吃了一个药三个值也都变满了

它的数据也时4字节

然后一个游戏只有一个血量不可能会有三个血量,但是现在就找到了三个这时就涉及到一个区分真伪的操作,但是这三个都是真的,因为它能够根据血量的变化而变化,但是它们都不是真正原始的数据,使用 Cheat Engine 改它们的数据会立马变回原来的值(236),这个游戏叫火炬之光它不是一个网络游戏只是一个单机游戏,这个时候修改不了数据并不是加密了而是它有一段代码会不停的给这三个内存地址重新赋值,我们找到的并不是它真正的的血量,游戏中有人物信息或者其它位置有用到血量,这三个值很可能就那些地方的,而真正的血量现在可以得出它并不是int类型,它时float类型

所以当一个单机游戏搜索到多个等同的值这并不是加密而是一个正常的行为,出现多个等同的值可以理解位游戏中有个界面有用到血量这个值这些等同的值就是那些界面中用的。

然后一个网络游戏,它的坐标是6460然后6460也可以用short类型存放然后它可以搜到一堆

然后坐标更改之后点再次扫描什么数据都找不到了

然后使用浮点型再找一次,也可以找到

然后更改坐标,不用点再次扫描都可以看出没找到坐标,刚刚找火炬之光没有找到是因为数据类型不对使用浮点型之后是可以正常找的,而下图中的游戏short与float都用的也没找到这种情况是因为它加密了当内存找不到的时候有两种情况第一种数据类型错误,第二种数据加密,如果找到两个说明用的数据副本,加密的数据如何找后面会写


 

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

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

相关文章

Avaloia 实现国产麒麟系统中文显示界面

最近在搞一个国产麒麟系统的接口对接,因为,接口内含复杂的签名验证,而且还是离线环境,所以,postman不是很好用。 就想着哪个方式好一些,主要是有选择图片的操作,所以,在Electron和A…

有了它,Python性能瓶颈消失!

声明:此篇为 ai123.cn 原创文章,转载请标明出处链接:https://ai123.cn/#1 作为一名互联网行业的Python工程师,你是否也遇到过解释型语言在处理大量数据时速度较慢、内存占用高、并行处理困难、调试复杂、扩展性差和性能瓶颈等各种…

OpenCV-模板匹配多个目标

文章目录 一、基本概念二、基本步骤1.图像准备2.图像预处理3.执行模板匹配4.定位匹配区域5.处理多个匹配6.优化和验证 三、代码实现1.图片读取2.图像预处理3.模板匹配4.绘制矩形框 三、总结 模型匹配(Model Matching)是一个广泛应用的概念,其…

练练演活姜迎紫 入围金鹰奖提名演技派实至名归

近日,悬疑剧《雪迷宫》正在CCTV-8热播,演员练练凭借其精湛的演技演活姜迎紫一角,塑造的大嫂形象深入人心,赢得了观众的一致好评,成为该剧的一大亮点,成功闯入“内娱大嫂”的赛道。而近日,练练也…

贪心+滑窗+递推,LeetCode 2555. 两个线段获得的最多奖品

一、题目 1、题目描述 2、接口描述 python3 ​ class Solution:def maximizeWin(self, prizePositions: List[int], k: int) -> int:cpp ​ class Solution { public:int maximizeWin(vector<int>& prizePositions, int k) {int n prizePositions.size();std…

windows通过wsl2安装linux系统之Ubuntu,傻瓜式安装

期望通过每一次分享&#xff0c;让技术的门槛变低&#xff0c;落地更容易。 —— around 目录 1.基础环境和要求2.安装wsl23.安装linux系统4.迁移linux系统挂载5.配置linux账号密码6.配置ssh登录方式待续… 前言 为什么要在windows上安装linux&#xff0c;这个问题当你是研发…

Kubernetes动态分配存储卷组件 nfs-subdir-external-provisioner

Kubernetes动态分配存储卷组件 nfs-subdir-external-provisioner 存储组件 nfs-subdir-external-provisioner 是一个存储资源自动调配器&#xff0c;它可用现有的 NFS 服务器通过持久卷声明来支持 Kubernetes 持久卷的动态分配&#xff0c;自动创建的文件夹将被命名为 n a m …

Note24091101_基恩士日期获取相关测试01

基恩士日期获取相关测试 1、SEC和RSEC的使用&#xff1a; 资料如图&#xff1a; 要点提示&#xff1a;SEC和RSEC成对使用。 日期转秒&#xff0c;秒转日期测试如图所示&#xff1a; 2. LDWK与LDWKB星期接点的使用示例&#xff1a; 资料如图&#xff1a; 仿真如图&…

chapter14-集合——(List)——day18

目录 518-Set接口方法 518-Set接口方法

Rickdiculously Easy靶场渗透测试

靶机下载地址 https://www.vulnhub.com/entry/rickdiculouslyeasy-1,207/ 一.信息收集 1.端口扫描 nmap 172.16.1.20 -p- -sV 发现还扫描出一个flag 2.目录扫描 二.获取shell和提权 1、访问靶机IP地址 2、拼接并访问robots.txt文件 3、逐个访问&#xff0c;发现cgi-bin/tr…

‌移动管家手机智能控制汽车系统

‌ 手机可以通过下载特定的应用程序来控制汽车系统&#xff0c;实现远程启动、锁/解锁车门、调节车内温度等功能。‌ ‌ 手机智能控制汽车系统主要通过下载并安装特定的APP来实现。‌ 首先&#xff0c;用户需要确定自己的手机系统是安卓还是苹果版&#xff0c;然后前往应用…

图像和文本统一识别

图像和文本统一识别&#xff08;UNIT&#xff09;是一种尝试将图像识别和文本识别任务统一到单一模型中的技术。这种方法的目标是提高模型在处理包含文本信息的图像时的效率和准确性&#xff0c;从而使模型能够更好地理解和处理视觉内容中的文本信息。 使用的技术&#xff1a;…

浮毛危害人体健康?希喂、安德迈、有哈宠物空气净化器吸毛测评

养宠之前了解清楚相关的知识&#xff0c;这既是对宠物负责&#xff0c;也是对我们自己负责。宠物最让铲屎官头疼的就是毛发问题&#xff0c;大量脱落的毛发会带来繁重的清理任务&#xff0c;同时飘在空中浮毛还是潜藏在身边的健康”杀手“。浮毛微小、质量轻&#xff0c;容易随…

JAVA 使用POI实现单元格行合并生成

预期效果 maven引用 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version></dependency>Java代码实现 功能实现 private boolean callExcel(List<MColumnValueVo&g…

Nignx 增加权限(windows)

Nignx 增加权限&#xff08;windows&#xff09; 1、nginx增加权限配置 问题描述&#xff1a; windows下路径含有空格和路径符号产生的问题 server {listen 9025;server_name localhost;# 验证时的提示信息auth_basic "请输入用户和密码"; # 认证文件auth_b…

鸿蒙界面开发——组件(7):组件导航 页面路由

组件导航 (Navigation)(推荐) Navigation() Navigation(pathInfos: NavPathStack)Navigation是路由容器组件&#xff0c;一般作为首页的根容器&#xff0c;包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式。Navigation组件适用于模块内和跨模块的路由切换&#xff0c…

【论文阅读笔记】Tackling the Generative Learning Trilemma with Denoising Diffusion GANs

【论文阅读笔记】Tackling the Generative Learning Trilemma with Denoising Diffusion GANs Introduction方法 使用传统GANS建模去噪分布理解模式覆盖率 Paper&#xff1a;https://arxiv.org/abs/2112.07804 Code&#xff1a;https://github.com/NVlabs/denoising-diffusion-…

大模型LLM部署学习

1、推理工具vLLM vLLM使用指北 https://zhuanlan.zhihu.com/p/685621164 VLLM官方文档 Welcome to vLLM! — vLLM 2、RAG&#xff08;检索增强生成&#xff09; https://zhuanlan.zhihu.com/p/675509396 RAG就是通过检索获取相关的知识并将其融入Prompt&#xff0c;让大模…

企业预算管理的数字化转型

在当今激烈的市场竞争中&#xff0c;企业面临着前所未有的挑战&#xff0c;尤其在成本控制和资源配置方面&#xff0c;预算管理成为企业成功运营的关键。然而&#xff0c;传统的预算管理方式&#xff0c;尤其依赖于Excel等工具的操作&#xff0c;随着企业规模的扩大和业务复杂度…

13步指南:如何建立品牌社区(附真实案例)

如果你正在寻找增强客户忠诚度、降低营销费用&#xff0c;并直接从客户那边获取创新想法的方法&#xff0c;那么创建一个品牌社区可能非常适合你。在这里&#xff0c;我们还推荐使用光年AI&#xff0c;将两者结合可以事半功倍。 例如&#xff0c;丝芙兰的美妆爱好者社区自2017…