Enviado em 14/06/2006 - 13:17h
Olá comunidade, gostaria de saber como tenho que passar os argumentos para a syscall do execve, sei o seguinte:
eax = 0xb (numero da syscall)
ebx = "/bin//sh" (nome do programa)
ecx = "/bin//sh"+NULL (argumentos)
edx = NULL (engv)
Não sei como faço para passar os argumentos para as funções, segue o que fiz e não funcionou:
shell.s
-------------------------------------------------
xor %eax, %eax
xor %ebx, %ebx
xor %ecx, %ecx
xor %edx, %edx
push %eax
push $0x68732f2f
push $0x6e69622f
mov %esp, %ebx
mov %esp, %ecx
mov $0x0, %edx
mov $0xb, %eax
int $0x80
-------------------------------------------------
E não funcionou, dá "Segmentation Fault". Alguem pode me ajudar?
Agradeço desde já,
Slackware_10
eax = 0xb (numero da syscall)
ebx = "/bin//sh" (nome do programa)
ecx = "/bin//sh"+NULL (argumentos)
edx = NULL (engv)
Não sei como faço para passar os argumentos para as funções, segue o que fiz e não funcionou:
shell.s
-------------------------------------------------
xor %eax, %eax
xor %ebx, %ebx
xor %ecx, %ecx
xor %edx, %edx
push %eax
push $0x68732f2f
push $0x6e69622f
mov %esp, %ebx
mov %esp, %ecx
mov $0x0, %edx
mov $0xb, %eax
int $0x80
-------------------------------------------------
E não funcionou, dá "Segmentation Fault". Alguem pode me ajudar?
Agradeço desde já,
Slackware_10