Hacking [RESOURCE] NTR Debugger (My fork)

DKB

NO
Member
Joined
May 29, 2015
Messages
2,243
Trophies
1
XP
4,991
Country
United States
Cool. Good that you're doing this, since I hate seeing projects that have a lot of potential later on go to waste myself. Even if it's small changes.
 
  • Like
Reactions: DesuIsSparta

DesuIsSparta

Well-Known Member
OP
Member
Joined
Oct 13, 2015
Messages
580
Trophies
0
XP
1,037
Country
United States
Worth mentioning i'm now working on a multiplatform version, being rewritten in Java.

088c0dc082.png

Many more features to be included in the multiplatform than the original, such as proper macros and better debugging.
 
Last edited by DesuIsSparta,

Syphurith

Beginner
Member
Joined
Mar 8, 2013
Messages
641
Trophies
0
Location
Xi'an, Shaanxi Province
XP
364
Country
Switzerland
If you want, I suggest you to make another type of this. Typing commands looks cool sometimes, but it is not that easy to use.
Connect Dialog, Process List, Memory Layout, Data Dump/Data Write.. GUI with context menu.
You would need to use Delegate to pass data from Receive Thread to UI Thread to update data/view.
Yeah you can think after some time.. If you wish. And still good for you to take look at any code, yup.
 

DesuIsSparta

Well-Known Member
OP
Member
Joined
Oct 13, 2015
Messages
580
Trophies
0
XP
1,037
Country
United States
Wanted to do this too , but I think it is yours now :)

If you were planning to do so in Java, I'll open source it soon so you can contribute if you're interested :D

With it I could make screenshot of NTR Menu? I want make screenshot of Menu NTR. How?

Are you asking how to make a screenshot of the 3DS Screen while the NTR Menu is up? That's something you'd have to do from your CFW I believe.

If you want, I suggest you to make another type of this. Typing commands looks cool sometimes, but it is not that easy to use.
Connect Dialog, Process List, Memory Layout, Data Dump/Data Write.. GUI with context menu.
You would need to use Delegate to pass data from Receive Thread to UI Thread to update data/view.
Yeah you can think after some time.. If you wish. And still good for you to take look at any code, yup.

No worries, commands are mostly optional, there will be a 'buttons mode' as well, for easier use. I personally prefer commands but buttons are good for people who don't like typing or who don't want to wait.
Good suggestion though!

Why the C# hate? :(
Either way lookin good. :)

Thanks :) I don't like c# because I have no idea how to organize the project properly.. I've used Java for a few years now so I'm pretty confident in my workflow. I use Maven for dependencies and compiling, JUnit for unit testing, and organize all of the files into single (mostly) class files in the appropriate packages. I try to write somewhat modular code, though I often get stressed over trying to write the most modular code possible and end up not working on the project :P so I'll just do what works and fix it when I have more time.

I would really like to use C#, since I do know how to program some things in it, however I haven't found a good project flow and structure resource, which kills me because I have some weird programming OCD.
 
  • Like
Reactions: Syphurith

Keizel

