初识内存挂:VirtualNES金手指教程
一、什么VirtualNES?什么是金手指?
VirtualNES是一个NES模拟器,用来运行.nes文件,即在电脑上玩当年小霸王游戏机上的游戏。而它内置了一个简单的Cheat Engine,称之为金手指,使用方法基本同CE相同,即想修改游戏中的 某个参数,就通过不断的修改它的值来找出它的内存地址,从而修改锁定这个地址的值来达到不掉血、资源无限用等等乱七八糟的功能。
二、实战:伏魔三太子
本次要修改的游戏是《伏魔三太子》,小时候为玩这游戏和父母斗智斗勇完全无心学习,笔者人生如此悲催这游戏功不可没:

开始游戏,出生在陈塘关:

打开状态栏看一下:

一贫如洗,好惨,现在先打开“查找金手指”界面:

初始化并搜索值为0的地址:

可以看到有很多,其中表示银子的地址就在这些里边,要想办法将其找出来,基本思路是每次改变银子的值,然后使用新的值去过滤,直到剩下一个就是我们想要的银子地址,或者剩下两三个手动排查出哪个是银子的地址,要改变银子的数量,可以出去打怪得到银子,因为我玩过好多次了,所以知道开局的时候爸爸会训斥哪吒惹事了,而妈妈则会塞银子让跑路,所以找妈妈领银子:

领完银子再搜索一次,这一次搜索100,因为现在有100个银子,搜完发现这次只剩下三个了:

银子的地址就是其中之一,一个一个试最多试三次,双击第一个地址0501,自动将地址填到“写入数据地址”,然后手动将数据修改为1,单击写入按钮:

然后重复此步骤,第二个地址06C1,写入2,第三个地址06F2,写入3,写入不同的地址是为了提高排查效率,等下只需要看界面上显示的是哪个数就知道是第几个地址生效了,接下来打开状态栏,看下有几个银子了:

现在有1两银子,说明刚才第一个地址生效了,那个就是银子的地址。
现在在第一个地址上右击 --> 添加金手指:

重新打开状态界面,小哪吒已经富可敌国了:

三、实战:东方的传说
接下来再来一个例子,这个游戏叫《东方的传说》,笔者小时候在一个光碟游戏合集中玩过,但是因为光碟无法存档所以一直没玩通关过,虽然现在有条件了但已经找不回那时的感觉了,这次就拿它来练手吧:

这个游戏中有一种消耗类的道具炸弹,就是钥匙下方蓝色的那个球,这是一个消耗品:

工具 --> 查找金手指 --> 开始,在数据处输入0搜索,因为当前有0个炸弹:

然后返回游戏,再买4个炸弹:

然后数据处输入4搜索:

仍然有好几个地址,怎么办,那再买四个好了。。。

现在在金手指数据处输入8搜索:

仍然有两个,怎么办,尝试修改它们的值观察界面上的炸弹数是否会改变来排查,双击地址会自动填写到右侧的“写入地址数据”的地址栏,然后随便输入个数字3单击写入:

好像什么事也没发生,然后尝试第二个地址,将其值修改为4:

OK,就是这个地址,将其添加为金手指,值固定就可以无限使用炸弹了:

注意这个最大值是255,说明是一个字节,我作死的往后尝试了几个字节看会改变什么(挨着声明的变量内存地址都是连续的...),发现我的衣服被改变了...

