· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› как вызвать ф-ции Crypto API из драйвера

Посл.отвђт Сообщенiе


Дата: Ноя 17, 2003 13:05:21 · Поправил: Безпощадный даос

Как осуществить вызов из Ring0(kmd) процедуры в Ring3?
Это общий вариант вопроса. Более частный : как вызвать ф-ции Crypto API из драйвера?
P.S. Как изменить название темы ?


Дата: Ноя 17, 2003 15:16:26

Название темы может изменить только модератор


Дата: Ноя 17, 2003 17:18:13

[ MoKC0DeR: Как осуществить вызов из Ring0(kmd) процедуры в Ring3? ]

Нужно переключится на адресный контекст процесса в котором сидит модуль экспортирующий эти функции, если ты конечно уже не в нем. Это просто Доступ к памяти другого процесса из драйвера. Найти адрес нужного модуля, например вызвав ZwQuerySystemInformation. Найти адрес функции, например через экспорт и вызывать эту функцию по указателю. Если вызываемая функция делает какие-нить внешние вызовы, например из kernel32.dll или не дай бог из user32.dll, то тут хрен знает что будет, но наверное ничего хорошего :-) И еще одна проблема - размер стека ядра всего несколько страниц. Так что эта функция запросто можно его переполнить.

Но сам я такого никогда не делал.


Дата: Ноя 18, 2003 10:38:57

Four-F
Спасибо. Попробую. Драйвер EFS использует crypto API через LPC. Мне надо написать драйвер умеющий делать примерно тоже самое, только использоваться будет не для файловых систем.
Может у кого есть пример использования LPC ?


Дата: Ноя 18, 2003 14:32:44

У Гарри Неббета (Native API Reference) в главе "12 Ports (Local Procedure Calls)" есть простой и понятный пример "Example 12.1: Connecting to a Named Port"


Дата: Ноя 18, 2003 19:06:57

Не только. В старой доброй Undocumented Windows NT тоже есть описание LPC. А я собираюсь писать драйвер-перехватчик LPC.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.067