![]() |
Linux
Добрый вечер, Уважаемые. Пишу диплом по информационной безопасности. Встал в ступор:
пишу маленький код: Код:
#include <sys/types.h> Код:
gcc myprog.c -o myprog -g --staticТак дальше: Код:
gdb -q ./myprogДалее дизассемблю setuid и ищю вызов ядра (прерывание $0x80) Дальше я слегка запутался :confused: Знаю, что в регистр %eax заносится номер системного вызова. Посмотрел в /usr/include/asm/unistd.h и нашел setuid, он равен 23. Аргумент 666 полетит в регистр, скажем %ebx. Какой уникальный номер у setuid я не знаю, для EXIT знаю 0x1. Вообщем прошу помощи, нужно найти в отладчике gdb, как происходит вызов setuid и далее это дело перевести в шестнадцатиричное представление. Перевести сам смогу, помогите найти кусок кода в gdb, где происходит вызов setuid. Заранее благодарен всем!!!! |
Если я правильно понял суть вопроса, то тебе надо код на асме вызова setuid() ?
Ну вот держи: Код:
movl $23, %eax # $23 - setuid system call number |
Спасибо, razb. Уже сам разобрался, пока ответы ждал. Но все равно спасибо.
|
| Время: 02:06 |