- •Лекции «Операционные системы» 4 семестр, 2 курс Содержание
- •Лекция №1 История развития ос
- •Операционная система. Общая характеристика.
- •Лекция №2 Требования к ос
- •Ресурсы, виды ресурсов. Управление памятью. Виртуальная память.
- •Методы распределения памяти
- •Лекция №3
- •Cash-ирование данных
- •Понятие процесса. Управление процессами. Синхронизация процессов. Тупики и способы борьбы с ними.
- •Лекция №4 Алгоритмы планирования процессов
- •Средства синхронизации при взаимодействии процессов
- •Файловые системы
- •Лекция №5 Общая модель файловой системы
- •Файловая система fat (таблица распределения файлов)
- •Структура
- •Формат кода каталога
- •Файловая система hpfs
- •Лекция №6
- •Файловая система ntfs(кратко)
- •Операционная система ms-dos
- •Лекция №7 Прерывание. Обработка прерываний
- •Лекция №8
- •Программирование последовательного порта
- •Лекция №9
- •Планирование процесса
- •Многоуровневые очереди
- •Лекция №10
- •Лекция №11 Архитектура Windows nt
- •Лекция №12 Процессы и нити
- •Лекция №13 Алгоритмы планирования процессов и нитей
- •Процесс
- •Распределение процессорного времени между потоками
- •Лекция №14
- •Лекция №15
- •Журнал аудита
- •Политика аудита
- •Лекция №16
- •Настройка и конфигурация windows nt
- •Лекция №17
- •Структура сетевой ос
- •Лекция №18
- •Лекция №19
- •Лекция №20 Динамически подключаемая библиотека (dynamic_link_library dll)
- •Лекция №21 Внедрение dll
Лекция №8
|
|
|
|
|
|
|
|
|
|
|
П |
|
|
|
|
|
|
|
|
|
|
|
|
юбая
программа, использующая 21h,
может и изменять вектор, указывающий
на какую-то область памяти, на
адрес производной функции. Программа,
которая ограничивает доступ,
перехватывает 2 вида прерывания 13h
и 21h ( прямое чтение записи
секторов диска). Анализирует права,
либо запрещает, либо разрешает доступ.
Чтобы обойти: любая программа
защиты – нужно каким-либо образом
обойти защиту, определить истинный
адрес данного вектора.
1 способ:
Устанавливаем int1 на свою программу обработки, затем режим пошаговой работы, а потом вызываем интегрирующую функцию (безопасную) – последние выполняемые команды всех программ, которые изменяли данный вектор прерывания, а затем обрабатывается программа обработки прерывания. После каждой команды будет вызываться функция, в которой анализируются наши прерывания.
0
|
|
|
AF2534B8 |
|
|
21h имеет адрес AF2534B8
1к
|
|
|
|
|
|
|
|
|
AD34:F328 |
Система защиты установила в качестве обработчика прерывание 21h. Будет вызываться сначала функция по адресу.
ПЗ
Int 21h
AD34:F328
Jmp
AF25:34B8
Old int 21h
Когда вместо …………………………………… приложение вызывает int 21h, т.е. будет вызываться функция в теле команды. Функция либо передает управление старшему адресу, либо нет. Злоумышленник должен при вызове int 21h должен попасть сразу на AF2534B8.
Списать программу
|
I |
|
|
|
Int 21 |



Перехватив int1, выполняющее пошаговую работу, управление передано приложению. Надо пройти все команды. Управление сначала попадет в int 21. Команды попадают в приложение. Вызывается безопасная функция, выдача символов на экран (пример того, что выдает приложение). Доходим до перехода на адрес ……………………………………………………………………………………………………..
Все стандартные обработчики имеет вход. Любое приложение может просканировать последовательность команд. Вместо вызова int 13h и int 21h можно делать переход на любой адрес.
Для DOS:
-
Для нахождения для нахождения адреса сегмента DOS нужно использовать недокументированную 34h и прерывание 21h, которое будет возвращать в регистрах ES и BX адрес так называемого флага активности DOS, расположенного в сегменте. Остается просканировать 64 КБ. Будет возвращать флаг активности.
-
Можно вызвать недокументированную функцию 3, 12 и прерывание 2F, которое вернет в регистре DS адрес сегмента DOS.
Косвенный вызов DOS: для её использования нужно поместить в регистр DS и DX указатель на массив системный регистров. В AX занести значение 5D00 и вызвать int 21h. При выполнении данной функции DOS заполнит регистры процессора значениями из массива и выполнит указанную в AX функцию.


рограмма
nt
1