Windows Privilegies

Тема в разделе "WASM.WIN32", создана пользователем RamMerLabs, 8 окт 2006.

  1. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    Почему не устанавливается SeDebugPrivilege?

    .data
    szA db "SeDebugPrivilege",0
    szFmt db "Error code: %lu [%lu] [%lu]",0
    hToken dd 0
    tkp TOKEN_PRIVILEGES <>

    .data?
    szBuf db 24 dup (?)

    .code
    start:
    invoke GetCurrentProcess
    invoke OpenProcessToken, eax, 32, ADDR hToken
    invoke LookupPrivilegeValue, 0, ADDR szA, ADDR tkp.Privileges[0].Luid
    mov tkp.PrivilegeCount,1
    mov tkp.Privileges[0].Attributes, 2
    invoke AdjustTokenPrivileges, hToken, 0, ADDR tkp, 16, 0, 0
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    RamMerLabs
    Успешно ли выполняются OpenProcessToken, LookupPrivilegeValue и AdjustTokenPrivileges?
    Зачем 16 после ADDR tkp ведь пятый параметр AdjustTokenPrivileges равен нулю?
     
  3. Pinkbyte

    Pinkbyte Member

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    106
    может я тупой, но где-то в этих процедурах( по крайней мере в MSDN был параметр, причом 8-байтный)... не вижу, чтобы здесь он передавался как 8 байт - по умолчанию ведь пишецца 4 байта!
     
  4. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    насколько я изучил эту тему, 8-байтных параметров здесь нет.

    но пересмотрю ещё раз. СПАСИБО!
     
  5. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    ошибку выдает только AdjustTokenPrivileges. может, кто знает что не так?
     
  6. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    кстати на счёт invoke AdjustTokenPrivileges, hToken, 0, ADDR tkp, 16, 0, 0
    это размер структуры!
     
  7. Pinkbyte

    Pinkbyte Member

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    106
    Код (Text):
    1.                 invoke OpenProcessToken,-1,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,ADDR hToken ; открываем токен текущего процесса для изменения привелегий
    2.                 invoke LookupPrivilegeValue,NULL,ADDR Debug_Privilege_Name,ADDR Debug_Privilege
    3.                 mov TKP.PrivilegeCount,1
    4.                 lea esi,Debug_Privilege ; откуда...
    5.                 mov edi,OFFSET TKP.Privileges.Luid ; куда...
    6.                 movsd
    7.                 movsd ; записать(два раза ибо 8 байт)
    8.                 mov TKP.Privileges.Attributes,SE_PRIVILEGE_ENABLED
    9.                 invoke AdjustTokenPrivileges,hToken,FALSE,ADDR TKP,NULL,NULL,NULL ; включаем привилегии отладчика
    10.                 invoke CloseHandle,hToken ; закрываем хэндл токена
    У меня вышеприведенный кусок работает замечательно... Выдрал из ProcessKiller'а
     
  8. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    RamMerLabs
    ошибку выдает только AdjustTokenPrivileges
    Какую ошибку? Из тебя клещами тянуть?

    размер структуры!
    Какой структуры?
    Ты документацию читаешь?
    Там, между прочим, написано, что четвертый параметр = это размер буфера (в твоей интерпретации "размер структуры!"), адрес которого передается в пятом параметре, ты же в пятом параметре передаешь НОЛЬ, т.е. предлагаешь ОС записать по адресу НОЛЬ шестнадцать байт.