Привелегии уровня ядра

Тема в разделе "WASM.WIN32", создана пользователем ZaikinMaxim, 12 мар 2005.

  1. ZaikinMaxim

    ZaikinMaxim New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    8
    Адрес:
    Russia
    Вопрос такой, какой должен быть код ? Или какие должны быть команды что бы программа получила привелегии ядра, что бы под XP можно было спокойно обращаться к портам по команде out ?

    например

    ...

    mov dx,3f2h

    mov al,0

    out dx,al

    ...
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
  3. ZaikinMaxim

    ZaikinMaxim New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    8
    Адрес:
    Russia
    А как это ? Можно поподробнее
     
  4. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    bogrus, по мойму проще драйвер написать.
     
  5. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    можно воспользоваться и ZwSetProcessInformation с ProcessInformationClass=ProcessUserModeIOPL (0x10) - единственное, необходимо установить пользователю через Lsa привилегию SE_TCB_PRIVILEGE (если не установлена, необходима перезагрузка системы - т.к просто logoff и повторный logon без перезагрузки не поможет).
     
  6. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    и это все можно из user mode сделать
     
  7. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Если у юзера есть админство, то драйвер не нужен, нужна ZwSetInformationProcess(...ProcessUserModeIOPL...).

    [​IMG] 1556445909__DirectIOAccess.rar
     
  8. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    Проще тогда уж поправить драйвером IDT и юзать спокойно порты.



    Four-F, что-то твой код не катит Win2k sp2
     
  9. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Пока код калякал ответили уже. Добавлю, что для админа ребута не надо.
     
  10. Chingachguk

    Chingachguk New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2002
    Сообщения:
    340
    Извращение: можно написать маленькую dos-прогу, ей можно будет к портам (к этим по крайней мере) обращаться ;)
     
  11. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    _Chingachguk_ Нормально, а если у тебя уже есть старая дос-прога и очень нужно чтобы она работала в NT?

    На моей работе у сотни коллег такая ситуация, юзаем DirectI/0, а это не удобно и кажется из-зи HyperThreading ещё глючит
     
  12. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    <font color="gray][ ProgramMan</font><!--color--><font color="gray]: Four-F, что-то твой код не катит Win2k sp2 ]</font><!--color-->



    Странно. Я щас как раз под w2k sp2 сижу. У меня пиликает. А что говорит?
     
  13. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    Failed to set direct access the I/O ports
     
  14. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Значит ZwSetInformationProcess обламывается. Посмотри статус который она выдаёт. Если это STATUS_PRIVILEGE_NOT_HELD ( 0x0C0000061 ), убедись что ты админ, если нет, то статус в студию, пожалуйста.



    У кого ещё не работает?
     
  15. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    W2ksp4ru тоже (я админ):
    Код (Text):
    1. CALL 401000 "SeTcbPrivilege" = ERROR_NOT_ALL_ASSIGNED (00000514)
    2. ZwSetInformationProcess = C0000061
     
  16. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
  17. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    > У кого ещё не работает?



    Как оказалось у меня %)



    2k(sp2), под админом!, возвращает C0000061
     
  18. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Ниччегго не понимаю :dntknw:
     
  19. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Начинаю понимать. Похоже в ваших аккаунтах нету привилегии SeTcbPrivilege. Если нет, то и включить её невозможно - надо сначала добавить. И наверняка, как минимум, повторный логон потребуется, если не ребут. Интересно, апочему у меня то она по умолчанию есть?



    bogrus, кто такие логи делает?
     
  20. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine