енумерация сервисов в кернеле

Тема в разделе "WASM.WIN32", создана пользователем cresta, 13 янв 2006.

  1. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Как можно получить список сервисов работая в кернеле ?(нужна аналогия юзермодного EnumServicesStatusEx).

    Спасибо.
     
  2. MegaZu

    MegaZu New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    290
    На руткит.ком была статья об етом.



    Можешь парсить файл реестра вручную , читать с ServiceDatabase, или визвать юзермодный код для EnumServicesStatus.
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Если парсить реестр, то получишь только имя, текущий статус, номер процесса, запустившего сервис и проч. инфа недоступны.



    А как вызывать юзермодный код для EnumServicesStatusEx? Кроме ZwW32Call, ничего не нашёл (она есть только в NT4)
     
  4. MegaZu

    MegaZu New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    290
    Нужно поймать хороший поток, с большым количеством переключений и назначить ему APC. А далее ждать пока поток сменит состояние, тоесть можна никогда не дождаться :) Копай в сторону KeInitializeApc , KeInsertQueueApc.
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Надеяться на "хороший" поток - долго ждать,

    Ссылка оказалась полезной, спасибо.

    Там и нашёл, как избавиться от хука EnumServicesStatusEx, не переходя в кернел