Homebrew Python Tools for 3DS

kalimero

Uncle Rupee
Member
Joined
Jun 28, 2006
Messages
211
Trophies
0
XP
334
Country
Gambia, The
I don't get it. There is also this code:

r.store_i32(0, 0x279004)
r.store_i32(0, 0x279008)

Why these addresses (0x2790XX)? There isn't anything special.

The comment says
# file_open(0x270000, "YS:/DUMP.BIN", 6)

but it actually uses 0x279000
r.call(0x1B82AC, [0x279000, Ref("fname"), 6], 5)
 

kalimero

Uncle Rupee
Member
Joined
Jun 28, 2006
Messages
211
Trophies
0
XP
334
Country
Gambia, The
I don't know what you guys expect? Without help only the best can do this and they already have much experience. If you lack both...
But it's nothing to make fun of. When you have children, please try to not laughing your ass off when they learn to walk but can't even though they have god given legs.
 

Roxas75

Well-Known Member
Member
Joined
Oct 9, 2010
Messages
516
Trophies
0
XP
1,522
Country
Italy
I don't know what you guys expect? Without help ...
That script is much enough help, really.

Anyways, for those who have problem with this, you need an assembler for arm, like armips to compile your code in binary then insert it as a hex string in the payload label in the script.
If you are good enough you can always code i c/c++/any other compiled language you want, but you have to adjust some things to have an acceptable binary in the end.
 

Kane49

Well-Known Member
Member
Joined
Nov 4, 2013
Messages
446
Trophies
0
Age
36
XP
343
Country
Gambia, The
That script is much enough help, really.


No one is denying that, the hardest part was done for us. Personally i just want to learn a little and have fun.
I don't expect anyone to help me and obviously no one is obligated to, but i don't see the harm in asking reasonable questions :)
(Emphasis on reasonable, loads of stuff is easily available online and i try to only ask when I'm completely stumped)

I have actually gotten help on here though which is awesome
 

Duo8

Well-Known Member
Member
Joined
Jul 16, 2013
Messages
3,613
Trophies
2
XP
3,040
Country
Vietnam
Even better, someone should teach you how to use google.

Errr...
:tpi:
ib9aCyK.png

Btw what is in those pastes? I can't view them.
 

Boy12

NOT a new member!
Member
Joined
Mar 8, 2012
Messages
536
Trophies
0
Location
Purmerend
XP
459
Country
Netherlands
I don't wanna sound like the dumb guy in here, but i have 2 questions:

1. Would it be possible to code a NES/SNES/Gameboy emulator using the Python Tools for 3DS?
2. I have some experience with Python, if i use the tools, would i be able to start coding right away, or do i need to know some other things first?

Sorry if these are dumb questions, just wanted to know some things
 

Kane49

Well-Known Member
Member
Joined
Nov 4, 2013
Messages
446
Trophies
0
Age
36
XP
343
Country
Gambia, The
I don't wanna sound like the dumb guy in here, but i have 2 questions:

1. Would it be possible to code a NES/SNES/Gameboy emulator using the Python Tools for 3DS?
2. I have some experience with Python, if i use the tools, would i be able to start coding right away, or do i need to know some other things first?

Sorry if these are dumb questions, just wanted to know some things
1. Yes, theoretically
2. The python part is done :/ It allows you to inject an arm payload
 

corim123

Well-Known Member
Member
Joined
Aug 1, 2007
Messages
106
Trophies
0
XP
240
Country
United States
Errr...
:tpi:
ib9aCyK.png

Btw what is in those pastes? I can't view them.
Oh wow GBATemp is in Google? And searching for something that's been posted in an indexed site word for word turns up that site? Amazing breakthrough there. Alert the press.
 

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,044
Trophies
1
XP
3,034
Country
United States
for some reason I am unable to get native code to create a file. can someone take a look at this asm dump and let me know what I am doing wrong?
Code:
080c3ee0 020000EB                        bl        0x80c3ef0
080c3ee4                                dd        0xefbeadde
080c3ee8 0000A0E1                        mov        r0, r0
080c3eec 0000A0E1                        mov        r0, r0
080c3ef0 08402DE9                        push      {r3, lr}                              ; XREF=0x80c3ee0
080c3ef4 24109FE5                        ldr        r1, = 0x1c
080c3ef8 24309FE5                        ldr        r3, = 0x279000
080c3efc 00C0A0E3                        mov        r12, #0x0
080c3f00 0300A0E1                        mov        r0, r3
080c3f04 04C083E5                        str        r12, [r3, #0x4]
080c3f08 08C083E5                        str        r12, [r3, #0x8]
080c3f0c 01108FE0                        add        r1, pc, r1
080c3f10 0620A0E3                        mov        r2, #0x6
080c3f14 0C309FE5                        ldr        r3, = 0x1b82a8
080c3f18 33FF2FE1                        blx        r3
080c3f1c 0880BDE8                        pop        {r3, pc}
080c3f20                                dd        0x0000001c                            ; XREF=0x80c3ef4
080c3f24                                dd        0x00279000                            ; XREF=0x80c3ef8
080c3f28                                dd        0x001b82a8                            ; XREF=0x80c3f14
080c3f2c                                dd        0xeafffffe
080c3f30                                db  0x59 ; 'Y'
080c3f31                                db  0x00 ; '.'
080c3f32                                db  0x53 ; 'S'
080c3f33                                db  0x00 ; '.'
080c3f34                                db  0x3a ; ':'
080c3f35                                db  0x00 ; '.'
080c3f36                                db  0x2f ; '/'
080c3f37                                db  0x00 ; '.'
080c3f38                                db  0x44 ; 'D'
080c3f39                                db  0x00 ; '.'
080c3f3a                                db  0x55 ; 'U'
080c3f3b                                db  0x00 ; '.'
080c3f3c                                db  0x4d ; 'M'
080c3f3d                                db  0x00 ; '.'
080c3f3e                                db  0x50 ; 'P'
080c3f3f                                db  0x00 ; '.'
080c3f40                                db  0x2e ; '.'
080c3f41                                db  0x00 ; '.'
080c3f42                                db  0x42 ; 'B'
080c3f43                                db  0x00 ; '.'
080c3f44                                db  0x49 ; 'I'
080c3f45                                db  0x00 ; '.'
080c3f46                                db  0x4e ; 'N'
080c3f47                                db  0x00 ; '.'
080c3f48                                db  0x00 ; '.'
080c3f49                                db  0x00 ; '.'
080c3f4a                                db  0x00 ; '.'
080c3f4b                                db  0x00 ; '.'
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,565
Country
Chile
I don't get it. There is also this code:

r.store_i32(0, 0x279004)
r.store_i32(0, 0x279008)

Why these addresses (0x2790XX)? There isn't anything special.

The comment says
# file_open(0x270000, "YS:/DUMP.BIN", 6)

but it actually uses 0x279000
r.call(0x1B82AC, [0x279000, Ref("fname"), 6], 5)

prolly ARM 32bit mode's more $this-> functions, given those jump 4 bytes ahead
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    BakerMan @ BakerMan: lorelei from pokemon is so fuckin bad bro