Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.28;
Скачать: CL | DM;

Вниз

А где находятся функции типа KeSetTimer, KeWaitForSingleObject?   Найти похожие ветки 

 
Piter ©   (2004-11-08 17:36) [0]

Есть ведь такие функции в ядре NT. А где они находятся? Тоже, наверное, в какой-нибудь библиотеке? А что тогда мешает обычному приложения использовать такие функции? Это какие-то специальные библиотеки, которые Windows не даст загрузить в режиме пользователя или сама библиотека проверяет, что она грузится не из режима ядра и не дает себя загрузить? Или как все происходит?

P.S. Ногами не пинайте :)


 
Маг Похмеляйнен   (2004-11-08 18:29) [1]

Это для драйверов ф-и, а для юзеров есть SetTimer и WaitForSingleObject, что почти то же самое


 
easy ©   (2004-11-08 18:36) [2]


> А где они находятся?

в ntoskrnl.exe


 
Piter ©   (2004-11-08 19:38) [3]

ничего себе... 1217 функций... не могут же они быть все реализованы в этом exe"шнике? И куда же этот exe"шник ссылается, на какие библиотеки?

И что мешает использовать эти функции режима ядра в режиме пользователя?


 
Nous Mellon ©   (2004-11-08 19:45) [4]

Насколько я знаю в результате при вызове тобой
SetTimer и WaitForSingleObject
отработают именно
KeSetTimer, KeWaitForSingleObject
пройдя через посредников, таких как NTDLL.dll
>  И куда же этот exe"шник ссылается, на какие библиотеки?

Он же вроде бы и есть ядро


 
Nous Mellon ©   (2004-11-08 19:50) [5]

Цитата из Руссиновича:
"Для каждой из этих [Win32Api] функций в NTDLL существует точка входа с тем же именем. Код внутри функции содержит... ... команду перехода в режим ядра для вызова диспетчера сис. сервисов, который... вызывает уже настоящий сервис режима ядра из ntoskrnl.exe"


 
Piter ©   (2004-11-08 21:35) [6]

Nous Mellon ©   (08.11.04 19:50) [5]
Код внутри функции содержит... ... команду перехода в режим ядра


блин, жутко интересно - а как это? Комманда перехода... вот исполняется этот код в контексте потока, вызвавшего эту функцию DLL, а как переходит в режим ядра? Какое-то указание системе и поток тут же переносится в режим ядра? или как? А что мешает сделать такой переход обычной DLL?

вызывает уже настоящий сервис режима ядра из ntoskrnl.exe

блин, ну не верю я, что 1217 функций все реализованы в этом exe"шнике...


 
Nous Mellon ©   (2004-11-08 21:50) [7]

Терзает любопытсво? Пройдись по нему СофтАйсом и поанализируй :)
Я так думаю это интересно...


 
Nous Mellon ©   (2004-11-08 21:51) [8]

Заметь там в цитате про вызов диспетчера сис. сервисов. Наводит на мысли.


 
Nous Mellon ©   (2004-11-08 21:53) [9]


> А что мешает сделать такой переход обычной DLL?

Системное адресное пространство в NT системах защищено от правки из пользовательского режима. А при вызове таких функций в него(адресное пространство) вносятся изменения. ИМХО.


 
Nous Mellon ©   (2004-11-08 22:32) [10]

Лень было писать но чтобы тебя любопытство не терзало:
Вначале работы функции в NTDLL.dll она формирует номер системного сервиса(зависит от функции) и кидает его в eax. Потом выполняет прерывание(ловушку) int 0x2e. Благодаря этому прерыванию и осуществляется переход в режим ядра и вход в диспетчер системных сервисов, который по номеру из eax, сопоставляет его с индексами своей таблицы DescriptorTable и выполняет нужную ф-цию.


 
Gero ©   (2004-11-08 22:34) [11]


> Piter ©   (08.11.04 21:35)
> блин, жутко интересно - а как это? Комманда перехода...
> вот исполняется этот код в контексте потока, вызвавшего
> эту функцию DLL, а как переходит в режим ядра? Какое-то
> указание системе и поток тут же переносится в режим ядра?
> или как? А что мешает сделать такой переход обычной DLL?

