![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нулевое кольцо защиты (Ring0) [D6, Win95/98, WinXP]
SDW-syscoder © (2004-02-23 09:36:00)Каким способом можно выполнить участки кода программы (процедуры или функции), написанные с использованием asm-вставок в этом кольце защиты, т.к. ОС Windows XP(2000) не разрешает на прямую работать с регистрами, прерываниями и портами компьютера.
Компонент TVicHW32 не впаривать:).
Kerk (2004-02-27 14:48:00) [21]2h0use
В общем, технология перехода в Ring0 продемонстрирована. Осталось только без глюков реализовать.
> Игорь Шевченко © (27.02.04 11:35) [40]
> Хорошая работа.
Старался... :)
Игорь Шевченко (2004-02-27 11:35:00) [22]Kerk © (27.02.04 08:56)
Хорошая работа. Насчет туфты беру сови слова обратно. Правда, не пищит, но и компьютер не перезагружает, уже плюс.
Лучше бы вместо пищания сделать чтение управляющих регистров процессора. И сравнить с результатами w2k_mem Свена Шрайбера.
VMcL (2004-02-27 11:17:00) [23][36]
Аналогично (WinXP Prof + SP1).
В натуре пищит :)
З.Ы. Приду, дома проверю на Win2K, Win98SE... и FreeBSD 5.1 ))
h0use (2004-02-27 11:15:00) [24]Пищит, то оно пищит, но вот добавил я туда для теста вызов
rdmsrи все упало синим экраном :(
Polevi (2004-02-27 10:09:00) [25]гм, пищит
Kerk (2004-02-27 08:56:00) [26]Вот написал. Переходит в Ring0 и пищит спикером.
http://kerk-files.narod.ru/ring0.zip
Тестировал только в WinXPpro + SP1. Работает как часы.
Честное слово... :)))
N169 (2004-02-26 21:00:00) [27]Игорь Шевченко © (26.02.04 11:17) [17]
http://www.telesys.ru/picprog/picpupgr.shtml
файл с дистрибутивом ppw_b6.exe
Digitman (2004-02-26 16:13:00) [28]
> Kerk © (26.02.04 14:04) [32]
а ты не спорь ... просто дискутируй на полном серьезе и на равных ... можно подумать - напрягает тебя кто-то ...
стартовал я этот пример у себя (W2k Pro WS SP3) - получил "blue dead screen" .. как и ожидал ... и знаю - почему)
Polevi (2004-02-26 14:10:00) [29]>Kerk © (26.02.04 13:25) [25]
парава админиские, так уж я прывык на своей машине с такитми правами работать :)
Kerk (2004-02-26 14:04:00) [30]
> Игорь Шевченко © (26.02.04 13:54) [30]
ОК. Сегодня займусь написанием примера.
О результатах доложу.
> Digitman © (26.02.04 13:56) [31]
Ну наверно не врет. Но почему ты не допускаешь, что он может ошибаться.
Сразу открыть на SECTION_MAP_WRITE на самом деле нельзя.
Нужно сначала поменять права доступа.
GetSecurityInfo/SetEntriesInAcl/SetSecurityInfo
P.S. Вообще сразу с двумя мастерами спорить сложно - сказывается психологическое давление голубых значков. :)
Digitman (2004-02-26 13:56:00) [31]Цитирую А.В.Коберниченко "Недок.возможности Win NT" :
"..Кроме того, процесс (даже запущенный пользователем с правами администратора) не может открыть эту секцию с правом записи данных (т.е. с правом SECTION_MAP_WRITE). Все, что может процесс пользователя, это открыть секцию на чтение данных, спроецировать отдельные участки секции и попытаться определить по находящимся там данным диапазон физических адресов.."
Что, врет Коберниченко, так получается ?
Игорь Шевченко (2004-02-26 13:54:00) [32]
> А почему ты считаешь, что это невозможно?
> Физическую память на запись открыть можно. Добавить новый
> селектор в GDT тоже можно.
Тебя, как написавшего курсовой, не затруднит написать РАБОТАЮЩИЙ пример ? Чтобы точки над i расставить окончательно.
Kerk (2004-02-26 13:48:00) [33]
> Не надо путать кислое с плоским. VxD в Win9x необходимы,
> так как на них основана вся работа системы.
Я имел ввиду, что для перехода в Ring0 в Win9x не обязательно писать драйвер. Это все знают и это никого почему-то не удивляет.
> > Переход в Ring0 через \Device\PhysicalMemory недокументирован.
>
> Похоже, что просто не работает...
А почему ты считаешь, что это невозможно?
Физическую память на запись открыть можно. Добавить новый селектор в GDT тоже можно.
Если пример из статьи у тебя не работает, это еще не о чем не говорит.
Игорь Шевченко (2004-02-26 13:40:00) [34]Kerk © (26.02.04 13:37)
> то в Win9x VXD вообще были не нужны
Не надо путать кислое с плоским. VxD в Win9x необходимы, так как на них основана вся работа системы.
> Переход в Ring0 через \Device\PhysicalMemory недокументирован.
Похоже, что просто не работает...
Kerk (2004-02-26 13:37:00) [35]
> Игорь Шевченко © (26.02.04 13:32) [26]
Ну... если тебя послушать, то в Win9x VXD вообще были не нужны.
Переход в Ring0 через \Device\PhysicalMemory недокументирован.
И, возможно, они эту дырку каким-нибудь сервис-паком прикроют...
Игорь Шевченко (2004-02-26 13:32:00) [36]Kerk © (26.02.04 13:25)
Повторяю вопрос - какой тогда смысл в написании драйверов, если есть такой простой и легкий путь получения доступа в режим ядра ?
Kerk (2004-02-26 13:25:00) [37]
> Polevi © (26.02.04 13:12) [24]
Права админские?
> Игорь Шевченко © (26.02.04 12:44) [23]
Я лично писал утилиту, которая работает с PhysicalMemory (read/write) в WinXP как часть курсового по системному ПО. Руссинович это тоже делал у него на сайте исходники были.
А получив доступ на запись в физ.память. Добавить новый селектор в GDT - (IMHO) дело техники...
Polevi (2004-02-26 13:12:00) [38]>Kerk © (26.02.04 12:29) [22]
у меня Win2k Server sp4 - "Отказано в доступе к устройству"
Игорь Шевченко (2004-02-26 12:44:00) [39]Kerk © (26.02.04 12:29)
Система аналогичная, результат описан выше. Вот ты сам подумай, если бы можно было так легко и просто входить в нужный режим, стали бы Руссинович с Когсуэллом какие-то драйверы режимая ядра изобретать для своих утилит ? Ссылки на то, что "они не знали" не принимаются, так как знают они гораздо больше, чем "Voodoo // SMF из Siberian Bears Virus Club"
Kerk (2004-02-26 12:29:00) [40]
> Игорь Шевченко © (26.02.04 12:13) [20]
У меня работает.
Win2k Prof + sp4