Well-Known Member
Member
Joined
Jun 28, 2015
Messages
381
Trophies
0
XP
372
Country
United States
I do not make screenshot while the NTR Menu is up, I hold "hot keys" or "take screenshot" but only do the screenshot when NTR Menu is down :( For this cause, I asked if with Debugger I could screenshot to the NTR Menu.
 

DesuIsSparta

Well-Known Member
OP
Member
Joined
Oct 13, 2015
Messages
580
Trophies
0
XP
1,037
Country
United States
I do not make screenshot while the NTR Menu is up, I hold "hot keys" or "take screenshot" but only do the screenshot when NTR Menu is down :( For this cause, I asked if with Debugger I could screenshot to the NTR Menu.

I don't know if it's possible, but i'll look into it. Better to ask the firmware developer, though, since this is simply a tool attached to the firmware, not an edit of the firmware itself.
 

_eyCaRambA_

Well-Known Member
Member
Joined
Apr 22, 2009
Messages
525
Trophies
1
Location
Right around the corner™
XP
409
Country
United States
  • Like
Reactions: DesuIsSparta

DesuIsSparta

Well-Known Member
OP
Member
Joined
Oct 13, 2015
Messages
580
Trophies
0
XP
1,037
Country
United States
I asked with him but he never answered. Is possible because in the web is possible see screenshot of old NTR versions:

https://40.media.tumblr.com/08b66d2b836271b25467d6f01ac99dc1/tumblr_nwxtzqgdkI1rmzb08o1_400.png

Sorry dude I really don't know. See the above reply, since it could just be a capture card used.

any good tut's on how to use this i don't have a clue how to find cheats im used to cheat engine type thing

- Run CTR
- open the game
- enable debugger
- open debugger on your pc
- use command 'ListProcesses()' on the debugger
- Find your title ID in the processes listed, and take note of it's address (for example ALBW on my 3DS is 0x28)
- use command 'MemLayout(PROCESS ID)' to see the accessible memory ranges. For most games, your cheats will be in the 4000000 - MAX_SIZE range
- (OPTIONAL) Dump your current ram by using the 'Data' command. Example: "Data(START_ADDRESS, END_ADDRESS, file='FileName.OptionalExtension', pid=PROCESS_ID). Note: This can take a while, might be faster on N3DS. Mine usually takes about 5 minutes to dump. It's not a problem with the program, but rather a problem with the 3DS or the NTR firmware; i'm not sure which yet.
- Use command 'Data' to check the values at a certain address.
- Use command 'Write' to [over]write the data

Here's a better tutorial (I can't find the post but I take no credit for this).
How to use NTR CFW + Debugger with ARCode Cheats

You need:

- A retail Cartridge or legit CIA buyed from eShop
(unsigned cia works with pre bootet PASTA CFW)
- Cubic Ninja with NTR QR Code
- NTR.BIN in root folder of internal memorycard
- Create empty file 'debug.flag' in root folder of internal memorycard
- NTR Debugger
- Activated WLAN with Internet and a PC in the same Network

debug.flag or activate it inside NTR Menu (press X+Y)

Used Commands:

To connect to your console's IP use:
connect('XXX.XXX.XXX.XXX', 8000)

A few games disconnect wlan when playing movie / loading,
if that happens, don't close NTR Debugger, re-connect it!

To get your App/Game's PID:
listprocess()

Example MH4U-EUR:
(pid: 0x00000028, pname: redgiant, tid: 0004000000126100)

PID might change once per boot!

You can find TitleID's for games here: http://3ds.essh.co/

To write your value:
write(0x<OFFSET>, (0x<VALUE>, 0x<VALUE> ,0x<VALUE> ,0x<VALUE>), pid=0x<PID>)

OFFSET = Cheat Offset // VALUE = The Value you want to write // PID = The Apps/Games Process ID

NTR Debugger:

- Start Cubic Ninja and execute NTR Exploit
- Start your desired game
- Start NTR Debugger on PC
- Connect NTR Debugger Example: connect('192.168.1.100', 8000)
- To get the PID, write listprocess() and look for your Games TitleID (TID)

As example i took PID 0x28.

Now how to use ARCode:

Example ARCode
-=[Paper Mario Sticker Star]=-
$9999
02CBCE9C 0000270F

NTR will be 14000000 + ARCode Offset = OFFSET:
write(0x16CBCE9C, (0x0F, 0x27 ,0x00 ,0x00), pid=0x28)

If the resulting value beyond valid memory range,
you will have to calculate it like explained here: >CLICK<

Depending on what you cheated, it might be necessary to
buy/sell,enter/exit map/house or gain exp to take affect.

To dump your games flash memory:

Additional Commands:

Display Apps/Games Memory Layout:
memlayout (pid=0xPID)

Example MH4U (EUR):
valid memregions:
00100000 - 0111dfff , size: 0101e000
08000000 - 0b13efff , size: 0313f000
0ffc0000 - 10000fff , size: 00041000
10002000 - 10002fff , size: 00001000
1e800000 - 1e9fffff , size: 00200000
end of memlayout.

You have to find the region where your value
belongs to! In most cases, it will be inside
the region that covers offset around 14000000!

To DUMP memoryregions:
data(0x<START OFFSET>, 0x<size>, filename='<name of the file>', pid=0x<PID>)

To find cheats:

Make as many dumps you need and use Cheatengine to find your offset.

Example:
Dump 01 > 1000
Dump 02 > 2000

To use Cheatengine with dumped files:
Press "Open Process", then press "Open File" and choose
your file. After searching, switch to the next dump.

To get the real offset from Cheatengine to NTR it's:
<START OFFSET> + <FOUND OFFSET> = <OFFSET>

To write the offset with your value (4 Bytes): (Example 50000 dec // 0000C350 Hex)
write(0x<OFFSET>, (0x50 ,0xC3 ,0x00 ,0x00), pid=0x<PID>)

To export the offset to ARCode (HEX):
<START OFFSET> + <FOUND OFFSET> - 14000000 = <ARCode OFFSET>

If the result is negative (<0), ARCode is unable to use the cheat if you don't convert it!

Arcode > NTR will work like explained here: >CLICK<

For a few games, the found offset is not fixed and you need to find it once per use.

You are free to copy my Tutorial as long you share it for everyone!


Quick question; does NTR Debugger work on Old3DS?

Yes. I use the O3DS XL. NTR works on any device whose base firm is supported. If you're running through ReiNand or RXTools you're good to go. my 3DS emunand needed to be updated in order for it to work, though (9.2 -> 10.5)
 
  • Like
Reactions: Deleted User
D

Deleted User

Guest
Yes. I use the O3DS XL. NTR works on any device whose base firm is supported. If you're running through ReiNand or RXTools you're good to go. my 3DS emunand needed to be updated in order for it to work, though (9.2 -> 10.5)
Ah, that's brilliant! So it should be able to work on rxtools 10.3 emunand then. :)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    B @ btjunior: i love sigma meals, skibidi slicers!!