У Рихтера все это есть.
Мой тебе совет: купи себе книгу Рихтера.
Именно не электронный вариант, а бумажную книгу.
Я вот на днях в магазине увидел на русском языке отличное издание, с диском.
Пролистал, загорелся, буду покупать :)


 
Nous Mellon ©   (2004-11-08 22:37) [12]

А я обладатель и Рихтера и Руссиновича с Соломном порекомендовал бы второе. Там значительно подробнее. У РиСа одну страницу чтобы понять надо раза три прочитать. Пища для ума.


 
Nous Mellon ©   (2004-11-08 22:38) [13]

Только учти что там про программирование ни слова нет. Там только архитектура и алдгоритмы работы ядра. У этих книг разные цели.


 
Burmistroff   (2004-11-08 22:56) [14]

Еще на английском есть замечательные книги:

По недокументированным моментам и устройству ОС Prasad Dabak
http://www.windowsitlibrary.com/Documents/Book.cfm?DocumentID=356

И Garry Nebbet "Windows NT/2000 Native API Reference" (есть в частности на club.shelek.com)


 
Alex Konshin ©   (2004-11-08 23:14) [15]

Еще настоятельно рекомендуется сходить на сайт Руссиновича http://www.sysinternals.com (если еще там не был).

У меня на сайте есть пример работы с ntdll (NativeAPI) и с ним соответственно юнит с кучкой функций оттуда. Что-то подобное есть у Игоря Шевченко, вроде должно лежать в кладовке, думаю, что он сам тут объявится и скажет где и что.

У меня есть Nebbet, но так и не читал пока - незачем.


 
Piter ©   (2004-11-08 23:52) [16]

Nous Mellon ©   (08.11.04 22:32) [10]
Вначале работы функции в NTDLL.dll она формирует номер системного сервиса(зависит от функции) и кидает его в eax. Потом выполняет прерывание(ловушку) int 0x2e. Благодаря этому прерыванию и осуществляется переход в режим ядра и вход в диспетчер системных сервисов, который по номеру из eax, сопоставляет его с индексами своей таблицы DescriptorTable и выполняет нужную ф-цию.


а что мешает обычному приложению сделать то, что делает NTDLL.dll? Выполнить прерывание... и далее по тексту?

Gero ©   (08.11.04 22:34) [11]
У Рихтера все это есть.
Мой тебе совет: купи себе книгу Рихтера.


книга Рихтера у меня уже давно есть. По крайней мере, которая "Создание эффективных Win32 приложений с учетом специфики 64 разрядной ОС" или типа как то так. Там примеры на C.
Но в этой книге вовсе не описывается КАК все происходит в системе. Там написано КАК это использовать. Про режим ядра там вообще ничего нету (или я просто не видел).

Nous Mellon ©   (08.11.04 22:38) [13]
Только учти что там про программирование ни слова нет. Там только архитектура и алдгоритмы работы ядра


ОТЛИЧНО! Вот именно это я бы и хотел почитать! А грамотно написано? И можно поподробнее - что за книга, как называется, какой год издания?


 
Nous Mellon ©   (2004-11-09 07:22) [17]


> ОТЛИЧНО! Вот именно это я бы и хотел почитать! А грамотно
> написано? И можно поподробнее - что за книга, как называется,
> какой год издания?

Книга Must have. "Внутреннее устройство Windows 2000" В свежем издании, как у меня, 2004 года есть еще такая интересная глава как рассказ о загрузке ОС. В предыдущих нет.


 
Nous Mellon ©   (2004-11-09 07:23) [18]

Насчет гнрамотности написания: Они во время написания имели доступ к коду ОС. Думается это было подспорьем.


 
VMcL ©   (2004-11-09 07:32) [19]

>>Piter ©  (08.11.04 23:52) [16]

>а что мешает обычному приложению сделать то, что делает NTDLL.dll? Выполнить прерывание... и далее по тексту?

То, что в следующей версии ОС (или даже SP) номер прерывания, к примеру, может поменяться, а имя функции - нет.


 
Nous Mellon ©   (2004-11-09 07:38) [20]


> а что мешает обычному приложению сделать то, что делает
> NTDLL.dll? Выполнить прерывание... и далее по тексту?

Тама в цитате написано: вместо
> ... ...

что команда перехода архитекутурно-зависима, равно как и сама NTDLL.dll, выпускаемая в разных версиях ядра в разных версиях.


 
Ihor Osov'yak ©   (2004-11-09 09:28) [21]

