初识内存挂: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等五块内 ...
随机推荐
- sublime设置代码缩进
打开sublime的首选项(Preferences)下的设置-用户(Setting-User) ,配置如下代码 , "translate_tabs_to_spaces": true ...
- js回调与异步加载的用法
以前还是菜鸟的时候(虽然现在依然很菜 -_-|| )对异步加载与回调函数的技术无比向往,但也一直没有使用过,这次因为页面逻辑太过复杂,一堆请求逻辑,如果还是用顺序请求,页面的速度... 领导又要挠头了 ...
- react native 从创建到部署
source code: 开源库 rn源代码 native源代码 sourcecode tool: npm react-native vscode xocde.vscode ide+tools ...
- Spring Data JPA:关联映射操作
1.一对一的关系关联 需求:用户和角色一对一关联 package com.example.jpa.pojo; import javax.persistence.*; @Entity @Table(na ...
- matlab基础向7-8:画图
1.画直角坐标系的二维图 画直线: x1=[1 2 3]; y1=[4 5 6]; plot(x1,y1);%斜率为1的直线,穿过(1,4)(2,5)(3,6) 画抛物线y=x*x(-3<=x& ...
- JavaScript基础10——正则
什么是正则? 正则表达式(regular expression)是一个描述字符规则的对象.可以用来检查一个字符串是否含有某个字符,将匹配的字符做替换或者从某个字符串中取出某个条件的子串等. ...
- UFUN函数UF_MODL UF_DISP UF_OBJ(name_switch) ( UF_DISP_ask_name_display_status、UF_DISP_set_name_display_status)
/* TODO: Add your application code here */ /* 此程序主要演示的是name_switch (设置名称显示) */ UF_initialize(); //MO ...
- SQL练习题 51题 一刷
Student表: select * from student; 课程表Course: select * from course; 教师表teacher: select * from teacher; ...
- swap file "*.swp" already exists!的解决方法
Linux下编程难免要开启多个vim共同编辑同一个文件,这时再次保存就会出现: swap file "*.swp" already exists! [O]pen Read-Only ...
- 洛谷P1084 运输计划
题目 题目要求使一条边边权为0时,m条路径的长度最大值的最小值. 考虑二分此长度最大值 首先需要用lca求出树上两点间的路径长度.然后取所有比mid大的路径的交集,判断有哪些边在这些路径上都有出现,然 ...