逆向中的游戏-入土为安的第二十五天

逆向中的游戏

CE的介绍

Cheat Engine ,简称CE,是逆向工程师常用的几大神器之一,也是游戏汉化、破解以及外挂编写中常用的工具,其功能包括:内存扫描十六进制编辑器、调试工具,可以进行反汇编调试断点跟踪、代码注入等诸多高级功能。它还附带了调试器、反汇编器、汇编器、变速器、作弊器生成、Direct3D操作工具、系统检查工具等。支持 lua 语言,可以实现自己定义的逻辑功能,而不仅仅是简单的锁定数据。也可以在代码注入的同时注入 lua 插件,使游戏进程与 CE 进程进行交互。 CE 的大部分功能都可以通过 lua 来操作。它还支持 D3D Hook 功能,可以在游戏中显示十字准星,也可以绘制功能菜单,同时也可以对 D3D 的调用栈进行跟踪调试。自带变速功能,通过 Hook 游戏相关函数改变游戏速度。自带了一个 Trainer 的功能,可以将自己在 CE 中实现的功能单独生成一个 exe 文件,并可以使用 lua 创建比默认样式更加复杂的窗体或功能。

植物大战僵尸

初出茅庐(改阳光数量,僵尸的生命值,植物的生命值,金币的多少....)