2 [18] Nous Mellon ©   (09.11.04 07:23)

Не совсем так. Девид Соломон - да. Марк Руссинович - нет.


 
VMcL ©   (2004-11-09 10:44) [22]

>>VMcL ©  (09.11.04 07:32) [19]

>а имя функции - нет.

API-шной, ессно, а не ядрёной.


 
Игорь Шевченко ©   (2004-11-09 10:49) [23]


> А где находятся функции типа KeSetTimer, KeWaitForSingleObject?
>


В ntoskrnl.exe


> А что тогда мешает обычному приложения использовать такие
> функции?


Режим процессора


> не могут же они быть все реализованы в этом exe"шнике?


Нет, они все в нем реализованы.


> И что мешает использовать эти функции режима ядра в режиме
> пользователя?


Режим процессора


> Что-то подобное есть у Игоря Шевченко, вроде должно лежать
> в кладовке, думаю, что он сам тут объявится и скажет где
> и что.


http://www.schevchenko.net.ru/


> а что мешает обычному приложению сделать то, что делает
> NTDLL.dll? Выполнить прерывание... и далее по тексту?


Ничего не мешает


> А грамотно написано?


Грамотнее я еще не встречал.


 
Nous Mellon ©   (2004-11-09 13:09) [24]


>
> Не совсем так. Девид Соломон - да. Марк Руссинович - нет.

Ну то что знает один... :)


 
Игорь Шевченко ©   (2004-11-09 13:42) [25]

Nous Mellon ©   (09.11.04 13:09) [24]


> Ну то что знает один... :)


Он не говорит другому по причине NDA


 
Piter ©   (2004-11-09 19:55) [26]

Эй, москвичи! Никто не знает, где подешевле можно купить "Внутреннее устройство Windows 2000" ?

VMcL ©   (09.11.04 7:32) [19]
То, что в следующей версии ОС (или даже SP) номер прерывания, к примеру, может поменяться, а имя функции - нет


ну ладно. Получается, что зная ОС - можно без всяких привелегий войти в режим ядра? Даже не драйвером, а вот так просто - из любого приложения?

Игорь Шевченко ©   (09.11.04 10:49) [23]
> А что тогда мешает обычному приложения использовать такие
> функции?

Режим процессора


к сожалению, мне это ни о чем не говорит


 
Burmistroff   (2004-11-09 20:49) [27]

>Он не говорит другому по причине NDA
Официально ;)

>ну ладно. Получается, что зная ОС - можно без всяких привелегий войти в режим ядра? Даже не драйвером, а вот так просто - из любого приложения?

Ну так так оно и происходит :) Привилегии (windows) уже проверяются после переключения в режим ядра.


 
Piter ©   (2004-11-09 22:53) [28]

Ладно, я понял, что никто эту рульную книжку мне цитировать не хочет - где купить ее в Москве по дешевке?


 
Nous Mellon ©   (2004-11-10 13:52) [29]


> Ладно, я понял, что никто эту рульную книжку мне цитировать
> не хочет - где купить ее в Москве по дешевке?

Мне из МОсквы ее за 500р привезли


 
Игорь Шевченко ©   (2004-11-10 13:58) [30]

Piter ©   (09.11.04 22:53) [28]

В книжных магазинах или заказать, найдя по findbook.ru


 
Digitman ©   (2004-11-10 15:20) [31]


> Привилегии (windows) уже проверяются после переключения
> в режим ядра


RPL проверяется не после, а в ходе переключения.
и windows здесь ни при чем.
а "при чем" - конкретная специфика конкретного семейства процессоров, под которое "заточена" конкретная ОС.


 
Digitman ©   (2004-11-10 15:31) [32]


> Piter


я не думаю, что букварь

"Защищенный режим процессоров Intel 80286/80386/80486.
Практическое руководство по использованию защищенногго режима."
Москва."ДИАЛОГ-МИФИ". Авторы - небезызвестные братья Фроловы.

утратил по сабжу вопроса хоть какую-то актуальность.
и неважно, что букварь мог и не переиздаваться начиная с 1993г. - суть с тех пор НЕ изменилась. Есть прямой смысл найти "фолиант" и проштудировать его от корки до корки - он и по сей день актуален и дае5т ответ на вопрос.


 
Piter ©   (2004-11-11 10:23) [33]

