Проблема защищённого режима

Тема в разделе "WASM.WIN32", создана пользователем electra, 22 мар 2005.

  1. electra

    electra New Member

    Публикаций:
    0
    Регистрация:
    16 фев 2005
    Сообщения:
    3
    Привет. Подскажите, пожалуйста, решение следующей проблемы.

    Я пишу слежущую команду: sgdt [esp]

    Она возвращет: F00003FF

    ****8003



    По идее, F00003FF - это должен быть адрес таблиц дескрипторов в памяти. 8003 - её лимит, относительно базы. При обращении к F00003FF возникает #GP. Почему нет доступа к этому адресу? Или я что-то не так делаю? Спасибо.



    [​IMG] 983743401__
     
  2. TarasCo

    TarasCo New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2005
    Сообщения:
    106
    все перепутал :)

    адрес - 8003F000

    лимит - 03FF



    удачи :)
     
  3. electra

    electra New Member

    Публикаций:
    0
    Регистрация:
    16 фев 2005
    Сообщения:
    3
    Мне тоже эта идея приходила, ведь в памяти байты расположены "задом-наперёд". Но он всё равно вызывает #GP! Не могу я обратиться к этому адресу. Подскажите, пожалуйста. 8003F000 - нет доступа!
     
  4. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Из ring-3 туда доступа и не должно быть ;)
     
  5. electra

    electra New Member

    Публикаций:
    0
    Регистрация:
    16 фев 2005
    Сообщения:
    3
    Мда... ;) Как всё не просто. Подскажитё ещё, пожалуйста. Каким образом получить дескриптор сегментного регистра CS, например? Допустим, я его получил, меняю значение DPL на 00b, перезагружаю CS и получаю Ring-0 или... облом?? Спасибо.
     
  6. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    скачай с этого сайта KmdKit by Four-F, там есть пример чтения GDT.

    как попасть в r0 - в его же статьях, там и список литературы найдёшь ;)