Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: команда NTCALL в SoftIce  (Прочитано 8198 раз)
0 Пользователей и 1 Гость смотрят эту тему.
[nike]
Гость
« : 20-12-2003 11:37 » 

Если я не ошибаюсь, команда NTCALL показывает таблицу системных сервисов. Вопрос в том, почему в документации NTDDK ZwCreateFile
называется ZwCreateFile, а в SoftIce она называется NtCreateFile.
Почему имена не совпадают?
P.S. я скорей всего вопрос не очень понятно задал.
Записан
[nike]
Гость
« Ответ #1 : 20-12-2003 11:44 » 

И еще вопросик. IoCreateFile тоже сервис ядра? И если да, то почему SoftIce его не показывает?
Записан
maaaaaad
Гость
« Ответ #2 : 21-12-2003 10:44 » 

Цитата

почему в документации NTDDK ZwCreateFile
называется ZwCreateFile, а в SoftIce она называется NtCreateFile


Если вещи имеют разные имена, то эти вещи - разные.

в ntoskrnl ZwCreateFile вызывает NtCreateFile через шлюз int 2e.

Цитата

IoCreateFile тоже сервис ядра?

Да.

Цитата

И если да, то почему SoftIce его не показывает?

Это вопрос терминологии. Не захотели разработчики включить IoCreateFile в NTCALL. Туда много чего не включено.
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #3 : 22-12-2003 06:20 » 

Цитата

в ntoskrnl ZwCreateFile вызывает NtCreateFile через шлюз int 2e.


Ага. Только на современных процах есть новый вызов sysenter и могут юзать его.

Разница между Zw и Nt функциями в том что при вызове Zw функции меняется PreviousMode для текущего потока на тот, который был при вызове ф-ции, а при вызове Nt ф-ции он не изменяется. PreviousMode - это поле в структуре KTHREAD которое указывает на то из какого режима (KernelMode or UserMode) был сделан вызов и е в зависимости от этого принимают решение проверять разшение на доступ(DACL) или нет- в случае KernelMode его не проаеряют, UserMode проверяют. То есть если из драйвера вызывать только Nt ф-ции может выйти так, что PreviousMode будет UserMode и начнется проверка разрешений и драйверу не дадут доступ к объекту.
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #4 : 22-12-2003 06:22 » 

Цитата

Цитата:

IoCreateFile тоже сервис ядра?


Да.

Цитата:

И если да, то почему SoftIce его не показывает?


Это вопрос терминологии. Не захотели разработчики включить IoCreateFile в NTCALL. Туда много чего не включено.



NTCALL показывает только ф-ции из таблицы системных ф-ций- это массив указателей на функции. IoCreateFile не входит туда.
Записан
maaaaaad
Гость
« Ответ #5 : 22-12-2003 10:11 » 

Цитата

Только на современных процах есть новый вызов sysenter и могут юзать его


Что за sysenter? Где почитать о нем?
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #6 : 22-12-2003 10:53 » 

Цитата

Что за sysenter? Где почитать о нем?


В Интеловской документации на процессоры, по моему начиная с PII уже есть, в P4 есть точно.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines