Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 851
от 14.09.2007, 13:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 382, Экспертов: 26
В номере:Вопросов: 1, Ответов: 3


Вопрос № 101385: Уважаемые эксперты! Может быть я не в ту рассулку адресую свои вопрсы, но наверное они ближе всего подходят к ассемблеру. У меня 2 вопроса. При установке отладчика встретилась фраза "Айс сидит в нулевом кольце защиты, принтскрин в третьем.."...

Вопрос № 101.385
Уважаемые эксперты! Может быть я не в ту рассулку адресую свои вопрсы, но наверное они ближе всего подходят к ассемблеру. У меня 2 вопроса. При установке отладчика встретилась фраза "Айс сидит в нулевом кольце защиты, принтскрин в третьем.." 1. AFD так понимаю тоже. А OLLY? 2. Чем занимаются 1 и 2 кольца защиты? С уважением к Вам.
Отправлен: 09.09.2007, 13:05
Вопрос задал: Tiratron (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Egugondiy
Здравствуйте, Tiratron! Интел-совместимые процессоры поддерживают четыре уровня привилегий. Ring-0,Ring-1,Ring-2 и Ring-3.
Нулевой уровень дает процессу абсолютную свободу, а третий
накладывает множество ограничений. В операционных системах Windows реализовано два уровня привилегий: Ring-0 и Ring-3. Нулевое кольцо также называют уровень ядра. В этом уровне работают некоторые системные службы и драйвера устройств.
Большинство пользовательских приложений не выходят за пределы Ring-3. Они не могут использовать привилегированые команды процессора, работать напрямую с портами ввода/вывода,
обращатся к некоторым областям памяти, работать напрямую с физическими устройствами и т.п.
Что касается отладчиков, то имелось ввиду, что SoftIce может отлаживать процессы уровня ядра. AFD насколько я знаю предназначен для работы в MS-DOS. OLLY это отладчик уровня пользователя.
Ответ отправил: Egugondiy (статус: 1-ый класс)
Ответ отправлен: 09.09.2007, 15:52
Оценка за ответ: 4
Комментарий оценки:
Вы немного упустили часть вопроса, а именно, чем занимаются 1 и 2 кольца защиты. Будьте пожалуйста внимательны.

Отвечает: Irina Surina
Здравствуйте, Tiratron!
0 - ое кольцо - ядро системы. Драйверы и службы, загружаемые однократно вместе с ситемой (напр. vxd). 1-ое, 2-ое кольца - подгружаемые драйверы (sys, wdm (частично)), во 2 -ом кольце - dll. 3-ье кольцо - приложения. Существуют запреты на обращение через уровень. Напишите конкретнее, какая у Вас проблема
Ответ отправила: Irina Surina (статус: 1-ый класс)
Ответ отправлен: 09.09.2007, 17:45
Оценка за ответ: 5
Комментарий оценки:
Спасибо, что откликнулись. Затруднения вызваны изменением шрифта в отладчике, от мелкого шрифта очень болят глаза, эксперты не стали давать ответа на этот вопрос. Остальное обсуждать здесь я не имею права.

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Tiratron!

С появлением CPU i286-го введен в защищенный режим(Protection Mode). В отличии от реального режима (Real Mode), сегментные регистры PM содержат не адреса, а селекторы. 16-битный селектор(определяющий сегмент) и 32-битное (16-битное) смещение указывают на линейный адрес. Отдельный сегмент памяти — это независимое защищенное адресное пространство, для которого определены размер, разрешенные способы доступа (чтение / запись / исполнение кода) и уровень привилегий. Теперь о селекторе и дескрипторе.
Селектор содержит:
биты 0:1- запрошенный программой уровень привелегий;
бит 2 определяет таблицу дескрипторов(0-глобальная, 1-локальная);
биты 3:15- индекс дескриптора в таблице.

Взависимости от бита 2 селектора индекс дескриптора будет искатся в GDT (Global Descriptor Table-глобальная таблица) или LDT (Local Descriptor Table-локальная таблица).
Дескриптор :- это 64-битная (8 байт) структура которая может описывать сегмент кода, сегмент данных, сегмент состояния, шлюз вызова, ловушки, прерывания или задачи.
слово 3 (старшее):биты 15 – 8: биты 31 – 24 базы
бит 7: бит гранулярности (0 — лимит в байтах, 1 — лимит в 4-килобайтных единицах);
бит 6: бит разрядности (0/1 — 16-битный/32-битный сегмент);
бит 5: 0;
бит 4: зарезервировано для операционной системы;
биты 3 – 0: биты 19 – 16 лимита;
слово 2:бит 15: бит присутствия сегмента;
биты 14 – 13: уровень привилегий дескриптора (DPL);
бит 12: тип дескриптора (0 — системный, 1 — обычный);
биты 11 – 8: тип сегмента;
биты 7 – 0: биты 23 – 16 базы;
слово 1: биты 15 – 0 базы;
слово 0(младшее): биты 15 – 0 лимита.

где:
База представляет линейный 32-битный адрес начала сегмента,
лимит — это 20-битное число, которое равно размеру сегмента в байтах,
нас интересует слово 2:биты 13 - 14 -как Вы заметили в них можно записать 4-е значения: 00,01,10,11 -что соответствует "кольцам", 00-"кольцо" ядра(максимальные привилегии), 11- "кольцо" пользователя(минимальные привелегии). Из-за появилось 4-е "кольца" привилегий.

Самое интересное: с появлением CPU i386- вводится страничная адресация, в которой есть только два уровня привелегий ядро + драйвера(биты 13:14=00), и всё остальное( в том числе и пользователь, биты 13:14=11).

В приложениии значения битов 11 – 8: тип сегмента если бит 12: тип дескриптора (0 — системный).

ps:кратко весь механизм описать невозможно.

Удачи!

Приложение:

---------
И только наступив на грабли мы приобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 10.09.2007, 21:38
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое за подробный и обстоятельный ответ.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

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

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.58 от 10.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное