в аналитической работе PANDEX, я прочитал следующее:IRP_MJ_DEVICE_CONTROL, чтобы скрыть процесс?
"The driver export its device object to user mode through symbolic link
path \\.\Runtime.
It implements functionality to hide a process through its IRP_MJ_DEVICE_CONTROL
dispatch routine when a user-mode program calls the DeviceIoControl API with
process id as the input parameter"
(примечание: упомянутый водитель выполняет стелс руткит-активность)
С «стелс руткит деятельности» и мой knwoledge о драйверах не лучший, I начал читать документацию о концепции всего драйвера, используемой в окнах.
Итак, я собираю следующее (я пытаюсь объяснить все в своих словах, потом задам вопрос): Например, если приложение нуждается в данных с устройства, то оно связывается с os, os контакт с драйвером, драйвер знает, как связаться с устройством, и поэтому драйвер передает необходимые данные в os, который передает его затем в приложение. Итак, стек драйверов обрабатывает запросы IRP. Объект устройства представляет собой устройство. Один или несколько объектов устройства связаны с устройством. Они являются объектами всех операций на устройстве.
Итак, если они говорят, что он «экспортирует объект устройства в пользовательский режим», то я должен спросить: a) Как они это делают? b) экспорт объекта устройства в пользовательский режим также означает, что теперь у меня есть доступ к нему из приложения режима пользователя, верно? (который обычно невозможен)
О 2-й части, особенно о IRP_MJ_DEVICE_CONTROL, я знаю, что отправляется диспетчером ввода-вывода. Но что именно это делает? И как они используют его, чтобы скрыть процесс? Я также прочитал, что этот IRP_MJ_DEVICE_CONTROL отправляется от имени приложения пользовательского режима , который вызвал функцию DeviceIoControl. Об DeviceIoControl Я прочитал, что он позволяет приложению напрямую связываться с устройством. Таким образом, он передает управляющие коды, которые представляют собой операцию, выполняемую на устройстве. И они говорят, что он скрывает процесс с ним, поместив идентификатор процесса в DeviceIoControl.
Но опять же, как они скрывают этот процесс ...?
PS: Я бы сказал, что «функциональность» (не объяснено в анализе), которые они упоминали берет часть укрытия, но я не знаю, почему они поставили всю IRP_MJ_DEVICE_CONTROL и т.д.
Итак, Я бы рад, если бы кто-то сказать мне, как работает такой вся вещь, что концепция водителей имеет смысл в том случае, ...
наилучших пожеланий,
Как драйвер скрывает процесс, в этой цитате не обсуждается. – eryksun
Символическая ссылка предназначена для открытия ручки устройства. (Например, символическая ссылка для диска C: в пространстве имен объектов, '\ Global ?? \ C:', указывает на фактическое устройство, такое как '\ Device \ HarddiskVolume1'.) Win32' DeviceIoControl' используется для отправки идентификатор целевого процесса. Это вызывает системную функцию «NtDeviceIoControlFile», которая может использовать быстрый ввод-вывод, если драйвер реализует ее, а также очереди и отправляет пакет IRP_MJ_DEVICE_CONTROL в драйвер. – eryksun