热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mapbox修改初始位置_⑩的游戏修改小课堂1——WinDepth

咱今天比较闲,所以来误人子弟啦~来讲一讲如何用CheatEngine与OllyDBG来修改简单的小游戏~当然,这是只最初级的修改(露米娅比
bc9e19aafa5b900c90864f2dc146c034.png

咱今天比较闲,所以来误人子弟啦~

来讲一讲如何用Cheat Engine与OllyDBG来修改简单的小游戏~

当然,这是只最初级的修改(露米娅比较笨qwq),不过,这也意味着非常地简单易学~


今天露米娅下载了一个反潜小游戏(WinDepth)来怀旧一下~

211380911a5ce465c53958af064c541b.png

当年玩到这个游戏的时候,咱还在上幼儿园……系统是win98,ghost系统自带一个十个小游戏的合集,其中就有这个潜艇的小游戏。不过版本可能不同,因为我记得那个游戏中的奖励潜艇是金色的,而这个WinDepth中的奖励潜艇是绿色圆形的。不过游戏的模式还是一样的,空格扔深水炸弹,左右移动。敌人(潜艇)的图像与攻击模式也是一样的。

一顿操作之后……

9db5efcbed406907d2a488972edc6cb7.png

玩得还不如当年呢……

所以咱就打开了罪恶的工具Cheat Engine……首先在CE中打开游戏进程。

4995fcd709a3418e10dcc8898efa5e4f.png

首先自然是要逆天改命,开始游戏,用First Scan 搜索4(初始的生命值)。

35f5e09ede33e6a246b5431c5cfc2f53.png

故意死掉一次,再用Next Scan 搜索3。

4ebfe9d47506d4374042c6b9b0fc3a5c.png

这样就直接搜索到生命值的地址啦,双击添加到列表中~大家可以直接修改内存,改成更大的值。不过,咱的目标不仅仅是这样~咱想要修改游戏~所以要用到调试器~

大家可以用CE自带的调试器来修改,不过咱还是喜欢用OllyDBG来处理~

在OD中打开程序,F9运行,正常开始游戏。

然后,在数据窗口中ctrl+g转到0012E9BC(这是我们刚刚搜到的内存的地址)。

4c973b28fc7e1e35c9a74ac49863a056.png

看到0012E9BC这个地址了嘛~在这里下一个内存断点(右键->断点->内存写入)

然后F9继续运行游戏,再死掉一次,就会发现断点触发,程序暂停了。

0da33bc59dc160829f617542c76be7bf.png

看指令窗口,我们抓到了写入的指令~相信学过汇编的诸君都知道要怎么做了吧~

什么,没学过汇编……那咱就解释一下这些汇编指令~

地址为00402F00的指令是将内存移动到寄存器eax中

地址为00402F10的指令将eax减1

地址为00402F17的指令将减1后的值放回内存

也就是说,这三条指令完成了将生命-1的效果。

5ee545274b5e6bb6bdb8a7d7352735fd.png

双击dec eax,改成inc eax(将eax加1)

之后删除内存断点(在0012E9BC上右键->断点->删除内存断点),F9继续程序~

再一次死掉之后,我们可以看到,生命值+1啦~

4e977ee2a2b94990d9821300ea36025a.png

接下来,我们要保存成果。

在OD中右键->复制到可执行文件->所有修改,然后在新出现的窗口中右键->保存文件

4164f4ff4c546a330318a202dcbed761.png

我们就得到一个死了之后生命+1的版本啦~之后用这个保存的来玩就容易多啦~是不是很开心呢~

不过,有没有其它的方法呢?

刚才,我们已经得到了内存地址,那么,我们可以写一个C语言程序。

#include

这个程序会通过窗口得到窗口的句柄,然后通过窗口句柄得到进程的PID,然后将进程的对应内存地址修改成99999。

为什么窗口名是WinDepth (Sleep)?因为这个游戏在窗口失去焦点之后,就会自动暂停,同时窗口名也会变成WinDepth (Sleep)这样(真是贴心的设计^^)。

编译之后,先开始游戏,然后运行程序,就会看到……

47854135d5258562d4b06eb7ee249229.png

生命变成99999啦~

用类似的方法,我们还可以修改关卡来达到跳关的效果,修改BOSS的初始血量来让BOSS更容易击败(搜索的方式不太一样,一开始要模糊搜索),大家可以去尝试~



推荐阅读
  • 本文详细介绍了在单片机编程中常用的几个C库函数,包括printf、memset、memcpy、strcpy和atoi,并提供了具体的使用示例和注意事项。 ... [详细]
  • 实现系统调用
    实现系统调用一、实验环境​本次操作还是基于上次编译Linux0.11内核的实验环境进行操作。环境如下:二、实验目标​通过对上述实验原理的认识,相信 ... [详细]
  • C语言是计算机科学和编程领域的基石,许多初学者在学习过程中会感到困惑。本文将详细介绍C语言的基本概念、关键语法和实用示例,帮助你快速上手C语言。 ... [详细]
  • 本文介绍了如何在Linux和Windows环境中使用C语言中的beep函数来生成不同频率的声音,并提供了详细的代码示例和解释。 ... [详细]
  • 在Linux系统中,许多应用程序以源代码的形式提供,这给安装带来了挑战。本文旨在介绍一种简化源码软件安装流程的方法,帮助用户更加轻松地完成安装。 ... [详细]
  • 本文介绍了在Linux环境下如何有效返回命令行状态、上一级目录及快速查找头文件和函数定义的方法。包括处理长时间运行命令、编辑器退出技巧、目录导航以及文件搜索策略。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • c语言二元插值,二维线性插值c语言
    c语言二元插值,二维线性插值c语言 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 编译原理中的语法分析方法探讨
    本文探讨了在编译原理课程中遇到的复杂文法问题,特别是当使用SLR(1)文法时遇到的多重规约与移进冲突。文章讨论了可能的解决策略,包括递归下降解析、运算符优先级解析等,并提供了相关示例。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • c#  项目文件,C#viual studio使用方法
    一、项目文件1)Properties节点下主要存放的是当前程序集相关的信息,如版本号、标题等。双击”Properties“,打开如下项目属 ... [详细]
  • 本文将详细探讨PHP中C的作用,并对比其他编程语言如Java和C的特点及其适用场景。 ... [详细]
  • 用C语言实现的科学计算器,支持2种常量,10种基本函数,Ans寄存器。相对来说拓展性应该是不错的,思路是首先化简复杂名称的函 ... [详细]
  • 最近遇到了一道关于哈夫曼树的编程题目,需要在下午之前完成。题目要求设计一个哈夫曼编码和解码系统,能够反复显示和处理多个项目,直到用户选择退出。希望各位大神能够提供帮助。 ... [详细]
author-avatar
mobiledu2502897083
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有