Socket for FreeBSD

Тема в разделе "WASM.UNIX", создана пользователем Drop, 26 июн 2005.

  1. Drop

    Drop New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2005
    Сообщения:
    5
    Народ у кого есть пример программирования сокета под FreeBSD AT&T синтаксиса без изпоьзования библиотек - если вообще есть такой в природе

    Зарание благодарен
     
  2. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    Drop

    смотри Lab6C - клиент и Lab6S - сервер. Если понадобиться отладчик - вышлю



    [​IMG] 1116322464__asmlinux.zip



    добавлено:

    Забыл сказать - во FreeBSD может оказаться другой порядок передачи параметров и номера функций )
     
  3. looser

    looser New Member

    Публикаций:
    0
    Регистрация:
    25 май 2004
    Сообщения:
    34
    Адрес:
    msk
    Самый простой вариант - дисассемблировать шелкод bind/sh :)

    Там всего порядка 110 байт.
     
  4. Drop

    Drop New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2005
    Сообщения:
    5
    Я переписал клиент под FreeBSD Все запускается но у меня такое впечатление что сокет не создался netstate молчит =(
     
  5. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    Drop

    в отладчике смотри (ald под bsd есть)?
     
  6. Drop

    Drop New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2005
    Сообщения:
    5
    Да отладчик есть
     
  7. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    Drop

    ну и что возвращает ф-ция socket?
     
  8. Drop

    Drop New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2005
    Сообщения:
    5
    Я еще с отладчиком не разобрался незнаю как толком его юзать

    Вот мой сорец Я походу дела к сокету неправельно обращаюсь Если кто нашел ошибку то плиз помогите

    =========Резать тут============================

    .text

    .globl _start

    _start:

    #-------------------------

    movl $2,%eax #Sys_fork

    pushl %eax

    .byte 0x9a

    .long 0

    .word 7

    #-------------------------

    test %eax,%eax

    jz _cont1

    #-------------------------

    xorl %eax,%eax #

    pushl %eax #

    incl %eax # Exit

    pushl %eax #

    .byte 0x9a

    .long 0

    .word 7

    #-------------------------

    _cont1:

    movl $147,%eax #Sys_setsid

    pushl %eax

    .byte 0x9a

    .long 0

    .word 7

    #------------------------

    # Skip ;) Sys_sygnal (Я ненашел номер вызова :))) )

    #------------------------

    movl $2,%eax # Sys_fork

    pushl %eax

    .byte 0x9a

    .long 0

    .word 7

    #-----------------------

    test %eax,%eax

    jz _cont2

    xorl %eax,%eax #

    pushl %eax #

    incl %eax # Exit

    pushl %eax #

    .byte 0x9a

    .long 0

    .word 7

    #----------------------

    _cont2:

    pushl $0 #Protocol

    pushl $1 #SOCK_STREAM

    pushl $2 #AF_INET

    movl %esp,%ecx

    movl $0,%ebx #SYS_SOCKET

    movl $97,%eax #Sys_socket

    pushl %eax

    .byte 0x9a

    .long 0

    .word 7

    #---------------------

    addl $0xc,%esp

    movl %eax,(sockfd)

    pushl $0x10

    pushl $sockaddr_in

    pushl %eax

    movl %esp,%ecx

    movl $2,%ebx #SYS_BIND

    movl $97,%eax #Sys_socket

    pushl %eax

    .byte 0x9a

    .long 0

    .word 7

    addl $0xc,%esp

    #---------------------------------------------------

    pushl $0

    movl (sockfd),%eax

    pushl %eax

    movl %esp,%ecx

    movl $4,%ebx #SYS_LISTEN

    movl $97,%eax #Sys_socket

    pushl %eax

    .byte 0x9a

    .long 0

    .word 7

    #---------------------------------------------------

    _wait_next_client:

    pushl $0

    pushl $0

    movl (sockfd),%eax

    pushl %eax

    movl %esp,%ecx

    movl $5,%ebx #SYS_ACCEPT

    movl $97,%eax

    pushl %eax

    .byte 0x9a

    .long 0

    .word 7

    addl $0xc,%esp

    movl %eax,(connfd)

    jmp _wait_next_client

    #--------------------------------------------------

    # Skip ;) То что к сокету не относится я проскипал

    #--------------------------------------------------

    .data

    sockfd: .long 0

    connfd: .long 0

    sockaddr_in:

    sin_family: .word 2

    sin_port: .word 0x3930

    sin_addr: .long 0

    ===============================Резать тут===============
     
  9. looser

    looser New Member

    Публикаций:
    0
    Регистрация:
    25 май 2004
    Сообщения:
    34
    Адрес:
    msk
  10. Drop

    Drop New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2005
    Сообщения:
    5
    Спасибо посмотрю что с этим можно сделать :)