ИБ, 07 лекция (от 15 ноября)

Материал из eSyr's wiki.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: Сегодня мы вспоминаем ассемблер, рассм. сферический процессор в вакууме, не конкретную модель, но отд...)
 
Строка 1: Строка 1:
-
Сегодня мы вспоминаем ассемблер, рассм. сферический процессор в вакууме, не конкретную модель, но отдельные особенности, важные для уязвимостей.
+
Сегодня мы вспоминаем ассемблер, рассматриваем сферический процессор в вакууме, не конкретную модель, но отдельные особенности, важные для уязвимостей.
-
Рассм. будут ососбенности на платформе Linux, поэтому рассм. две нотации — Intel исп. свою нотацию в своих техдоках, в Linux е=практ. единственный комплилятор это gas, синтаксис у него AT&T.
+
Рассматриваться будут особенности на платформе Linux, поэтому рассмотрим две нотации — Intel использует свою нотацию в своих техдоках, в Linux практически единственный комплилятор это gas, синтаксис у него AT&T.
-
Сферический процессор в вакууму сост. из ..., устройства ввода-вывода могут читать/писать байты, в оперативной памяти хранятся байты.
+
Сферический процессор в вакууме состоит из ..., устройства ввода-вывода могут читать/писать байты, в оперативной памяти хранятся байты.
-
Далее, собственно процессор, уту он у нас уже несколько овальный.
+
Далее, собственно процессор, тут он у нас уже несколько овальный.
Регистры. ...
Регистры. ...
Строка 11: Строка 11:
Виртуальная память процесса. Каждая программа считает, что она единолично управлет ресурсами системы. По крайней мере, ОС пытается сделать вид. У каждого процесса есть своя виртуальная память.
Виртуальная память процесса. Каждая программа считает, что она единолично управлет ресурсами системы. По крайней мере, ОС пытается сделать вид. У каждого процесса есть своя виртуальная память.
-
Важная ососбенность всего этого: все сегменты стека расстут снизу вверх. Стек же растёт вниз. Почему это важно: push и mov работают как бы наоборот, и это ведёт к ряду интересных эффектов, которые позв. эксплуатировать уязв. вида переполн.стека 15 лет назад.
+
Важная особенность всего этого: все сегменты стека растут снизу вверх. Стек же растёт вниз. Почему это важно: push и mov работают как бы наоборот, и это ведёт к ряду интересных эффектов, которые позволяют эксплуатировать уязвимости вида переполнения стека 15 лет назад.
-
Подробнее про стек. Стек работает по алг. FIFO. Для работы со стеком есть спец. архитектуры. Ничто не мешает при этом работать со стеком как с линейной памятью. Что хранится в стеке: локальные переменные, аргументы, адрес возврата.
+
Подробнее про стек. Стек работает по алгоритму FIFO. Для работы со стеком есть специальные архитектуры. Ничто не мешает при этом работать со стеком как с линейной памятью. Что хранится в стеке: локальные переменные, аргументы, адрес возврата.
Важно помнить, что call/ret/push меняют esp/ebp. esp всегда смотрит на вершину стека. Зная только его, мы не можем знать, где мы вообще. Для этого есть ebp.
Важно помнить, что call/ret/push меняют esp/ebp. esp всегда смотрит на вершину стека. Зная только его, мы не можем знать, где мы вообще. Для этого есть ebp.
-
Про размещение объектов. Есть три способа: статически, динамически или автоматически. Автоматич.разм. исп. для лок. переменных и параметров функций.
+
Про размещение объектов. Есть три способа: статически, динамически или автоматически. Автоматическое размещение используется для локальных переменных и параметров функций.
{{ИБ}}
{{ИБ}}
{{Lection-stub}}
{{Lection-stub}}

Текущая версия

Сегодня мы вспоминаем ассемблер, рассматриваем сферический процессор в вакууме, не конкретную модель, но отдельные особенности, важные для уязвимостей.

Рассматриваться будут особенности на платформе Linux, поэтому рассмотрим две нотации — Intel использует свою нотацию в своих техдоках, в Linux практически единственный комплилятор это gas, синтаксис у него AT&T.

Сферический процессор в вакууме состоит из ..., устройства ввода-вывода могут читать/писать байты, в оперативной памяти хранятся байты.

Далее, собственно процессор, тут он у нас уже несколько овальный.

Регистры. ...

Виртуальная память процесса. Каждая программа считает, что она единолично управлет ресурсами системы. По крайней мере, ОС пытается сделать вид. У каждого процесса есть своя виртуальная память.

Важная особенность всего этого: все сегменты стека растут снизу вверх. Стек же растёт вниз. Почему это важно: push и mov работают как бы наоборот, и это ведёт к ряду интересных эффектов, которые позволяют эксплуатировать уязвимости вида переполнения стека 15 лет назад.

Подробнее про стек. Стек работает по алгоритму FIFO. Для работы со стеком есть специальные архитектуры. Ничто не мешает при этом работать со стеком как с линейной памятью. Что хранится в стеке: локальные переменные, аргументы, адрес возврата.

Важно помнить, что call/ret/push меняют esp/ebp. esp всегда смотрит на вершину стека. Зная только его, мы не можем знать, где мы вообще. Для этого есть ebp.

Про размещение объектов. Есть три способа: статически, динамически или автоматически. Автоматическое размещение используется для локальных переменных и параметров функций.


Введение в информационную безопасность


01 02 03 04 05 06 07 08 09 10 11 11


Календарь

Октябрь
04 11 18 25
Ноябрь
01 08 15 22 29
Декабрь
06 13 20


Эта статья является конспектом лекции.

Эта статья ещё не вычитана. Пожалуйста, вычитайте её и исправьте ошибки, если они есть.
Личные инструменты
Разделы