Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Вниз

А где находятся функции типа 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.034 c
14-1100140195
VuDZ
2004-11-11 05:29
2004.11.28
Я вернулся


1-1100159363
cvg
2004-11-11 10:49
2004.11.28
Как бороться с Access violation?


14-1100209257
Gero
2004-11-12 00:40
2004.11.28
Ваши любимые тосты


14-1100070632
Суслик
2004-11-10 10:10
2004.11.28
service pack


14-1100018313
ОлегЪ
2004-11-09 19:38
2004.11.28
Новые программки...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский