мне нужно выполнить команду на линукс через system call есть только execve но она не возвращется при удачном исполнении
ну мне надо выполнить команду в shell. а после выполнения execve программа дальше не выполняется в том то и прикол. это такая функция
хотите 332 стр повторить вот этой книги? http://wiki.informationsecurity.club/lib/exe/fetch.php/книги:iskusstvo_exploita_2ed_2009.pdf как думаете, зачем там колл? про push ebp mov ebp esp, короче про обертку фрэйма не забыли?
https://www.opennet.ru/man.shtml?topic=execve&category=2&russian=0 ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном завершении execve() не возвращает управление, при ошибке возвращается -1
можно конечно использовать ф-ю system но это не syscall. ее надо инклудить через либу никто не подскажет к в jwasm сделать импорт либы?
чего-то я не пойму, причем тут возвращаемое значение execve() из libc , когда сперва речь шла о syscall execve , тот что ассемблер ?
а как сискол может вернуть управление? blablabla, пассажиры заняли места согласно купленным билетам sysenter\ int 0x80 # всё, альфа и омега сискола. blablabla ваще другая история eip или rip всякими -1 не заполняются, они живут по своим правилам. Что значит не возвращает управление? Потому ведь выше и спросил про фрэйм. push ebp; mov ebp esp; пролог функции, пройдет еип\рип через эпилог функции ушагает куда надо. Значение вернуть, это какой-то регистр заполнить? Управление вернуть - в отладчике eip\rip ходит вполне предсказуемо, кому его возвращать? как пришел, так и уйдет, через пролог и эпилог. Чет не вижу проблемы. Ну сделаейте после сисентера джамп.
весь код который идет после syscall execve не выполняется. я обьясняю что это такая функция. --- Сообщение объединено, 12 апр 2019 --- я сам не понимаю что это за бред но это так --- Сообщение объединено, 12 апр 2019 --- вот скажите мне как я могу на ассемблере не подключая дополнительные либы исполнить команду шела
Неправда. http://www.linfo.org/system_call_number.html Код (Text): #define __NR_exit 1 #define __NR_fork 2 #define __NR_read 3 #define __NR_write 4 #define __NR_open 5 #define __NR_close 6 #define __NR_waitpid 7 #define __NR_creat 8 #define __NR_link 9 #define __NR_unlink 10 #define __NR_execve 11 #define __NR_chdir 12 #define __NR_time 13 #define __NR_mknod 14 #define __NR_chmod 15 #define __NR_lchown 16 Среди этого великого многообразия есть то, что нужно. https://www.opennet.ru/docs/RUS/linux_parallel/node7.html Но очевидно без премиум-аккаунта в гугле это не найти.
execve не должен виснуть по определению, можешь попробывать запустить strace и помониторить, если уверен, что правильно делаешь сискол... --- Сообщение объединено, 13 апр 2019 --- первой ссылкой мой премиум гугл аккаунт вывел: https://www.exploit-db.com/exploits/42126