--------ex.S------------
#include <sys/syscall.h>
.globl  main
main:   popl    %eax                    /* cick ret */
        popl    %eax                    /* cick argc */
        movl    (%esp),%eax             /* eax=av */
        movl    $fname, %ebx            /* ebx=fname */
        movl    %ebx,(%eax)             /* av[0]=fname */
        pushl   %ebx                    /* needs to be on the stack too */
        movl    $SYS_execve,%eax        /* execve */
        call    syscall
        movl    $SYS_exit,%eax          /* exit */
        call    syscall
syscall:
        int     $0x80
        ret
fname:  .asciz  "/bin/sh"


On Tue, 13 Mar 2001, Nickolay A. Kritsky wrote:

> Hi all!
> It seems to me that you guys are my last hope, but if  i am asking in the
> wrong place - sorry.
> 
> I wrote my first asm program for FreeBSD:
> 
> section    .code
> global _start
> _start:
>     push dword envp
>     push dword argvp
>     push dword fname
>     mov eax,59  ; execve
>     int 80h
>     hlt   ; i should never get here
> 
> section .data
> fname db '/bin/sh',0
> envp dd 0
> argvp dd 0
> ;End of program
> 
> after compiling and linking i run it and got SIGBUS error
> when run under gdb i can see that int 80h returns with eax=2 (ENOENT? does
> it mean file not found?)
> 
> I have a feeling that i have missed something very important.
> 
> Thank you.
> NKritsky - SysAdmin InternetHelp.Ru
> http://www.internethelp.ru
> e-mail: [EMAIL PROTECTED]
> 
> 
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
> 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to