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

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

01.08.2014, 16:49. Просмотров 1015. Ответов 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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...

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

Решение

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

Мб, не совсем по теме, но интересно-то как О_О
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2014, 00:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Проблема: 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 - 2020, vBulletin Solutions, Inc.