【3DS】3DS断点的使用方法

作者 游戏~年轮用户上传   2021-09-29 15:45:30

  断点环境

  3DS进入NTR CFW自制系统 加载游戏的同时按住十字键← 上屏会闪烁几次 然后停在入口点 不会进入游戏

  PC端打开NTR Debugger 连接到3DS 连接方式跟之前非断点方式不太一样 命令如下

1

connect('3ds的IP地址', 5000 + 0xID编号)

  IP地址就不说了 ID编号也就是游戏所在内存的ID 此时按X+Y打开NTR菜单 选择Process Manager 光标移动到最后 一般倒数第二个或者第三个就是ID编号 可以通过按A键进入后的info菜单中的游戏ID来确定 比如ID编号为00000028 那么上面就填入28即可

  连接上之后提示你输入

1

continueprocess()

  输入该命令就可以进入游戏了

  添加删除断点

1

bpadd(addr)

  添加代码断点,如果要添加thumb格式的代码断点,就是

1

bpadd(addr,'thumb')

1

bpdis(id)

  禁用代码断点

1

bpena(id)

  启用代码断点

  可以添加32个

1

wpadd(addr)

  添加内存断点,默认是添加一个字宽为4字节的读写断点,如果要指定字宽跟读写属性的话,

1

wpadd(addr,'wide','type')

  wide可选'b' 'w' 'dw',代表1字节、2字节、4字节,type可选'l' 's' 'ls',代表读、写、读与写

1

wpdis(id)

  禁用内存断点

1

wpena(id)

  启用内存断点

  因为硬件限制 这里只能添加2个 所以id为0 或者 1

  禁用断点后 输入一下命令来恢复游戏运行

1

resume()

  如果还是不断触发断点 可以用下面的命令删除内存断点

1

wpdel(id)

  查看游戏中某个地址数据的命令为:

1

data(0xDDDDDDDD, 100)

  或

1

data(0xDDDDDDDD, 0x100)

  DDDDDDD为你所想查看的地址 后面如果直接写100为十进制计算 0x100则按16进制计算显示的数据长度

  查看其它寄存器

  触发断点后 可以通过以下命令来查看其它寄存器的数值

  display()可用来显示一些寄存器信息 具体使用命令如下

1

display('single')

  显示s0-s31寄存器的值

1

display('double')

  显示d0-d15寄存器的值

  以上命令只能在断点触发后使用

  显示使用的断点

  以下命令用来显示当前存在的断点

1

display('breakpoint')

  显示所有breakpoint

1

display('watchpoint')

  显示所有watchpoint

  这两个命令在未触发断点时也可以使用

  单步执行

  在触发断点后 可以用以下命令来单步执行

1

step()

  可以用resume()来退出单步执行

  分析断点

  用IDA PRO打开断点所在区域的内存 并通过获得的断点数据来分析

    用户名: 密码: 匿名评论
  • 评论
人浏览,条评论