Win2k services

Тема в разделе "WASM.NT.KERNEL", создана пользователем Velheart, 7 июл 2008.

  1. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Привет. Такой трабл: не могу из драйвера прочитать таблицу с указателями на win2k сервисы, т.е. адрес из дбгпринта видно, что нормальный получаю, но при этом при обращении получаю бсод, причем если по этому адресу смотреть в WinDbg, то все нормально, указатели на функции, а софтайс тоже не читает и выдает вопросы, подскажите, плз, кто знает, что это все значит.
     
  2. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Поток, который вызывает сервис win32k должен быть gui потоком.
     
  3. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Это в смысле иначе в его адресном пространстве не будет даже самой таблицы сервисов ???
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    таблица сервисов у негуйного потока как раз в общей части адресного пространства ядра =)
     
  5. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Сорри, если я сильно туплю, но вот я в драйвер-энтри через KeAddSystemServiceTable нахожу SystemServiceTable,
    там в указателе на функции 0хBF999980, и если смотреть по этому адресу в WinDbg, то все ок и там действительно
    нужные указатели на функции (проверил пару штук руками), но при обращении по этому адресу из драйвер-энтри
    получаю бсод, т.е. мне нужно посылать запрос из гуи-потока, чтобы получить доступ, или можно как-то иначе? Или я может вообще все не так понял??
    P.S. А у меня софтайс вообще win2k.sys не видит, это нормально??
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    это пространство сессии (Session Space). оно не во всех процессах одинаковое.
    точнее по дефолту в процессе System, где выполняется драйвер ентри, там ничего нет.
    нужно аттачиться к GUI-процессу, напрример, csrss.
    после этого можно обращаться к этим адерсам.
     
  7. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Great

    Сенкс, понял, а то я что-то уже совсем было расстроился =))