本教程为露易娘个人原创教程文章,转载请注明!因为本文章会根据新版本更新而改动请注意!本教程会根据Switch系统版本更新而更新使用方法
在SXOS里的金手指功能搜索到的结果会有三种
1.[MAIN+0x00000000]
2.[HEAP+0x00000000]
3.[BASE+0x000000000]
1.MAIN类型代码基本都是固定不变,如果找到这种类型代码并且修改数值有效的话直接写好对应金手指格式即可。

2.HEAP类型的代码大部分都是不固定的位置,你会发现每次重开游戏后再去搜索到对应位置都和上次找的位置不一样,所以即使你写好金手指代码给别人用基本都无效改不了,但是也不排除个别游戏是固定HEAP的,这个要自己多次测试才知道。

3.BASE类型代码就和 SXOS金手指官方使用指南原文 上说的一样,不支持写入或者修改BASE类型位置的代码,再加上BASE的位置代码有9位数,所以基本找到这个代码后就等于是没找对,无视即可。
补充:在救助队DX游戏里BASE位置是有效的,所以要第一反应这是不是指针能定位的位置

因为不是所有游戏都一样,都能从SXOS自带的金手指功能上找到可用的MAIN代码。
相信很多人都想知道如果找到了HEAP的代码怎么转换为MAIN方法。
但是以上的“转换”说法是错误的,你是没有办法从SXOS找到的HEAP去“转换”成MAIN代码
一般你得到HEAP后就要反应过来,你要找的地方位置是有指针的,所以你要想着怎么去获得这个指针的主代码就行了。

所以要获得指针就无法使用SXOS自带的金手指功能去找了,要用Noexes去找。
使用工具
Noexes
JAVA10

054e4f4558454000.zip解压放入大气层文件夹里,NoexsClient.jar是电脑端用的软件需要安装JAVA10才能运行
之后直接进入要找金手指的游戏,进入游戏后电脑打开JNoexsClient.jar
JNoexsClient.jar 只能在 JAVA10 环境下运行,所以电脑请安装好直接打开

JNoexsClient.jar 里的 IP Address 输入Switch的IP地址
设置—网络里查看IP地址,对应输入后点 Connect 连接
PID Selection 栏里点击 Refresh Pids 获取Switch主机正在运行的APP程序
打开游戏后基本就是最后一个,选中后查看Title Id的编号对应
之后点 Attach To Process 添加到进程,左侧一栏就会出现游戏的内存
noexs_1
拿「ネルケと伝説の錬金術士たち ~新たな大地のアトリエ~」这个游戏为例子
找最简单的金钱位置

点 Search 项,在 Value 输入游戏里看到的金钱数值,然后再点 Convert Decimal to Hex 转换为16进制
之后直接点 Search 搜索,无论游戏多大,第一次搜索都会很慢,慢慢等搜索Dump完数据
noexs_2
搜索完毕后在游戏里变动金钱数值
再次输入变动后的数值,再点下转换16进制去搜索
如果忘记点转换或者输入错了可以点 Undo Search 退回上一个搜索结果再重新输入
noexs_3
获得这次打开游戏所显示的位置是 578C253C10
可以右键选择 Memory Viewer 查看内存
如果搜索其他方面的数值得到的结果有很多个的话,可以右键点 Watch List 观察每个结果数值的变化
Memory Viewer 或 Watch List 里进行修改查看游戏变化

确认地址是 578C253C10 后,在 Search 栏里点 Restart Search 重新搜索清空结果

在 Tools 栏里找到 main 名字的那行,右键点 Search(Start)
然后在选择 main 的结尾地址,也就是下图所显示的 sdk 处右键点 Search(End)
noexs_4
回到 Search 栏直接点搜索
这个操作单纯是截取 main 区域范围的地址,搜索数值随意
因为无论怎么说只有 main 范围的地址才是有效地址做金手指
noexs_5
在 Pointer Search 栏里
Dump File 找到刚刚截取dump的dmp文件
文件都在 JNoexsClient.jar 文件存放的地方,每次搜索都会生成tmp文件夹就在里面
时间排列下就能找到一般才几十M
Address 输入搜索到的地址 578C253C10
下面 main 输入main开始的位置也就是 578AE04000
Max Offset 也就是最大的偏移值量,通常会在第四位改成F就会得出指针结果,也就是 0000F000
之后点击 Search 搜索看看 Output上 有没有显示结果
如果没结果继续在后面加个F,一个一个加上去看结果,往后加例如 000FF000
noexs_6
庆幸只出了一个结果 [main+11a3ab8] + 42f8
这就是要找的指针偏移码

Noexes获取的偏移值指针代码是Noexes用的格式
用下面软件转换为SX用代码
Simple SX OS Code Builder - beta7.exe
code format 点 Pointer
左侧的 address (MAIN+0x) 将会变成下拉
之后选择 noexs format
直接粘贴 [main+11a3ab8] + 42f8
最后点 create code 就会生成SXOS用的金手指代码
noexs_7
转换后SXOS用的金手指格式就变成下面这样 (X部分填上16进制数值)
580F0000 011A3AB8
780F0000 000042F8
640F0000 00000000 XXXXXXXX

切换回SXOS使用这个金手指确定能改成功的话,证明这个指针没有找错

Noexs Format使用方法

当然切来切去还是挺麻烦的,还得生成SXOS用的金手指
可以把找到的偏移值代码 [main+11a3ab8] + 42f8 保存下来
之后关掉游戏重新打开再让Noexs连接读取到这个游戏
在 Tools 上 Expression 填入 [main+11a3ab8] + 42f8 点 Parse 得出的地址
noexs_8
粘贴到 Memory Viewer 查看内存判断下数值位置或者修改下当前位置的数值
如果地址没错能改的话,那么这个 [main+11a3ab8] + 42f8 的指针就是没错的

[main+11a3ab8] + 42f8 这类代码(noexs format)不仅能给SXOS破解用户做金手指用
也能给没用SXOS的破解党用,直接在 Expression 获取现游戏的内存位置修改
可以加入 Watch List 里锁定固定数值


游戏每次打开或重开内部的内存代码都会变化
所以要利用指针偏移值让它自动定位
同时要通过这个方式去测试判断你找到指针是否是对的
不然你的代码发出去之后别人肯定用不了

当然指针代码也不是最稳最安全的代码
如果出现可用但是会造成奔溃的情况证明指针并非最准确
部分游戏的规律是没有进入到指定环境下,这个指针都是在其他地方
所以就会有其他地方先被修改,然后进入指定环境后再跳到对应地方修改
这样的情况往往会导致游戏奔溃
教程就到这里,剩下的细节各种知识怎么找想要改的地方请自行积累常识经验吧。
喜欢我的原创教程请关注微博 露易娘 等相关我个人的网站~