linux asm execve не возвращается

Тема в разделе "WASM.BEGINNERS", создана пользователем goluzov, 12 апр 2019.

  1. goluzov

    goluzov New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2011
    Сообщения:
    20
    мне нужно выполнить команду на линукс через system call

    есть только execve

    но она не возвращется при удачном исполнении
     
  2. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    310
    ищете телепатов? это как?
     
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.353
    запускаешь функой скрипт, а он сливает нужное значение в файл.
     
  4. goluzov

    goluzov New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2011
    Сообщения:
    20
    ну мне надо выполнить команду в shell. а после выполнения execve программа дальше не выполняется

    в том то и прикол. это такая функция
     
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.353
    goluzov, вся сила юнихов в файлах :)
     
  6. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    310
    хотите 332 стр повторить вот этой книги? http://wiki.informationsecurity.club/lib/exe/fetch.php/книги:iskusstvo_exploita_2ed_2009.pdf
    как думаете, зачем там колл? про push ebp mov ebp esp, короче про обертку фрэйма не забыли?
     
  7. goluzov

    goluzov New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2011
    Сообщения:
    20
  8. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.353
    q2e74 просто малёхо устал, видать, опосля борьбы со сплойтами :)
     
  9. goluzov

    goluzov New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2011
    Сообщения:
    20
    можно конечно использовать ф-ю system но это не syscall. ее надо инклудить через либу

    никто не подскажет к в jwasm сделать импорт либы?
     
  10. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    310
    чего-то я не пойму, причем тут возвращаемое значение execve() из libc , когда сперва речь шла о syscall execve , тот что ассемблер ?
     
  11. goluzov

    goluzov New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2011
    Сообщения:
    20
    в sysall также не возвращает управление
     
  12. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    310
    а как сискол может вернуть управление?
    blablabla, пассажиры заняли места согласно купленным билетам
    sysenter\ int 0x80 # всё, альфа и омега сискола.
    blablabla ваще другая история

    eip или rip всякими -1 не заполняются, они живут по своим правилам. Что значит не возвращает управление? Потому ведь выше и спросил про фрэйм.
    push ebp;
    mov ebp esp;
    пролог функции, пройдет еип\рип через эпилог функции ушагает куда надо.

    Значение вернуть, это какой-то регистр заполнить?
    Управление вернуть - в отладчике eip\rip ходит вполне предсказуемо, кому его возвращать? как пришел, так и уйдет, через пролог и эпилог. Чет не вижу проблемы. Ну сделаейте после сисентера джамп.
     
  13. goluzov

    goluzov New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2011
    Сообщения:
    20
    весь код который идет после syscall execve не выполняется. я обьясняю что это такая функция.
    --- Сообщение объединено, 12 апр 2019 ---
    я сам не понимаю что это за бред но это так
    --- Сообщение объединено, 12 апр 2019 ---
    вот скажите мне как я могу на ассемблере не подключая дополнительные либы исполнить команду шела
     
  14. f13nd

    f13nd Active Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    559
    Неправда. http://www.linfo.org/system_call_number.html
    Код (Text):
    1. #define __NR_exit                 1
    2. #define __NR_fork                 2
    3. #define __NR_read                 3
    4. #define __NR_write                4
    5. #define __NR_open                 5
    6. #define __NR_close                6
    7. #define __NR_waitpid              7
    8. #define __NR_creat                8
    9. #define __NR_link                 9
    10. #define __NR_unlink              10
    11. #define __NR_execve              11
    12. #define __NR_chdir               12
    13. #define __NR_time                13
    14. #define __NR_mknod               14
    15. #define __NR_chmod               15
    16. #define __NR_lchown              16
    17.  
    Среди этого великого многообразия есть то, что нужно.
    https://www.opennet.ru/docs/RUS/linux_parallel/node7.html

    Но очевидно без премиум-аккаунта в гугле это не найти.
     
  15. Rel

    Rel Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    2.111
    execve не должен виснуть по определению, можешь попробывать запустить strace и помониторить, если уверен, что правильно делаешь сискол...
    --- Сообщение объединено, 13 апр 2019 в 01:00 ---
    первой ссылкой мой премиум гугл аккаунт вывел: https://www.exploit-db.com/exploits/42126
     
  16. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.353
    а код посмотреть можно?:)