Игорь Шевченко ©   (10.11.04 13:58) [30]
В книжных магазинах или заказать, найдя по findbook.ru


так я ведь насчет подешевле, а не где вообще можно купить...

Digitman ©   (10.11.04 15:31) [32]

ну дык такое старое издание наверняка не продается...


 
Игорь Шевченко ©   (2004-11-11 10:26) [34]

Piter ©   (11.11.04 10:23) [33]


> так я ведь насчет подешевле, а не где вообще можно купить...


Странный ты. Я вот денег не пожалел - купил. Давай я за каждый свой ответ с использованием материалов из этой книжки начну деньги брать ? И начну оплаченные ответы с ответов тебе. И другим порекомендую сделать тоже самое.


 
Piter ©   (2004-11-11 20:31) [35]

Игорь Шевченко ©   (11.11.04 10:26) [34]

а вы про что? Вы сами поняли, что написали?

Извините, но если для вас 500 р. не деньги - то для меня это деньги. И если где-то книга стоит на 100р. дешевле - то я поеду туда.

У меня мало денег - согласен. Вы не хотите меня в этом обвинить?


 
Игорь Шевченко ©   (2004-11-11 22:22) [36]

Piter ©   (11.11.04 20:31) [35]

Вот ты странный - за интернет платить деньги у тебя есть, а на полезную книжку - нету.


> И если где-то книга стоит на 100р. дешевле - то я поеду
> туда.


Так походи по инетовским магазинам, поищи.
Или езжай, елки-палки. Как бы ты жил, если бы не было интернета, интересно ?


> У меня мало денег - согласен


А у кого их много ?


 
Piter ©   (2004-11-12 22:55) [37]

Игорь Шевченко ©   (11.11.04 22:22) [36]
Вот ты странный - за интернет платить деньги у тебя есть, а на полезную книжку - нету


за интернет в основном не я плачу. Он у меня полухалявный... в общем, долго объяснять :)

Так походи по инетовским магазинам, поищи

чует мое сердце, что в инет магазинах дороже, чем можно найти в книжных.

Игорь Шевченко ©   (11.11.04 22:22) [36]
Или езжай, елки-палки. Как бы ты жил, если бы не было интернета, интересно ?


так бы и жил. Хуже жил, но жил. А что?

Блин, вообще я ожидал ответа типа "Был сегодня в библио-глобусе - видел сабж 2004 года за 150р.". А не учения про самостоятельность. Я спросил - где бы подешевле. Если кто знает - скажите.
Не знаете - не говорите :)


 
Игорь Шевченко ©   (2004-11-12 23:04) [38]

Piter ©   (12.11.04 22:55) [37]

Так раз у тебя полухалявный инет - походи по книжним магазинам, и будет не сердце чуять, а что-нибудь еще :)


> Блин, вообще я ожидал ответа типа "Был сегодня в библио-глобусе
> - видел сабж 2004 года за 150р.".


У меня на книжке стоит цена 544 рубля. А насчет библио-глобуса, так съезди, не ленись. Это разве кому-то из присуствующих надо ? Это тебе надо. Вот и шевелись :) Удачи.


 
Verg ©   (2004-11-12 23:20) [39]

Да брось ты эти книжки и слушай Queen!

:))


 
Burmistroff   (2004-11-13 01:07) [40]

Полезнее английский выучить и в оригинале книги в нете читать, бесплатно ;)

> [31]
>> Привилегии (windows) уже проверяются после переключения
>> в режим ядра

RPL проверяется не после, а в ходе переключения.

Я не зря поставил "windows" в скобках ;) Под привилегиями я там понял именно права в windows (как, например на доступ к процессу в OpenProcess), а не то, что реализовано архитектурой процессора.



Страницы: 1 2 вся ветка

Текущий архив: 2004.11.28;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.028 c
3-1098790713
Галинка
2004-10-26 15:38
2004.11.28
Как сохранить в БД цвет...


3-1099351613
Apophis
2004-11-02 02:26
2004.11.28
DBGrid и блокировка клавиш курсора и ESC


3-1098803484
clickmaker
2004-10-26 19:11
2004.11.28
MS SQL, LPC & TCP/IP


1-1100254023
Viktop
2004-11-12 13:07
2004.11.28
Копия объекта


3-1099066953
MAVOR
2004-10-29 20:22
2004.11.28
ПОИСК