Необходимо получить список невыгружаемых драйверов

Тема в разделе "WASM.NT.KERNEL", создана пользователем LL_coder, 1 дек 2007.

  1. LL_coder

    LL_coder New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2007
    Сообщения:
    20
    Необходимо получить список невыгружаемых драйверов, для чего
    требуется перечислить DRIVER/DEVICE_OBJECT загруженных драйверов

    В описании структур (ntddk.inc) есть фрагмент:

    DEVICE_OBJECT struct
    ......
    db 3 dup(?); padding
    UNION Queue
    ListEntry LIST_ENTRY <> ; 0034h
    Wcb WAIT_CONTEXT_BLOCK <> ; 0034h
    ENDS ; Queue
    ...

    DEVICE_OBJECT ends

    однако на практике никаким ListEntry там не пахнет: проверил в SoftIce для нескольких драйверов увидел только нули.
    Надеюсь на вашу поддержку.
     
  2. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    LdrDataTableEntry = (PLDR_DATA_TABLE_ENTRY) DriverObject-> DriverSection
    ||
    http://www.rootkit.com/newsread.php?newsid=209
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    перечисляешь DRIVER_OBJECT из \Driver, а у них смотришь DriverObject->DeviceObject->NextDevice->NextDevice->NextDevoce..
     
  4. LL_coder

    LL_coder New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2007
    Сообщения:
    20
    Great
    Поле NextDevice заполняется не для всех устройств. Подозреваю, что указывает оно на следующее устройство в стеке

    nester7
    Будем разбираться
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    атнюдь, стек составляется из указателей AttachedDevice и DevObjExtension->AttachedTo.
    а поле NextDevice конечно не для всех заполняется - AFAIR, оно указывает на следующий девайс, созданный данным драйвером. то есть тебе как раз катит - перечисляешь все драйвера, а потом по этому полю перечисляешь все девайсы для конкретного драйвера.