Форум: "Потрепаться";
Текущий архив: 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.04 c