Homebrew Python Tools for 3DS

  • Thread starter Thread starter Rinnux
  • Start date Start date
  • Views Views 48,504
  • Replies Replies 154
  • Likes Likes 3
I mentioned this in the Fierce Waffle ram dump thread. He is working with naehrwert to get an open homebrew solution going on the 3ds by reversing the GW launcher.dat and gaining code execution. They each have their own separate repos for their projects although naehrwert is the author of these scripts.

The python scripts serve two purposes. One generates a Ram Dumping launcher.dat not unlike Fierce Waffle's. The second, 3dsploit, also generates a launcher.dat but this one loads a 'PAYLOAD' string* of ARM11 assembly presumably to do 'fun things' with 3ds. I'm not sure if this is in kernel mode or not, maybe someone could clarify that or any other lie I've might have told in this post.

*its empty, presumably for the user to fill in their own 133t haxx
 
  • Like
Reactions: emo kid 68
How do I compile the python file into the Lancher.dat file?
Find these lines at the end of the script and remove the #'s to uncomment them.

#f = open("Launcher.dat", "wb")
#f.write(rop)
#f.close()

Then run the script to generate the launcher.dat
 
Can someone explain these addresses?

ramdump.py

r.call(0x1B82AC, [0x279000, Ref("fname"), 6], 5)
r.call(0x1B3B54, [0x279000, 0x279020, 0x100000, 0x300000], 9)

3dsploit.py

r.pop_r4(0x279020)
r.i32(0x1C1958)
r.i32(0x44444444)
r.call_lr(0x10C2AC, [0x279024])
 
Can someone explain these addresses?

ramdump.py

r.call(0x1B82AC, [0x279000, Ref("fname"), 6], 5)
r.call(0x1B3B54, [0x279000, 0x279020, 0x100000, 0x300000], 9)

3dsploit.py

r.pop_r4(0x279020)
r.i32(0x1C1958)
r.i32(0x44444444)
r.call_lr(0x10C2AC, [0x279024])
Can someone explain these addresses?

ramdump.py

r.call(0x1B82AC, [0x279000, Ref("fname"), 6], 5)
r.call(0x1B3B54, [0x279000, 0x279020, 0x100000, 0x300000], 9)

3dsploit.py

r.pop_r4(0x279020)
r.i32(0x1C1958)
r.i32(0x44444444)
r.call_lr(0x10C2AC, [0x279024])

http://gbatemp.net/threads/merry-christmas-have-some-ram-dumping.359697/page-11#post-4871942
http://pastebin.com/6CGwGKyh
 
Can someone explain these addresses?

ramdump.py

r.call(0x1B82AC, [0x279000, Ref("fname"), 6], 5)
r.call(0x1B3B54, [0x279000, 0x279020, 0x100000, 0x300000], 9)

3dsploit.py

r.pop_r4(0x279020)
r.i32(0x1C1958)
r.i32(0x44444444)
r.call_lr(0x10C2AC, [0x279024])

#0x279000 is a handle

Apparently its not :)



Thanks for the pastie :)
 

Site & Scene News

Popular threads in this forum