PayloadFromRPX/source/ios_usb/source/main.c

24 lines
625 B
C
Raw Normal View History

void _main() {
2020-04-26 13:41:39 +02:00
void (*ios_shutdown)(int) = (void (*)(int)) 0x1012EE4C;
2020-04-26 13:41:39 +02:00
int (*reply)(int, int) = (int (*)(int, int)) 0x1012ED04;
2020-04-26 13:41:39 +02:00
int saved_handle = *(volatile int *) 0x0012F000;
2022-03-05 17:00:58 +01:00
int myret = reply(saved_handle, 0);
if (myret != 0) {
ios_shutdown(1);
}
2020-04-26 13:41:39 +02:00
// stack pointer will be 0x1016AE30
// link register will be 0x1012EACC
asm("LDR SP, newsp\n"
"LDR R0, newr0\n"
"LDR LR, newlr\n"
"LDR PC, newpc\n"
"newsp: .word 0x1016AE30\n"
"newlr: .word 0x1012EACC\n"
"newr0: .word 0x10146080\n"
"newpc: .word 0x10111164\n");
2020-04-26 13:41:39 +02:00
}