.syntax unified .arm .section .text .global _start .type _start, %function _start: ldr r3, [sp] @ argc add r4, sp, #4 @ argv = &stack[1] add r5, r4, r3, lsl #2 @ envp = argv + argc add r5, r5, #4 @ skip argv terminator mov r0, #0 mov r1, #0 mov r2, #0 mov r7, #170 @ setresgid(0, 0, 0) svc #0 mov r0, #0 mov r1, #0 mov r2, #0 mov r7, #164 @ setresuid(0, 0, 0) svc #0 adr r0, shell_path mov r1, r4 mov r2, r5 mov r7, #11 @ execve("/system/bin/sh", argv, envp) svc #0 mov r0, #127 mov r7, #1 @ exit(127) svc #0 .align 2 shell_path: .asciz "/system/bin/sh" .size _start, .-_start