Операционные системы 09.02.03 2 курс. Автономной некоммерческой образовательной организации профессионального образования
![]()
|
Лекция №8
![]() ![]() 1 способ: Устанавливаем int1 на свою программу обработки, затем режим пошаговой работы, а потом вызываем интегрирующую функцию (безопасную) – последние выполняемые команды всех программ, которые изменяли данный вектор прерывания, а затем обрабатывается программа обработки прерывания. После каждой команды будет вызываться функция, в которой анализируются наши прерывания. 0
21h имеет адрес AF2534B8 1к
Система защиты установила в качестве обработчика прерывание 21h. Будет вызываться сначала функция по адресу. ПЗ Int 21h AD34:F328 Jmp AF25:34B8 Old int 21h Когда вместо …………………………………… приложение вызывает int 21h, т.е. будет вызываться функция в теле команды. Функция либо передает управление старшему адресу, либо нет. Злоумышленник должен при вызове int 21h должен попасть сразу на AF2534B8. Списать программу
![]() ![]() ![]() ![]() Перехватив 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 функцию. Программирование последовательного портаИзначально микросхема 8250 отвечает за программирование последовательного порта. Для доступа к последовательному порту существует базовый адрес (в ячейках 0040:0000 для COM1 и 0040:0002 для COM2). Для 0040 со смещением 1 – 1 порт. Для 0040 со смещением 2 – 2 порт. Базовый адрес для порт 1 – 3F8, 2F8. Микросхема имеет 10 программируемых однобайтовых регистров, которые занимаются инициализацией и передачей данных. 3F8 – передает байт, если байт 7 в регистре 3FB равен 0. Из 3FB может читать байт. Регистр 3F8 является младшим делителем в скорости обмена при бите, установленном в регистре 3FB. 3F7 – …………………….. 3F9 – при установке бита 7 в 0 в 3FB – регистр разрешения прерывания. 3FА – регистр идентификации прерывания 3FВ – регистр управления линией 3FС – регистр управления модемом 3FD – регистр статуса линии 3FE – регистр статуса модема Скорость обмена: Делитель скорости – число, на которое нужно разделить частоту системных часов для получения скорости обмена Частота системных часов – 100 190 000 Гц Скорость обмена: Минимальная – 110 бт\ с Максимальная – 115- 200 бт\ с …………………………………………………………………………………………………………… Для скорость 1200 – значения регистра 3F90.??????????? Регистр контроля линии Биты 10 (один – ноль) задают длину символов. Можно закодировать 005……………………………….., 118………………. Второй бит – количество стопоковых бит. Если 0 – 1 Если 1 – 2 Бит четности: Если 0 – генерировать Если 0 – нет Тип четности: 0 – нечетный, 1 – четный. Фиксация четности заставляет бит четности быть либо 1, либо 0. Установка перерыва – данный бит приводит к передаче строке нулей. Бит 7 – меняет адреса …………….. Регистр статуса линии Установка бита 0 в 1 означает, что получен байт данных. Бит 1 – установка в 1 означает, что поученные данные перезаписаны. Бит 2 – установка в 1 означает, что произошла ошибка в четности Бит 5 – установлен в 1, когда регистр хранения передатчика пуст Бит 6 – установлен в 1, если регистр сдвига передатчика пуст Физические линии: DTR – готовность компьютера RTS – запрос на посылку DSR – готовность модема CTS – готовность к посылке DCD – обнаружен носитель данных RI – индикатор звонка Регистр статуса модема Бит 0 – устанавливает в 1: изменение CTS Бит 1 – устанавливает в 1: изменение в DSR Бит 2 – устанавливает в 1: изменение в RI Бит 3 – устанавливает в 1: изменение в DCD Бит 4 – устанавливает в 1: устанавливает сигнал в CTS Бит 5 – устанавливает в 1: устанавливает сигнал в DSR Бит 6 – устанавливает в 1: устанавливает сигнал в RI Бит 7 – устанавливает в 1: устанавливает сигнал в DCD При чтении данного регистра значения обнуляются. Регистр контроля модема Бит 0 установлен в 1, если готовность компьютера активна Бит 1 установлен в 1, если запрос на посылку активен Бит 4 установлен в 1, если мы хотим ……………………….. |