Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Kastaneda
Jesus loves me
Эксперт С++
5037 / 3056 / 349
Регистрация: 12.12.2009
Сообщений: 7,710
Записей в блоге: 2
Завершенные тесты: 1
1

Смена SS при Page Fault на нулевом CPL (protected mode)

01.08.2014, 16:49. Просмотров 901. Ответов 1
Метки нет (Все метки)

Привет!

Есть такая проблема - код (целенаправленно) провоцирует #PF (call при невалидном SS), при входе в обработчик прерывания смена SS должна происходить только если происходит смена CPL на более привилегированный, но у меня сам код работает в CPL=0 и селектор кода в дескрипторе шлюза указывает на дескриптор с DPL=0, поэтому SS не меняется. Получается при подготовке к вызову обработчика идет попытка положить на стек данные об исключении, а т.к. SS не валидный, то опять происходит #PF, отсюда double fault, там уже опять PF и ... в общем вы поняли.

Если поменять CPL кода, который провоцирует #PF, на более высокий (любой), то SS корректно меняется и обработчик прерывания успешно вызывается. Но мне нужно именно чтобы CPL был 0.

Чтение Intel мануалов не помогло, ради эксперимента пробовал даже менять DPL у дескриптора, на который указывает селектора кода в дескрипторе шлюза и всячески менял DPL у самого дескриптора шлюза, результата, как и ожидалось, это не дало.

Может есть идеи как заставить меняться SS?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2014, 16:49
Ответы с готовыми решениями:

DOS перезагружается при переходе в protected mode после создания файла
Привет! Суть проблемы в следующем - есть код, который из protected mode переходит в real mode, там...

Page fault or other explain
В общем имеется программа которая через буффер считывает файл и передает его в stdout из...

Page-fault-in-nonpaged-area
Доброго времени суток! При загрузки фотографий в вк(бпросто прикрепление к сообщению) появляется...

Вычисление адреса метки после перехода в protected mode
Привет! Понадобилось реализовать следующее - из real mode перейти в protected, а из него в long...

============PAGE FAULT===========" что это?
Добрый вечер. Постараюсь вкратце описать возникающую проблему: не так давно я перезагрузил...

1
sh2ezo
1126 / 260 / 9
Регистрация: 11.06.2010
Сообщений: 1,050
02.08.2014, 00:35 2
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Цитата Сообщение от Kastaneda Посмотреть сообщение
Может есть идеи как заставить меняться SS?
Можно код нулевого кольца исполнять на эмуляторе в случае тупикового состояния можно будет просто отследить цепочку вызовов через стек и убить виновника торжества. Если проход по цепочке приводит нас обратно в ядро, то выводим на экран "Ядро сошло с ума. Запускаю процесс само-диагностики" и начинаем анализировать хеши всех системных файлов, а также любых файлов, содержимое которых хоть как-то связано с нулевым кольцом. Если проверка пройдена успешно, запускается memtest. По результатам тестирования памяти, принимаем решение, что дальше вывести на экран. Если тест пройден хорошо, выводим "Похоже, вам попалась сбойная версия ядра или же у вас что-то с компьютером. Отошлите сохраненный при сбое дамп разработчику ОС.". Если тест пройден плохо, выводим "Тест памяти провален. Замените модули памяти".

Мб, не совсем по теме, но интересно-то как О_О
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2014, 00:35

Проблема: Page fault in non paged area
Доброго времени суток, форумчане. Приключилась со мной печальная ситуация, но все по порядку. У...

Ошибка «PAGE FAULT IN NON PAGED AREA»
Здравствуйте у меня такая ошибка уже 2 раз вообщем в первый раз я просто переустановил винду но вот...

Синий экран page fault in nonpaged area
Добрый вечер! Нужна помощь ваша. Даже не знаю ... что здесь. Постоянно вылетает "Синий экран"(но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru