以下内容完整转载自:Eiffel2018 原创发布:【金手指教程5】解鎖 FPS , MultiSearch 及 簡易找指針方法
前言
碍于手提游戏机性能, Switch 游戏很多都加了 30FPS 的限制。
这个宝可梦,限制了30 FPS。
这个小游戏,没有FPS限制 (你看到超过30FPS了)
本文介绍如何利用 EdizonSE 制作金手指 解锁这 FPS 限制
另外,也会讲解最新找指针技术
显示 FPS
为了显示 FPS 多少, 需要安装几个东西
1) Tesla (能在显示上盖一层遮罩,显示额外的内容)
2) SaltySD 及 SaltyNX-Tool (让背境程序可运行)
3) NX-FPS (记录FPS)
4) Status-Monitor-Overlay (在Tesla显示FPS)
另外, 为了提高FPS效果, 需要安装 sys-clk 超频
在安装上比较麻烦, 不过很多大气层安装包, 都已把这些东西整合(本文不详述)
但需要明白, 这些东西很耗用资源。
如果你的 SWITCH 经常出问题, 就不要开这些东西了
按 L+下+R3(即右磨菇) 打开 Tesla介面, 选 Status-Monitor 便可以 (如果上述东西, 你安装不齐全,那么 FPS 可能不出现的)
复合搜寻 Multi Search
本文用 宝可梦 0100000011D90000 讲解, 游戏锁定 30FPS 的
EdizonSE 带有 Multi Search 的功能,
用 R+B 退出 EdizonSE 之后再入来,便可进入这设定介面,
需要打开这个 (X)use extra search value 便可使用复合搜寻了
跟平常一样,按 Y 搜寻便进入这画面 (按 ZL+Y 则使用旧方式搜, 习惯了就好)
我做了个简单的 搜寻范本:multisearch.ini.rar
解压后 把 multisearch.ini 放进 TF卡/switch/EdiZon/ 内便可以用了
按 ZL,- 会直接呼出我上面这个画面。
每个游戏都可以使用 (只是有些游戏解锁了也没效果,需要再找其他地方破解吧)
搜 FPS 地址
使用范本后, 简单按一下 + 便开始搜了
快! 狠! 准!
结果总是只得一个!
如果内容是2, 就是锁定上限为 30 FPS
这内容是3, 就是锁定上限为 20 FPS
这内容是4, 就是锁定上限为 15 FPS
如果你把它改成 1, 就可以 60 FPS 了
回到游戏才看到效果的
不过若你是手提模式,最好放回底座, FPS 才明显增加
如果游戏仍没有很好的FPS (例如 MHR), 便需要超频
留意 GPU 不要加太高, CPU和内存反而没所谓。
(温度高于75,大气层好像会强制重启的,但我未试过,不确定)
总之我CPU和MEM都是24小时开到最高的. (平时,关了TESLA这内存吃货,就很少出错)
指针 Pointer
得到 解锁地址 后, 可重启游戏看看, 地址是否会变动。
若不能保证每次重启游戏 都得到相同地址,
那表示你这地址给别人, 他人也用不到。
这情况需要找出 Pointer 指针
现介绍 EdizonSE 搜指针的三种方法,
A) JumpBack
B) PointerSearch
C) Make Dump for PointerSearcher SE
JumpBack 方法
首先要进入内存检视页
然后按 ZL+B
等几秒之后, 可出现结果
这里有五个结果, 其中第三个的地址 是 main 区域, 可以直接利用
按Y Pick Source 便进入 main+4F90948 的位置
之后能发现一行 指针算式 [Main+4F90948]+F14
利用 L 和 R 可改变显示的地方. (留意指针算式中的太阳标记)
按 R 两下到最后位置, 即是刚才我们找到,修改过(由2改成1)的地址,
然后按 + BM add 把这地址添加到 Bookmarks 书签
用指针做金手指
加好之后, 再按一下L, 来到 BookMark页, 检查一下。
这里我们看到多了2个 Bookmarks
第一个是普通地址
第二个是带有指针的地址
在带有指针的地址上按+给它名字 ( FPS Unlock )
之后 ZL+L3 (即左磨菇)
这便能够自动生成金手指文件
相当方便!
你也可把内存改回2,
然后重覆上面的步骤,加一个 Lock 30 FPS 给他人还原之用
不过, 好像直接编辑会更方便
测试金手指
再次重启游戏, 打开金手指测试一下
开了 FPS unlock, 地址内容自动变1
开了 Lock 30 FPS, 地址内容自动变2
预期效果 !
你也可以进入游戏看看,FPS是否改变了。
# 有些游戏, 除了这个地址, 还要改其他的位置
例如 MHR, 你要再搜 浮点数 60 然后 30, 把30改为60才得到效果。
更有些游戏的FPS是另有机制的, 例如 卡比 , 在同一地图, 你走到不同的位置, 有不同的 FPS限制. 这个就很难找了
PointerSearch 方法
对于比较复杂的指针, 用以上JumpBack方法是不行的。
我们来说说 PointerSearch 的用法, 继续用这FPS地址作测试吧
需要在 Bookmark页面进行, 把光标指到你要搜的地址, 然后按 ZL+Y
这是 PointerSearch 的操作介面: Search Pointer V2
深度 max Depth
意思是你打算找的结果深度多少层,例如刚才的指针算式 [Main+4F90948]+F14, 我们称之为一层
Depth 1 这么简单, EdizonSE作者Tom认为这没有意思的, 暂时至少搜2层 (所以,现在凡是Depth1的结果都看不见的; 本人执笔之时,他说正准备重写这个 Search Pointer V2)
距离 Max offest Range,
这是 指针中 偏移值的大小, 如上例, F14这是偏移量, 如果你用F00便搜不到了, 要加大些, 例如0x1000比较正常。
(希望你还记得上一讲复合指令, 我们知道很多指令超出0x1000便要分开两句, 所以我习惯加到0x1000)
精准 Max num of Offsets
这个跟偏移值有关, 但不是说1会比2准, 用2搜也很可靠的
这是甚么呢, 说起来会很复杂… (以前我开发过SXOS用的PointerSearcher所以我是清楚的)
简单字面意思就是要 跳过多少个引子 呢
例如 A B C D E F G H I J 顺序排序
A跟D有接触, B跟D有接触, C跟F有接触, D跟G有接触, E和F接触过H, 最后G触过J
刚刚 I 检测到阳性, 需要找出病毒源头。
若 Max num offset = 1 即是Skip 0, 即是不能隔过带菌者找 (解读: 他是带菌者的话,受感染就必定因为他),
若 Max num offset = 2 即是Skip 1, 只可以不隔或隔过1个带菌者找, (解读: 虽然他是带菌者,受感染也不一定是他传出来的,可能是旁边住得更远的另一个带菌者所为),
若 Max num offset = 3 即是Skip 2, 最多隔2个带菌者的找!
I 先看自己有没有被其他带菌者接触, 没有的话,
看 I 旁边的 H 有没有被带菌者接触. 发现了疑似帶菌者E和确诊者F的出现 ,
如果 Skip0 那现在就只需要继续追查 E 和 F 了 (当然,我们是有记录那些疑似个案,以前查过的就直接取旧档案来用,效率很快的!)。
如果 Skip1 则需要跳过 带菌者H 去追查旁边的 G (这樣跳过了H,即Skip1次,即是num of Offset 2)
继续追查, 直至找到位于 Main 的 A 为之完成任务! 找到其他地方(Heap或Alias等)不算数。
最终, 用 Skip0 的话, 找到
A->D,E->H,I – 传播途径是 [[A]+1]+1
B->D,E->H,I 这种结果肯定错,源头必须位于main,删除!
A->D,E,F->H,I – 传播途径是 [[A]+2]+1 <– 跳过了F, 这是用Skip1才出现的結果
A->D->G,H,I – 传播途径是 [[A]]+2 <– 跳过了H, 这是用Skip1才出现的結果
所以,如果你用了Skip0方法,只得一条路线; 用Skip1有三条路线;
Skip数越大, 路线越多。
但你要明白, Skip0 得出的那一条路线, 可能不是真实的! (检定方法见后文)
正常方式, 你需要由小至大的增加 Depth, 试到有结果为止
最初是 Depth 2, Range 0x1000, OffsetNum 2
之后 Depth 3, Range 0x1000, OffsetNum 2
之后 Depth 4, Range 0x1000, OffsetNum 2
之后 Depth 5, Range 0x1000, OffsetNum 2
如此类推, 去到 7都找不到, 便加大 Range 或 OffsetNum
再找不到, 就用ASM做金手指好了 (小提示: 用 GDB 下断点,也可以准确的得到指针最后一个偏移值)
注: 因我想不到其他贴切例子, 用了这个病毒传播链可能会令人不安,实在抱歉
(管理大大: 如果有问题, 或者改成AIDS好了)
若你明白这原理,根据不同游戏引擎使用不同的合适参数,找指针就会快而准
只用了6秒就找到指针!
筛选指针
找到指针后, 结果会自动添加到书签页
如果一些正常的变数,金钱,HP等, 侯选的指针可能有几百个
我们必须筛选掉错误的。
以往有使用 Pointer Searcher 经验的大大, 需要改变观念. 这方法不用再做第二次查找,不用再做Dump,不用再进行NarrowDown的!
我们回到游戏 改变画面, 改变敌人, 或是改变关卡, 甚至重启游戏,
之后再来这 Bookmarks页面, 按 Y 进行 Bookmark Search,
输入现在的值去寻找,EdizonSE会用找出的结果对比 Bookmarks 上的值, 自动减少。
(因上面我用的例子没有多大变化,所以这 Bookmark Search 功能未能演示给大家看)
最后, 剩下的 Bookmarks 可能不止一个, 选个比较简短的便可用来做金手指。
(小提示: 如果是 Unreal Engine 或 Unity 引擎的, 经常都有 [[[main+xxxxxx]+B8]]+…. 之类的指针格式出现)
PointerSearcherSE 方法
这算是最传统,最流行的方式,
由从前 SXOS+PointerSearch 之后 Noexes+PointerSearcher 到现在 EdizonSE+PointerSearcherSE,
一直演变,大家都仍在使用。
这方法比上面两种更靠谱,可找出更复杂的指针,
只要花更多时间(做Dump和NarrowDown), 也可以比较准确的结果
由于篇辐太长, 不举详细例子了, 反正都是需要自己多练习才能掌握的
这里只介绍一下 使用EdizonSE做Dump, 在 PointerSearcherSE 打开, 然后把结果抄回EdizonSE生成金手指的方法
1) 使用EdizonSE做Dump
同样需要在Bookmark页面, 把光标指到一个目标, 按 ZL+Y 才能进入 Search Pointer V2 介面 (无论怎样,你都要找一个地址,然后+BM它)
所不同的是在 Search Pointer V2 介面中, 只需要再按一下 ZL+Y
等一会就生成了 .dmp 和 .att 文件
为方便起见, 我会重启游戏,再搜一次相同的结果,然后再做Dump
容易搜的游戏,2个dump很足够; 但有些难搜的,我试过用9个dumps也好像不准确!
不过通常是,遇到指针错误时,那时再搜再Dump才是最佳时机。
在FPT打开,
我用同一位址,重启游戏做了三次Dumps 所以有三组 dmp 和 att 文件。
全抄到PC上
在PC开启 PointerSearcher.exe
因为 exe 文件容易受病毒感染, 最好在作者的 官方网页 下载
开启后 (由于是网页下载,所以WINDOWS可能警告你这是否可靠来源),
读入刚才的三个 dmp 一行一个文件的读入
不妙, 第一个dump怪怪的, Main地址和Heap地址都重叠了, 这应该是坏的,不能用!
只好关了 PointerSearcherSE 再开, 略过第一个 dumps
之后,第一步是按 Read 1st Dump Data, (这是让内存做一个索引表,方便一阵查找,Read一次就够)
之后要设定好 MaxDepth深度 / OffsetNum精准度 / OffsetRange偏移距离,
然后按 Reset and Search, 若没有结果, 调大MaxDepth直至你找到一堆结果为止 (原理跟上一个方法相同,不详述)
之后,可以利用第二行或第三行(如果有)做筛选, 右边打勾,之后按NarrowDown
结果数量会减少,而且比较准确 (原理是这剩下的指针,都可以匹配到所有打了勾的Dumps的正确位址)
之后按一下 Export To Bookmark 就完成,
此时生成了一个 bmk文件, 可用FTP抄回去刚才Edizon的目录
(也可能会有权限问题,要离开 EdizonSE 介面才能用 FTP 抄文件的)
然后在 Bookmarks页按一下 ZL,+ 便得到刚才的Bookmarks结果了。
你可以再进进出出(或重启)游戏, 看看Bookmarks内这些剩下的指针是否正确。
然后如同之前的方法般, 选一个简单的 按+改名, 按 ZL+A做金手指, 再ZL+L3生成金手指文件
大功告成! 可把金手指文件压缩, 到 91TVG 发表。
特别鸣谢
以下内容完整转载自:Eiffel2018 原创发布:【金手指教程5】解鎖 FPS , MultiSearch 及 簡易找指針方法
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
本站资源,请 注册城通账户 后,使用客户端下载,参考教程:城通网盘如何使用客户端下载文件。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。