NTR Debugger修改器是一个由国内的玩家制作的一款3ds游戏的内存编辑工具,在活用这个工具后可以达成修改游戏的类似金手指的效果,目前该工具正在完善,拥有基本的修改功能,目前提供使用测试中。目前NTR Debugger暂时只能运行在emu4.5,换句话说也就是只能改一些系统要求4.5或以下的老游戏。
修改具体思路:
1、PC和3DS处于同一局域网,打开NTR,连接3DS。
例如:connect('192.168.1.101', 8000)
2、然后输入 listprocess() ,列举目前运行的进程,
NTR会列举出3ds运行的所有进程,很长的一列。
一般情况下游戏进程pid是0x25,位于倒数第二个,但也不排除游戏退出之后进程pid会变的情况,所以最好上来先查一遍。
3、显示进程内存布局,命令是:memlayout(0x25),括号内是进程pid。
之后会显示几个分段,有起始地址和长度。
0x08000000起始的区段为堆栈段,0x00100000起始的区段为数据代码段,要找的地址一般在这两个区域。
4、dump内存。
如data(0x00100000, 0x10000, filename='data.bin', pid=0x25) ,即把在0x0010000起始的0x10000个字节保存到NTR目录下。
要搜的区段只有第三步所述的两个,所以一般情况下起始填0x00100000或者0x08000000,长度填第三步中显示的区段长度就好。
另外,因为要比较数据,所以建议重命名保存的文件名,如Data1.bin、Data2.bin等等。
5、搜索Dump出的文件,比较数据。
楼主没有用原帖提供的search.py,机器没装python的环境。
用16进制文件查看器比较就好,楼主平时hexworkshop用得比较习惯,其他像hxd,ultraedit也是可以的。
6、写入内存。write(0x00100000, (0x11, 0x22, 0x33, 0x44), pid=0x25) ,字节序列没有什么限制,注意格式别写错了就好。
例如:write(0x003c0a50, (0xff, 0xff), pid=0x25),这是解放之刃EXXiV金钱65535的命令(捣鼓了好久就找到这么一个,楼主果然还是太菜了。。o(╯□╰)o)。
软件介绍:
可以查看、修改应用程序的内存。
基于gw2.2,只支持emunand 4.5系统,如果emunand里的系统版本大于4.5请重新用gw官方的launcher.dat进行format emunand操作。
不支持神游。
另外,在游戏中按下X+Y可以弹出一个菜单,不过目前截图功能还没做好。
NTR Debugger 3DS游戏基础修改图文教程
↑在遊戲中先獲得一枚金幣
↑開啟NTR Debugger 中的ntrclient 應用程式 ,如圖 輸入 connect('192.168.1.101', 8000) 連上你的 3DS IP
↑連上IP後,接著再查看內存的分佈,輸入 memlayout(0x25) #,圖中我選size最大的去dump
->14000000 - 1784ffff , size: 03850000
↑dump好第一次之後你會看到NTR Debugger目錄底的有剛dump出來的 data.bin ,接著開啟下方的search 展開搜尋
↑load剛獲得一枚金幣的 data.bin ,輸入 start byte 或 start word 或 start dword 開始新的搜尋
想尋找的數值比較小,於是我輸入 start byte ,接著輸入 search 0x01 搜尋 ,搜尋完後會告訴你有多少結果
↑獲得第三枚金幣 ->dump->load->search 0x3
↑試著獲取更多金幣 ->dump->load->search 0x9
按View查看還是都一樣
↑我們從第一個列出的位置 寫入數據到遊戲中,write 命令 寫入遊戲的內存
write(0x168b5fa8, (0x0E, 0x27, 0x00, 0x00), pid=0x27) #
3DS的數據要相反來寫入,寫入後再輸入 data(0x168b5fa8, pid=0x25) # ,可以看到 0x168b5fa8 附近的value於畫面上
↑寫入後 回到遊戲中 右上角金幣就會是我們剛輸入的 9998 (0x270E)