BITS 32
section .text
global _start
_start:
xor edx, edx
push edx
;push 0x35343332 ; -vp12345
;push 0x3170762d
;push 0x64726f77 <----->;word
;push 0x6f6c6568 <----->;helo
;push 0x2f2f2f2f
;push 0x6f686365 ;echo (reverse)
mov esi, esp
push edx
;push 0x68732f2f ; -le//bin//sh
;push 0x6e69622f
push 0x22313520 ; 51"
push 0x6f686365 ;echo
push 0x2265632d ;-ce"
mov edi, esp
push edx
;push 0x636e2f2f ; /bin//nc
;push 0x6e69622f
;push 0x00000065 ;uname
;push 0x6d616e75 ;virtual command not execute?
push 0x68732f2f ;/bin//sh
push 0x6e69622f
;push 0x0000746e ;/mount
;push 0x756f6d2f
;push 0x6e69622f ;/bin
;push 0x6f686365 ;echo (reverse)
mov ebx, esp
push edx
;push esi.
push edi <----->; argument two
push ebx <---->; command massive with include first command
mov ecx, esp <->;first command
xor eax, eax
<------><------><------><------><------><------>; for reverse and convert byte, type: echo -n 'sampletext' | rev | od -A n -t x1 |sed 's/ /x/g
<------><------><------><------><------><------>; int execve (const char *filename, char *const argv[], char *const envp[]);
<------><------><------><------><------> ;eg.. <80h al,11> (0ebx, 0edi,0esi, nothing)
mov al,11<-----><------>;for call execve()
int 0x80
mov eax, 1 ;system call number (sys_exit)
int 0x80 ;call kernel