Session manager subsystem передача управления

Тема в разделе "WASM.WIN32", создана пользователем zerodawn, 22 янв 2018.

  1. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    94
    Привет, пишу свой subsystem для автостарта супер молварэ. Пишу в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems

    Все ок, моя приложуха запускается и т.д, но... как вернуть управление? Гугл не помог, это какой-то сплошной андок. Пытался реверсить csrss особо не понял, он вроде как не возвращает управление.

    Пробовал:

    1) RtlExitUserProcess - BSOD
    2) return TRUE - BSOD
    3) NtDelayExecution - бесконечный черный экран

    Как быть? Как оповестить smss.exe чтобы он продолжил прогрузку всего необходимого, а не стопорился?
     
    Последнее редактирование: 22 янв 2018
  2. superakira

    superakira Guest

    Публикаций:
    0
    zerodawn, csrss не может завершиться - это бсод со статусом, что упал сис процесс.
    Метод распиши подробнее - так не понятно.
     
  3. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    94
    Да все просто. В той ветке прописываю в Required условный Test рядом с Windows и Debug, а в Test пишу пусть до своего приложения %Systemroot%\system32\test.exe

    После чего при ребуте во время инициализации идет вот так:

    1) Создает переменные среды
    2) запускает основные подсистемы ядра ( Win32k.sys графику )
    3) Читает Required и запускает оттуда: csrss.exe, и мой test.exe
    4) Создает устройства и т.д, память и прочую хрень

    Вот на 3-м пункте беда. После запуска smss'м моего test.exe он ожидает чего-то. Если я не возвращаю управление или делаю NtDelayExecution винда не врубается, идет бесконечный черный экран. Очевидно, что smss чего-то от меня ждет. Если я себя убиваю или поток или процесс ( ну или возвращаю через return ) то бсод с надписью "Initial Session process has been unexpectedly terminated with code ..."

    И вот вопрос. Как правильно заставить smss продолжить загрузку, а не стопорить все? Может там какая-то межпроцессорная синхронизация, а объект на нее передается в аргументах?
     
  4. superakira

    superakira Guest

    Публикаций:
    0
    zerodawn, сомнительный метод загрузки, %Systemroot%\system32\ - попробуй сюда пропишись еще, права ведь или туда любой путь воткнуть можно? Ну и плюс - там все голое, в том плане там же еще на нативе все кодить надо? Только как прокси загрузчик пойдет.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems - сюда права не нужны?

    Хотя интересно. Чуть позже покопаю думаю.
     
  5. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    94
    Нужны, во все HKLM нужны права. Да, только на нативе, только /SUBSYSTEM:NATIVE. Да это особо не беда, если подождать старта винды, то думаю можно изголиться и прогрузить себе тот же kernel и т.д. Вот вопрос как ее подождать...

    Но оно того стоит, авторан до Winlogon, до старта большинства программ. Вот интересно, драйвера грузятся после или до менеджера сессии. Если после, то можно еще killav сделать как в буткитах раньше пилили

    Если разберешься - пиши. Я тоже буду думать.
     
  6. superakira

    superakira Guest

    Публикаций:
    0
    zerodawn, часть до. но какая точно не помню - в той части я копался лет 5 назад в полседний раз.
    основная проблема - права, чтобы с дроппера прописаться
     
  7. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    94
    У кого какие еще мысли?

    Ну хз, права админа не такая уж и большая проблема.