Cтраница 3
Поскольку некоторые оболочки сначала ищут вызываемую программу в текущем каталоге, а уже затем в каталогах, перечисленных в строке РАТН, суперпользователь, таким образом, вызовет троянского коня Мэла, наделив его на время запуска полномочиями суперпользователя. При этом троянский конь может, например, сделать программу / usr / mal / bin / sh корневой с полномочиями суперпользователя. Для этого требуются всего два системных вызова: chown, чтобы сменить владельца файла / usr / mal / bin / sh на root, и chmod, чтобы установить ее SETUID бит. Теперь Мэл может становиться суперпользователем, когда ему вздумается, просто запуская свой вариант оболочки. [31]
Оператор ВЫЗВАТЬ выполняет передачу управления вызываемой программе. При первом входе в вызываемую программу ее состояние представляет собой исходное состояние этой программы. [32]
Каждый раз, когда в вызываемой программе обнаруживается ошибка, к значению байта BYTEER прибавляется единица. [33]
Параметр ALL означает, что вызываемой программе передаются значения как общих, так и внутренних переменных. Если он не задан, то сохраняется только поле общих переменных. [34]
Адрес области сохранения, задаваемый вызываемой программой. [35]
Если бит 8 в слове состояния вызываемой программы содержит 0, то при загрузке программы область памяти 500 - 777 сохраняет свое содержимое. [36]
Эта конструкции определяют точки входа в вызываемой программе на Коболе. Каждая точка входа характеризуется своим именем. Оно используется в операторе ВЫЗВАТЬ вызывающей программы. Любая программа на Коболе имеет по меньшей мере одну точку входа, поскольку заголовок раздела процедур обязательно присутствует в каждой программе. Имя этой точки входа совпадает с именем-програм-мы в параграфе ПРОГРАММА раздела идентификации. [37]
Количество идентификаторов во фразе ИСПОЛЬЗУЯ в вызываемой программе может быть меньше количества идентификаторов в соответствующем операторе ВЫЗВАТЬ вызывающей программы. В этом случае вызываемая программа может обратиться только к тем данным, идентификаторы которых указаны в ее фразе ИСПОЛЬЗУЯ. [38]
Первое, что обычно делается в вызываемой программе, это сохраняется содержимое регистров. Область сохранения ( адрес которой должен быть в регистре 13) состоит из 18 слов и имеет следующую структуру. [39]
Для транзита проверяется, находится ли номер вызываемой программы в Таблице резервируемых областей перекрытия, чтобы установить, сколько областей перекрытия требуется вызываемому транзиту. Если вызываемой программы нет в ТРОП, значит она - независимый транзит, ей требуется одна область. Для найденной в ТРОП программы выбирается число требуемых ей областей перекрытия. [40]
Команда DOS состоит из имени команды или вызываемой программы и, возможно, параметров, разделенных пробелами. [41]
Регистр 15 содержит адрес точки входа в вызываемую программу. Регистр загружается вызывающей программой и может в вызываемой программе использоваться в качестве регистра базы. [42]