.
初识内存挂:VirtualNES金手指教程的更多相关文章
- A 内存挂 B 封包挂 C 钩子挂 D CALL挂 外挂
https://www.zhihu.com/question/32291769 作者:猎狐链接:https://www.zhihu.com/question/32291769/answer/70929 ...
- 手游服务端框架之GM金手指的设计
玩过单机游戏的朋友,应该对金山游侠这个软件很熟悉把.当初我经常嫌刷怪升级非常辛苦,很多时候都是直接用金山游侠来修改游戏的经验或者等级内存,直接把角色调得很牛逼. 游戏开发也非常需要这些可以修改玩家数据 ...
- FCEUX金手指加强版 - 使用Lua脚本语言编写FC/NES金手指脚本
一直觉得大部分的FC/NES模拟器的作弊码金手指不是那么方便使用, 比如魂斗罗1代, 玩家的武器可以通过修改0xAA的值来改变: 0x11为M弹(重机枪),0x12为F弹(圈圈),0x13为S弹(散弹 ...
- 初识内存分配ByteBuf
初识ByteBuf: ByteBuf 是Netty 整个结构里面最为底层的模块,主要负责把数据从底层IO 里面读到ByteBuf,然后传递给应用程序,应用程序处理完成之后再把数据封装成ByteBuf ...
- 记一次 .NET 某上市工业智造 CPU+内存+挂死 三高分析
一:背景 1. 讲故事 上个月有位朋友加wx告知他的程序有挂死现象,询问如何进一步分析,截图如下: 看这位朋友还是有一定的分析基础,可能玩的少,缺乏一定的分析经验,当我简单分析之后,我发现这个dump ...
- [ecmagent][redis学习][1初识redis] redis安装+redis快速教程+python操作redis
# redis安装 # redis安装教程 -- 服务器(ubuntu)安装redis服务 sudo apt-get install redis-server -- 源码安装 -- $ wget ht ...
- 例程使用(1-4)共享内存 存图片+vector容器教程
1传输的数据 1-1数据格式说明 1 两路视频图像Mat 图像 图像数据(Mat)+图像头信息(ImgInf) //图像的宽.高.类型信息 typedef struct { int width; // ...
- 【STM32H7教程】第25章 STM32H7的TCM,SRAM等五块内存基础知识
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第25章 STM32H7的TCM,SRAM等五块内 ...
- 【STM32H7教程】第27章 STM32H7的TCM,SRAM等五块内存的动态内存分配实现
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第27章 STM32H7的TCM,SRAM等五块内 ...
随机推荐
- c# 调用 C++ dll 传入传出类型对应说明(转)
由于经常使用C#调用 非托管C++ dll 操作一下硬件,出现传入传出类型的问题,现整理了C++ dll 类型与 C#类型对应关系: //C++中的DLL函数原型为 //extern & ...
- 分析脚本搭建docker环境:python, R
1. 搭建Anaconda Python3.6 FROM nvidia/cuda:8.0-cudnn6-devel-ubuntu16.04 MAINTAINER Tyan <tyan.liu.g ...
- SpringBoot——SpringBoot学习记录【一】
前言 公司目前主要的业务,用的语言是java,所以学习下相关的技术呀,还好大学基础语言学的JAVA SpringBoot简介 官网 SpringBoot 简介 SpringBoot是用来简化Sprin ...
- iis站点设置错误页面返回http状态码为404而不是302或其他
今天一位客户说网站错误页面返回的状态码是302而不是404,问ytkah要如何处理.这个应该是设置没有正确的原因.我们一步步来排查一下.1.首先打开iis管理器,左侧选择具体的站点,在右侧窗口中点击4 ...
- new.target元属性 | 分别用es5、es6 判断一个函数是否使用new操作符
函数内部有两个方法 [[call]] 和 [[construct]] (箭头函数没有这个方法),当使用new 操作符时, 函数内部调用 [[construct]], 创建一个新实例,this指向这个实 ...
- swift的柯里化demo
func baseFunc(go:String, goo:String) -> String { return "hello" + go + goo; } func Curr ...
- RabbitMQ六种队列模式-主题模式
前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主题模式 [ ...
- PostgreSQL 执行计划
简介 PostgreSQL是“世界上最先进的开源关系型数据库”.因为出现较晚,所以客户人群基数较MySQL少,但是发展势头很猛,最大优势是完全开源. MySQL是“世界上最流行的开源关系型数据库”.当 ...
- (尚029)Vue_案例_交互footer组件功能
需要实现界面截图: 难点分析:sAllCheck必须定义为计算属性 1.想到问题: 一旦写一个组件,需要接收哪些属性?? 因为只有属性确定了,标签才好写 todos属性可以确定三个方面的显示 2.做交 ...
- 在UE4C++中的宏
1. UE4蓝图的宏 在蓝图中,我们可以把一堆经常使用的节点封装为一个宏,然后通过多次使用这个宏,达到了减少重复代码量的效果. 如图: 2. UE4C++中的宏 那么,在UE4的C++中怎么实现宏呢? ...