从零开始学会NS金手指 原理到制作

从零开始学会NS金手指 原理到制作
我的目标就是  我要为我自己做一个ARMS的金手指
顺便告诉大家  原理和实现方法


原理部分  非常重要的基础理论  是学习金手指制作的内功心法


1、数据类型
所有数据都是由某个数据类型构成有1字节 2字节 4字节 8字节的区别
可以记载的数据量 不一样 比如1字节 只能记录256个数据 即0-255
相关数据请自行百度学习  篇幅问题这里只做概述


2、基址 偏移量
从修改器开始到现在 游戏的变革  导致每次开局游戏 游戏地址都会变化
所以使用了  C++指针的概念  作为偏移前的 基址(全称从来没有人告诉过我  我一直称之为“基础地址”)
在PC端的 常用表达式为  [00041000]+2FC  这样的表达式& N* t0 U9 u9 D" r' D
其中 00041000  为基址
2FC 为偏移量
篇幅问题  想了解更多的 请自行百度  这里只是让你知道知道有那么个概念
我们的目标是做金手指的

3、SXos金手指的9个运算符
0:写入内存
1:条件语句
2:条件语句的结束
3:循环
4:加载寄存器的值
5:从内存加载寄存器值
6:将值存储到寄存器的存储器地址
7:应用算术运算进行注册
8:检查按下的按钮

下面我要直接用现成的金手指 来解说 这9个运算符号的作用了
更多的关于运算符的使用  请看我附件上传的SXos金手指使用说明书 的google汉化版本


这个是 玛丽 奥德赛 的金币金手指代码
[9999 Gold Coins]
580f0000 0264af58
780f0000 004ff8a0
640f0000 00000000 0000270f


要制作金手指  首先要知道这个金手指的结构是什么
AAAAAAAA BBBBBBBB
首先A字段 是命令声明符号   这段话说明了 这一行的代码 所使用的 命令 和 长度等声明
B字段  就很简单了 就是 地址


580f0000 0264af58
第一段580f0000      5:从内存加载寄存器值
读取8字节 数据从寄存器
第二段0264af58      要读取的地址位置0264af58


780f0000 004ff8a0


第一段780f0000       7:应用算术运算进行注册
780  7进行运算处理  8代表了 还是8个字节    这里注意这个0  这里它表示是要做加法运算
第二段是要加上多大的数值    就是偏移量


然后 这里总结一下 这样一来就实现了PC端常见的表达式的这样一个运算
[0264af58]+004ff8a0
这么一来   我们也就算清楚了  真正的地址位置 到底是在哪里?


640f0000 00000000 0000270f
第三句就是写入数据
第一段640f0000    6:将值存储到寄存器的存储器地址
不知道为什么 这里选择写入的4字节  我觉得应该是金币只能够9999   270f是十六进制的 9999
理论上这个640f0000和680f0000  是一样的效果  又或者是只会写入声明的长度  后面的8字节数据是预留的


第二段 00000000 0000270f  这个要作为一个整体看  这是一个8字节长度的整数
前面4字节是00000000  是空的  可以不理会  后面4字节 0000270f就是  10进制的9999了


未完待续...因为我还没开始做呢  目前先讲解一下原理
金手指制作.7z (4.7 KB, 下载次数: 339) 制作部分  这里就相对的简单了  但是不了解原理的话看着直接就是懵的

1、搜索地址
模糊搜索 和 精确搜索    在搜索内存的时候有着这样的两种搜索模式
一种是绝对的 已知的值  另外的就是 不知道的的  只知道可能是往某个方向变化的值
可以使用逻辑关系符表达 大于、小于、等于、不等于、区间值(0-100之间)  、增加、减少了多少(绝对量)

2、确定地址
首先就是要进入SXos搜索了  这里不演示复杂的搜索方法
使用绝对化的 可视的数值进行搜索
从零开始学会NS金手指 原理到制作
选用的游戏是 神臂斗士我的内存卡是exFat的  使用金手指 会出现警告提示
exfat SDcard not supported yed(大意 仍然不支持exfat格式的内存卡)
我们选择lgnore warning(忽略错误)  不管他  我又不读写内存卡 对吧?


打开之后会询问你 使用模糊搜索还是准确搜索  模糊搜索是需要读写内存卡的  我这里不用
我们选择 exact 精确搜索   输入对应的数值


这里需要把10进制转换为16进制来搜索  这里是教做金手指的 详细的转换方法  自行百度
从零开始学会NS金手指 原理到制作
从零开始学会NS金手指 原理到制作
从零开始学会NS金手指 原理到制作

一般来说 第一次搜索之后会出现
too many hits left (太多 点击左键继续)
这里它告诉你  找到的地址太多了 不能够给你显示查看  请继续确定地址到小范围内

直到出现
you can now view the candidate list(你现在能够查看数据列表)


那么我们就过去看看  是什么一个情况
从零开始学会NS金手指 原理到制作 从零开始学会NS金手指 原理到制作 因为找到了4个地址  我也不确定  谁是对的
干脆全改了   直接编辑RAM 运行内存  修改为 bd 06(原本bd 05 对应10进制整数1469)
bd 06 对应10进制整数1725  我修改了一下  返回界面查看 确实就修改成功了  这就是我们要找到的地址数据 从零开始学会NS金手指 原理到制作
从零开始学会NS金手指 原理到制作 最后我还调皮的改了一下 bd ff = 65469  再度确认了 这个是没问题的


从零开始学会NS金手指 原理到制作

3、理清编写表达式的逻辑

最后我们直接编写表达式 来进行制作 不过我最终的金手指并没有做出来
为什么呢?因为这里的地址有两种状态  我没有进一步的寻找  准确的静态地址(这个太费时间了  就交给以后的我慢慢完成吧)

MAIN  =  可靠的静态地址
HEAP  =  动态地址

刚刚我们找到的  地址里 能够成功修改 游戏的数据的 实际上是HEAP动态地址 他是不可靠的
每次启动游戏 都要使用上诉提及的  通过静态地址 重定位的方式来找到 HEAP动态地址 然后计算偏移值确定最终地址
理论上  HEAP动态地址 是允许多次偏移的  所以也会有可能在以后的游戏出现 [[00041000]+2fc]+100  这类的多级偏移

4、完成编写

最后 我就开始 直接写了最好使用英文来写(这个地址 目前应是可以准确读取 金币数量的)
写入更改数量应该是不行的  请自行测试  教学结束了(遇到不懂的 地方请百度和查看我上传的使用说明书)
[Max Gold]
580F0000 014c7de0
620F0000 0000FFFF



相关知识

从零开始学会NS金手指 原理到制作
switch金手指怎么用
switch金手指合集包下载[3900+金手指代码]
制作 Switch 游戏金手指文件
全面指南:使用Aide工具从零开始制作手机游戏与开发技巧解析
6084款switch游戏金手指合集+使用说明(更新至2024年【switch交流吧】
游戏角色制作全流程:从零开始到上线
从零开始制作小游戏:入门指南
dnf从零开始工作服怎么制作 DNF管理校将杜罗西
手工星球 从零开始 掌握手工星球制作技巧

网址: 从零开始学会NS金手指 原理到制作 http://www.hyxgl.com.xishuta.cn/newsview391564.html

推荐资讯