На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> LDT
    Как найти LDT в Win2000?

    sldt ax - в ax нуль. Почему?
      Потому что LDT в NT/2000/XP вообще нет!
      В NT/2000/XP LDT для новой задачи в отличие от Win9x не создается, поэтому sldt ax будет давать всегда в результате AX=0.

      Не парься, таким макаром ты в Ring0 в NT не влезешь. Кроме написания драйвера я других возможностей не знаю. :)
        2 rivitna:
        У меня есть вопрос. Как же обходится XP,2000 без LDT ? (просто в книге написано, что задачи которые используют GDT работают в нулевом кольце, но не работают же все приложения в этих осях в этом кольце... это же неразумно  :-/).

        Вот я тут чиал ещё книгу (Фроловы однако умные ребята  :)):
        ExpandedWrap disabled
          <br>Дело в том, что 32-разрядная операционная система Windows NT создает для каждого 32-разрядного приложения отдельную локальную таблицу дескрипторов LDT и, следовательно, отдельное адресное пространство. Поэтому никакое приложение ни при каких обстоятельствах не может иметь доступа к адресному пространству другого приложения. <br>
          По моему Ilyia прав. Не могут все задачи использовать GDT.

          Я просмотрел размер своей GDT. Она занимает 1024. Это 128 дескрипора. Если посмотреть диспечер задач, то там занято 3401 дескрипора (на этот момет). Можно, конечно, не верить винде. Но все равно чувствуется, что не может быть всего 128 дескрипора.

          Хорошо, допустим, rivanta, ты прав. Как написать драйвер?
            Дык.... LDT-то и не нужен. Все сегментные регистры и их дескрипторы одинаковые, меняется только таблица страниц. Это в 32-битных виндовых прогах. В 16-битных, по-видимому, нужен. (Это насколько я себе представляю.)
            А если интересно насчёт перехода в ноль, читай на http://z0mbie.host.sk/ 4 статьи "Война в Ring0". Там и про НТ и 2000, в частности, есть.
              2 Ilyia:
              Цитата
              Вот я тут чиал ещё книгу (Фроловы однако умные ребята  ):

              Дело в том, что 32-разрядная операционная система Windows NT создает для каждого 32-разрядного приложения отдельную локальную таблицу дескрипторов LDT и, следовательно, отдельное адресное пространство. Поэтому никакое приложение ни при каких обстоятельствах не может иметь доступа к адресному пространству другого приложения.  


              Я заочно знаком с этими умными ребятами, по крайней мере, вместе ТЗ писали... :)
              И знаком с их методами работы... :) Не стоит на нее ссылаться, как на Библию по PM. :)
              Книжка хорошая, однако была написана в 1992 году, то есть на момент существования NT 3.51 и Windows 3.1...
              Видишь ли, Ilyia, команда "SLDT AX" - PL-независима, то есть должна выполняться для любого уровня привилегий, это дальше уже когда полезешь в GDT, получишь от NT исключение GP. Если AX=0, то железобетонно, что для пользовательского приложения LDT не создается. Да и в Win9x по большому счету она тоже не нужна, потому что чаще всего пуста.

              Далее... Не нужно много сегментов и соотвественно дескрипторов, потому что защита памяти в Win32 реализована по сегментно-страничному принципу, а не СЕГМЕНТНОМ!!! Подозреваю, что про это говорил Kernel Panic.

              2 Bardn:
              Боюсь объема форума не хватит для рассказа про написание драйвера, пользуй DDK и примеры оттуда. Проще писать в NuMega DriverStudio.

              2 Kernel Panic:
              Плохому учишь!!! Не есть хорошо! :) (в данном форуме не приветствуется явно хакерская и вирусная информация - буду наказывать, на это есть соответствующие сайты)
              Да и боюсь, мало что полезного почерпает оттуда товарищ!
              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0407 ]   [ 14 queries used ]   [ Generated: 17.05.24, 01:59 GMT ]