OpenProcessToken

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

  1. spencer

    spencer New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2005
    Сообщения:
    277
    обьясните мне можалуйста вот что.
    Почему такой вот вызов:
    Код (Text):
    1. invoke OpenProcess,PROCESS_CREATE_THREAD or PROCESS_QUERY_INFORMATION or PROCESS_VM_OPERATION or PROCESS_VM_WRITE or PROCESS_VM_READ , 1, ps.th32ProcessID
    возвращает ERROR_INVALID_HANDLE (00000006)? Однако прогоняю в ольке и вижу что передаёться туда валидный хэндл.
    Посмотрел в MSDN, там так сказано:
    " The process must have the PROCESS_QUERY_INFORMATION access permission. "
    относится ли это как то к моей проблеме, и, если да, то что ж получаветься мне необходимо сначала открыть процесс с этими правами, а затем уже его токен?

    p/s
    еще вот интересно, зачем в некоторых примерах, в качестве хэнда процесса, передаёться значение INVALID_HANDLE_VALUE (-1)?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    GetCurrentProcess = -1UL
     
  3. Pinkbyte

    Pinkbyte Member

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    106
    Нда.. из последнего высказывания я понял что-то только с пятой попытки. Кароче число -1 представленное переменной типа DWORD является Хэндлом текущего процесса. Действительно - вызов GetCurrentProcess даёт нам что-то вроде...

    xor eax,eax
    dec eax
    .....

    а это значит, что в eax у нас находится -1