简单的扫描(主要特点有数值变化

1.打开ce选择进程植物大战僵尸。

2.初始阳光值为500,输入500,点击首次扫描,显示结果

3.消耗(或者增加)阳光值,使阳光值产生变化为,输入50,点击再次扫描,显示结果。

4.单击右键,选择改变该值,进行阳光值的修改。

中流击楫(卡牌无CD,寻找基址)

基址

还要有一点汇编知识

开始游戏!

步骤 1:初始扫描打开 Cheat Engine 并选择游戏进程。选择数据类型:将数据类型设置为 Byte(字节型),因为植物冷却时间使用的是字节型。进行初始搜索:在游戏中,确保豌豆向日葵没有进入冷却状态,搜索值 0。

步骤 2:监测冷却变化种植豌豆向日葵:在游戏中种下豌豆向日葵,冷却时间值开始增加。更改扫描类型:将 Cheat Engine 的扫描类型更改为“变动的数值”或“增加的数值”。持续扫描:点击“返回游戏”后,立即在 Cheat Engine 中点击“再次扫描”按钮。这个过程需要在冷却结束之前快速完成,直到冷却快结束时停止扫描,或者当你发现结果数量变化不大时停止。

步骤 3:冷却恢复扫描等待冷却结束:当豌豆向日葵的冷却时间结束时,值将恢复为 0。精确搜索:将扫描类型改为“精确数值”,输入 0 进行搜索。继续扫描:在此过程中,可以种植除了豌豆向日葵以外的任意植物,继续扫描,直到找到的冷却值变化不再显著。

步骤 4:确认和重复步骤重复步骤:如果找到多个可能的地址,重复第二步和第三步,确认找到记录豌豆向日葵冷却的值。观察到当你种下豌豆向日葵时,冷却值会从 0 迅速增加,直到冷却结束变为 0。

步骤 5:查找修改源右键点击找到的数值,选择“查看是什么改写了该数值”,这会打开一个新窗口,记下这个信息。

步骤 6:定位并显示地址再次种植豌豆向日葵,观察哪些地址被修改的次数最多。右键选择:在找到的地址上右键,选择“在反汇编程序中显示地址”。这时会打开反汇编界面。

步骤 7:查找指令寻找相关指令:在反汇编界面中,注意寻找 mov eax, [edi+24] 等指令,这些指令通常会位于蓝色框下面。

步骤 8:替换指令

使用空指令替换:选中相关指令后,选择用空指令(nop)替换它,并确认。这将禁用该指令,从而实现植物无冷却状态。

步骤 9:完成完成上述步骤后,豌豆向日葵的冷却将被取消,实现无冷却效果。

通过以上步骤,你可以有效地找到并修改植物的冷却时间,使游戏体验更加顺利。

登峰造极(阳光无cd)

步骤 1:打开 Cheat Engine 并选择游戏启动 Cheat Engine,然后点击左上角的“选择进程”按钮。选择《植物大战僵尸》进程,然后点击“打开”。

步骤 2:扫描阳光数值进入游戏中的任意关卡。查看阳光数量,记录下当前阳光数(假设为500)。在 Cheat Engine 中,将数据类型设置为 4 字节。首次扫描 输入阳光的当前数值(500),然后点击“扫描”按钮。

步骤 3:更新并缩小扫描结果种植任意植物,阳光数会发生变化(例如从500变为375)。在 Cheat Engine 中,输入新的阳光数值(375),然后点击“再次扫描”。如果扫描结果仍然很大,继续种植更多植物或收取阳光,使阳光数进一步变化,重复扫描过程。每次扫描后都会有越来越少的匹配地址,直到只剩下少量的结果(最好只有一个)。

步骤 4:找出修改阳光数值的代码右键点击找到的阳光数值地址,选择“找出是什么修改了这个地址”。打开的窗口中,显示的是哪些代码修改了阳光数值。

如果没有值,说明此时阳光数未被修改,这也是正常的。

步骤 5:分析修改记录不要关闭“找出什么修改了这个地址”窗口。再次种植植物,观察窗口中的值。此时,你会看到一系列的代码记录,这些记录是阳光数值发生变化的原因。找到与种植植物相关的记录,通常显示的数值和记录次数(例如,种植植物改写了阳光数的记录次数会增加)。记录左边的数字(如1)表示因为操作(种植植物)而改写了阳光数值。

步骤 6:应用空指令替换右键点击与阳光数变化相关的记录,选择“使用空指令替换”。确认替换,这将用空指令(nop)替换原有指令,达到阳光不消耗的效果。注意:不要重启游戏,否则需要重新执行以上步骤。

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

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

相关文章

代码随想录算法训练营_day28

题目信息 122. 买卖股票的最佳时机 II 题目链接: https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/题目描述: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你…

matlab 计算复共轭

目录 一、概述1、算法概述2、主要函数二、代码示例1、求复数的复共轭2、求矩阵中复数值的复共轭三、参考链接本文由CSDN点云侠翻译,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的抄袭狗。 一、概述 1、算法概述 2、主要函数 Zc = conj(Z)返回 Z …

【python】Python中小巧的异步web框架Sanic快速上手实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Git在IDEA中的集成操作(附步骤图)

1.先做适配操作,将安装的Git软件关联到IDEA中 点击Test之后若成功会显示出Git版本: 2.创建版本仓库 3.创建新的版本 3.1将文件提交到暂存区(不重要) 第一种方式:菜单栏提交 第二种方式:项目右键提交 4.查看历史版本信息 目…

整合sentinel遇到的小问题

1.运行jar包 ,端口为默认8080 正确命令 java -Dserver.port8090 -Dcsp.sentinel.dashboard.server127.0.0.1:8090 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.6.jar -D这些指令要在 -jar前面 在宝塔部署时,直接复制到运行命令后…

Sparse Kernel Canonical Correlation Analysis

论文链接:https://arxiv.org/pdf/1701.04207 看这篇论文终于看懂核函数了。。谢谢作者

基于无人机边沿相关 ------- IBUS、SBUS协议和PPM信号

文章目录 一、IBUS协议二、SBUS协议三、PPM信号 一、IBUS协议 IBUS(Intelligent Bus)是一种用于电子设备之间通信的协议,采用串行通信方式,允许多设备通过单一数据线通信,较低延迟,支持多主机和从机结构&a…

SpringBoot集成kafka-监听器注解

SpringBoot集成kafka-监听器注解 1、application.yml2、生产者3、消费者4、测试类5、测试 1、application.yml #自定义配置 kafka:topic:name: helloTopicconsumer:group: helloGroup2、生产者 package com.power.producer;import com.power.model.User; import com.power.uti…

C++11详解 (右值引用、可变参数模板、emplace_back、lambda表达式、function、bind)

目录 简介 左值引用与右值引用 左值引用与右值引用是什么 左值引用与右值引用的比较 右值引用的使用场景与C11中STL的新变化 完美转发 新的类功能 可变参数模板 可变参数模板的应用——emplace_back lambda表达式 包装器 function bind 结语 简介 在过往&#xf…

基于vue框架的毕业设计选题系统bqx47(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:学生,指导老师,课题信息,类型,选题信息 开题报告内容 基于Vue框架的毕业设计选题系统 开题报告 一、引言 毕业设计选题是高等教育中极为关键的一环,它不仅关乎学生未来研究的方向与深度,也是培养其创新思维和实…

SSRF漏洞与redis未授权访问的共同利用

1.利用靶场Pikachu来认识SSRF漏洞 1.什么是SSRF SSRF漏洞允许攻击者通过向服务器发起请求来伪造请求。这种漏洞的核心在于攻击者能够控制服务器向任意目标地址发起请求,而这些请求通常是攻击者无法直接从客户端发起的。 简单来说,假设你的网站有一个功能…

rk3568 npu opencv 怎么联系起来

问题: 客户一直再问 关于 3568 npu opencv 的编译内容。 大致了解一些 ,这方面的内容。 网上的资料。 也许这个基本上就是他的逻辑了, 首先界面使用QT来写。 然后,使用 opencv 去读取摄像头。 然后拿到一帧图像之后&#xff…

IO进程线程8月26ri

1&#xff0c;思维导图 2&#xff0c;用两个进程分别复制文件的上下两部分到另一个文件 #include<myhead.h> int main(int argc, const char *argv[]) {int fpopen("./1.txt",O_RDONLY);if(fp-1){perror("open");return -1;}int countlseek(fp,0,SE…

电脑U口管理软件分享|U口管理软件哪个好?

电脑U口&#xff08;即USB端口&#xff09;管理软件是保护电脑安全、防止数据泄露和恶意软件入侵的重要工具。 在选择U口管理软件时&#xff0c;需要考虑其功能、易用性、安全性以及是否满足个人或企业的具体需求。以下是一些值得推荐的电脑U口管理软件及其特点&#xff1a; 1…

基本数据类型及命令

String String 是Redis最基本的类型&#xff0c;Redis所有的数据结构都是以唯一的key字符串作为名称&#xff0c;然后通过这个唯一的key值获取相应的value数据。不同的类型的数据结构差异就在于value的结构不同。 String类型是二进制安全的。意思是string可以包含任何数据&…

Linux:Linux线程池

目录 线程池的概念 线程池的优点 线程池的应用场景 线程池的实现 线程池演示 线程池的概念 线程池是一种线程使用模式。 线程过多会带来调度开销&#xff0c;进而影响缓存局部和整体性能&#xff0c;而线程池维护着多个线程&#xff0c;等待着监督管理者分配可并发执行的…

每日OJ_牛客_剪花布条(string内置函数)

目录 牛客_剪花布条&#xff08;string内置函数&#xff09; 解析代码 牛客_剪花布条&#xff08;string内置函数&#xff09; 剪花布条__牛客网 解析代码 题意就是在S串中&#xff0c;T串整体出现了多少次。C语言可以通过strstr函数找&#xff0c;用STL的string库可以通过f…

mysql练习5

数据准备 创建两张表:部门(dept)和员工(emp)&#xff0c;并插入数据&#xff0c;代码如下 create table dept( dept id int primary key auto increment comment部门编号, dept_name char(20)comment部门名称 ); insert into d…

排序1

一、概述 直接插入排序 是稳定排序 二、插入排序 1&#xff09;直接插入排序 2&#xff09;折半插入排序 3)希尔排序 、 三、交换排序 1&#xff09;冒泡排序 2&#xff09;快速排序

Redis计数器:数字的秘密

文章目录 Redis计数器incr 指令用户计数统计用户统计信息查询缓存一致性 小结 技术派项目源码地址 : Gitee :技术派 - https://gitee.com/itwanger/paicodingGithub :技术派 - https://github.com/itwanger/paicoding 用户的相关统计信息 文章数&#xff0c;文章总阅读数&am…