#linux #c #ассемблер #x64 #x86
Какой аналог system в ассемблерном коде? Например, чтобы вывести строку в stdout под linux x86 надо в eax записать номер системного вызова, в ebx записать код потока(для stdout это 1), в ecx указатель на строку, в edx длину строки. И потом вызвать прерывание(int 0x80). Итого: mov $4, %eax mov $1, %ebx mov $msg, %ecx mov $len, %edx int $0x80 Как в ассемблере написать аналог вызова C-шной функции system? Без разницы под x86 или x64. Например, я хочу написать аналог для вызова system("gedit").
Ответы
Ответ 1
Запуск файла на исполнение осуществляется через 11-ю функцию 80-го прерывания. Вот на английском SO был вопрос про это: https://stackoverflow.com/questions/9342410/sys-execve-system-call-from-assembly
Комментариев нет:
Отправить комментарий