Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Assembler FAQ > Загрузка драйвера, без записи в реестр


Автор: ProgramMan 08.02.07, 13:56

Загрузка драйвера, без записи в реестр

Как загрузить драйвер?
Многие вспомнят функция для работы с сервисами:
CreateService - создаёт в реестре ключ, с именем сервиса, путём к образу, параметрами загрузки
StartServic - загружает сервис, по ИМЕНИ сервиса(имя образа не принемает)
DeleteService - удаляет из реестра запись о сервисе
Но иногда, бывает необходимо загрузить драйвер, без записси в реестр, тогда можно воспользоватся недокументированным флагом из функции ZwSetSystemInformation, правдо этот способ налогает определённые ограницения на использование драйвером памяти.

Загрузчик

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    include 'win32ax.inc'
    include 'Driver.mac'
    SystemLoadImage = 38
    .data
    GregsImage:
    Name: UNICODE   '\??\\C:\DriverTest.sys'
    GregsImage_L =$-GregsImage
    .code
    start:
    invoke  ZwSetSystemInformation, SystemLoadImage,GregsImage,8
    ;ZwSetSystemInformation НОМЕР_ФУНКЦИИ, АДРЕС_ПАКЕТА_С_ДАННЫМИ, ДЛИНА_ПАКЕТА
    invoke  ExitProcess,0
    .end start

Код драйвера

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    format PE DLL native 4.0 at 10000h
    entry main
    include '%include%\win32a.inc'
    include 'Driver.mac'
    section '.text' code readable writeable executable notpageable
    MSGs   db 'Driver load',0dh,0ah,0
    proc main,pDriverObject,pDriverPath
    push MSGs
    call [DbgPrint]
    add esp,4
    mov eax,STATUS_DEVICE_CONFIGURATION_ERROR
    ret
    endp
     
    ;*******************************************IMPORT******************************
    section '.idata' import data readable writeable
            ;syslibrary ntoskrnl,"ntoskrnl.exe"
            library ntoskrnl,"ntoskrnl.exe"
            include 'ntoskrnl.inc'
    mov eax,main
    section '.reloc' data fixups readable discardable

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)