Секреты покорения эльфов



         

Анатомия эльфов и их репродуктивные возможности - часть 3


Для вызова функций типа открытия файла мы можем обратиться либо к библиотеке libc, либо непосредственно к самой операционной системе. Первый вариант — самый громоздкий, самый переносимый, и наименее приметный. Последний — прост в реализации, но при первом же взгляде на дизассемблерный листинг тут же бросается в глаза (правильные программы INT 80h не вызывают!), к тому же он испытывает проблемы совместимости с различными версиями LINUX'а. Вот она — расплата за простоту!

Последний гигабайт адресного пространства (от адреса C0000000h и выше) занимают код и данные операционной системе, к которым мы будем обращаться только посредством прерывания INT 80h или через разделяемые библиотеки.

Стек находится в нижних адресах. Он начинается с базового адреса загрузки и "растет" "вверх" по направлению к нулевым адресам. В большинстве Лихнухов стек исполняем (то есть сюда можно скопировать машинный код и передать на него управления), однако, некоторые параноидальные администраторы устанавливают заплатки, отнимающие у стека атрибут исполняемости, но большой распространенности они не получили и ими можно пренебречь.

Рисунок 4 карта памяти загруженного образа исполняемого файла




Содержание  Назад  Вперед