Ursule 发表于 2022-6-13 15:18

改《火焰纹章:风花雪月》人物属性过程

1. 前期
   1. 使用Switch YuZu模拟器游玩火焰纹章:风花雪月第二周目时,选了个经典模式,对角色加点感到焦躁,总是每次升级就加两点属性。索性开始开挂。
   2. 前期已经尝试使用Cheat Engine修改金钱,可以套用普通PC程序的修改套路。
   3. 前期遇到过搜索缓存过大,直接把C盘占满的情况,Switch rom体积太大,建议不要使用范围搜索。
   4. 目的是修改其中任务的属性值,避免随机加点带来的焦躁。
2. 探索
   1. 在关卡中使用CE搜索精确值,升级变换后再搜索,尝试多次没有结果。
   2. 再整备中使用药品提升属性值,使用CE搜索没有结果。
   3. 考虑不同变量类型搜索,没有结果。
   4. 考虑未知初始值搜索,搜索变化值,C盘爆满,卡死。
   5. 考虑直接修改存档,使用二进制查看结构,可以清晰的看到两种结构。
      1. 直接分析太难了
      2. 使用WinMerge进行Diff分析
         1. 读取一次存档,再存储到另一个存档位,两个不同时间的同样内容的存档使用Diff分析。
         2. 存档携带时间信息,而且大概有两处校验数据存在。
         3. 记录校验信息位置,用作参考信息。
         4. 读取一次存档,给一个角色吃一个加属性的药,再存储到另一个位置,两个不同的存档Diff分析。
         5. 去除校验信息干扰,得到人物角色的属性值存档值位置。
         6. 分析数据结构,为1字节一个属性值,这就是为什么上面我没有搜索到结果,我直接用的4字节。
         7. 数据结构大概为:HP,力量,魔力,技巧,速度,幸运,防守,魔防,行动,魅力。其他的暂时没看。
      3. 直接修改存档,进入游戏无法读取存档,存档损坏,说明真的存在校验。
3. 思考实验
   1. 找到了搜索不到的原因,无法解决存档校验问题,只能回到游戏中,使用内存修改。
   2. 为了减少搜索缓存使用量,搜索值类型搜索2字节。按照分组将数据两两分为一个数进行搜索和修改。
   3. 【未知,HP】,【魔力,力量】,【速度,技巧】,【防守,幸运】,【行动,魔防】,【未知, 魅力】
   4. 使用吃加属性药进行数值变换操作,得到内存地址。内存结构是按数据结构来的,相应地址加加减减,就能都得出来了。
   5. 修改过后,和游戏内数据进行对比,发现每个人的数据都有几项有修正,内存里的值和显示的略有差异。
   6. 尝试找原因,可能是料理功能,但是我实验的是游戏内的月初,没有吃过料理,可能是装备因素,装备卸掉,还是存在差异。Buff影响的较多,有的会直接HP+5,速度+5这样的。但是不携带此类Buff还是存在差异。应该是每个人都存在修正。
   7. 修改行动时发现每个人的行动都是有上限的,还各个不一样,当达到上限之后就不会增加了。移动就是移动多少格。
4. 综合应用
   1. 重新理一遍,因为每个人的修正值不一样,所以看游戏内的数值进行搜索修改是不太行的。
   2. 应该先吃加属性药,吃药前后属性值变化,通过存档Diff,看出内存中的属性的实际值,得出人物相应的修正值。
   3. 再搜索内存变化,便能得到内存地址,根据数据结构进行大范围修改。
5. 结果
   1. 不太建议游玩游戏开挂,尤其还是策略型游戏。

yu924504392 发表于 2022-10-27 17:29

厉害👍🏻厉害👍🏻👍🏻👍🏻👍🏻

netpeng 发表于 2022-6-13 17:16

这个用金手指也能实现修改属性吧

aonima 发表于 2022-6-13 17:40

不错,感谢分享

cheny12120 发表于 2022-6-13 17:52

原来是模拟器,我还以为是真机子上{:1_907:}

CZNemo 发表于 2022-6-13 17:55

不错,感谢分享

kyknknt 发表于 2022-6-13 18:19

感觉跟普通pc游戏没太大差别啊。。

liu2514 发表于 2022-6-13 18:31

switch玩家路过,金手指适量还是不错的。感谢分享经验。

pepsicood 发表于 2022-6-13 20:14

模拟器的话不能通过SL大法吗?

好好学习多挣钱 发表于 2022-6-13 20:31

感谢分享,回头下个模拟器试试

qqxiazhitmac 发表于 2022-6-13 20:57

支持一下
页: [1] 2 3 4 5 6 7 8
查看完整版本: 改《火焰纹章:风花雪月》人物属性过程