Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Program exited normally
(gdb) quit
play@darkstar:~$
Теперь загрузим модуль и опять запустим процесс в отладчике:
play@darkstar:~$ gdb -q ./test
(gdb) break main
Breakpoint 1 at 0x804832e
(gdb) run
Starting program: /home/play/test
Breakpoint 1, 0x0804832e in main()
(gdb) cont
Continuing.
Смотрим, какими правами обладает новый shell:
bash-2.05b# id
uid=0(root) gid=0(root) groups=100(users)
На этот раз все получилось так, как мы и предполагали, – модуль перехватил исключение #BP, которое возникло в момент остановки выполнения процесса на функции main, проверил имя процесса и установил его идентификаторы в 0, повысив тем самым уровень привилегий процесса до root. После этого управление было передано «родному» обработчику исключения #BP и процесс продолжил свое выполнение, но уже с другими правами, которые и унаследовал новый shell.
Литература:
1. Теренс Чан. Системное программирование на С++ для UNIX: Пер. с англ. – К.: Издательская группа BHV, 1999. – 592c.
2. М. Митчелл, Д. Оулдем, А. Самьюэл. Программирование в Linux. Профессиональный подход.: Пер. с англ. – М.: Издательский дом «Вильямс», 2002. – 288 с.:ил.