找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2579|回复: 0

[其他] 最新大气层功能GDBstub开发金手指教学

[复制链接]
  • TA的每日心情
    奋斗
    2024-1-12 16:13
  • 签到天数: 2 天

    [LV.1]初来乍到

    231

    主题

    9

    回帖

    793

    积分

    VIP会员

    积分
    793
    发表于 2021-11-6 16:18:18 | 显示全部楼层 |阅读模式
    前言: 在这方面我只是个新手, 今天才刚刚学会的.

    这主要是用来开发ASM金手指的工具, 需配合大气层最新版本 v1.2.4 方可

    本文重点: 当你找到一个地址后,如何把它改为ASM金手指?

    建议安装 NOEXES  (这是最新版本,兼容GDBstub)
    游客,如果您要查看本帖隐藏内容请回复

    需要重启大气层
    1636144211063.png

    还有,重启前记得修改大气层setting,加一句才可让GDBstub生效
    enable_standalone_gdbstub = u8!0x1

    之后你可以正常游戏,打开NOEXES找寻一个要修改的地址
    以下我用 Noexes找到的 0x571C477C40 生命值作为例子

    具体步骤:

    安装 devkitPro https://github.com/devkitPro/installer/releases  
    游客,如果您要查看本帖隐藏内容请回复

    在 CMD 打开 C:\devkitPro\devkitA64\bin\aarch64-none-elf-gdb.exe
    输入 target extended-remote 192.168.1.94:22225  <<< 其中192.168.1.94为你的SWITCH IP
    输入 info os processes <<< 可列出现在有哪些PROCESS (这个跟NOEXES看到的一样)
    输入 attach 135 <<< 这个135是游戏的Process ID,通常是上表列出的最后一个ID
    输入 x 0x571C477C40 <<<< 可以查看这地址的内容
    输入 x/u 0x571C477C40 <<<< 可以用看到十进制内容
    输入 set {int}0x571C477C40 = 100 <<<< 这句意思是把该地址的值设为100 (这只是教学,平常不用这样做的)
    输入 watch *0x571C477C40 <<<< 设定一个 breakpoint (只查看甚么地方写入这地址. 如果你想查看甚么位址存取这个,可以改为awatch)
    输入 c 或者 continue 让停止了的游戏继续
    随便玩一下,当生命扣减时,这游戏就会停顿,我得到以下内容
    Thread 2 "MainThread" hit Hardware watchpoint 1: *0x571C477C40
    Old value = 100
    New value = 90
    0x00000004b58fc3a4 in ?? ()
    重点就是最后这个 4b58fc3a4, 要知道他的意思可输入
    monitor get mapping 0x04b58fc3a4

    QQ截图20211106161706.jpg

    得到以下内容:
    0x04b5404000 - 0x04b7d9bfff r-x Code             ---- [0, 0]
    用小算盘的程式设计人员工具计一下
    0x04b58fc3a4 - 0x04b5404000 = 0x4F83A4
    所以我已知道 main+4F83A4 就是我要找的答案
    在 IDA PRO 确认一下, 正是那里
    QQ截图20211106161713.jpg

    至于如何改ASM,或者怎做金手指.
    你可参考以往我们做的金手指,
    经常都是用NOP代替了STR写入那一句. 可以做出那些 XX不减 的金手指
    又或者把 ADD w0, w1, w2 改为 ADD w0, w1, w2, LSL 3 便成為 XX增加倍率
    至于敌我判断,就需要更深一层经验与及更多时间去分析了.


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|深圳斯威奶牛科技有限公司 ( 粤ICP备14034528号-1 )|网站地图

    GMT+8, 2024-5-29 15:21 , Processed in 0.056013 second(s), 29 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表