ProcessID -> ProcessHandle

Тема в разделе "WASM.WIN32", создана пользователем Guest, 13 янв 2006.

  1. Guest

    Guest Guest

    Публикаций:
    0
    Действия происходят в драйвере. Имеется идентификатор процесса, нужно получить его же хендл


    Код (Text):
    1.  
    2. get_handle_by_id    proc uses ebx   ProcessId:dword
    3. LOCAL   hProcess    :dword
    4. LOCAL   oa      :OBJECT_ATTRIBUTES
    5. LOCAL   cid     :CLIENT_ID
    6.    
    7.     xor ebx,ebx
    8.    
    9.     mov eax,ProcessId
    10.     mov hProcess,eax
    11.     mov     cid.UniqueProcess,eax
    12.         mov     cid.UniqueThread,ebx   
    13.        
    14.         invoke  ZwOpenProcess,addr hProcess,1,addr oa,addr cid
    15.         .if eax==STATUS_SUCCESS
    16.             mov ebx,hProcess
    17.             invoke  ZwClose,hProcess
    18.         .endif
    19.        
    20.     mov eax,ebx
    21.     ret
    22. get_handle_by_id    endp   
    23.  


    Данный код работать не хочет, есть ли другие способы получить хендл, не прибегая в ZwOpenProcess? Ну и прошу объяснить почему не работает код.
     
  2. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Сначала надо инициализировать структуру oa

    InitializeObjectAttributes addr oa, NULL, OBJ_CASE_INSENSITIVE, NULL, NULL
     
  3. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Аха, моно ещё так:
    Код (Text):
    1.        lea ecx,oa
    2.        mov dword ptr [ecx],000000018h
    3.        and dword ptr [ecx+000000004h],0
    4.        mov dword ptr [ecx+00000000Ch],00000040h
    5.        and dword ptr [ecx+000000010h],0
    6.        and dword ptr [ecx+000000008h],0
    7.        and dword ptr [ecx+000000014h],0




    или даже так:
    Код (Text):
    1.        sub esp,6*4
    2.        mov ecx,esp




    p.s. cresta, справился с проблемой kill-process'a ?
     
  4. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    [offtop]

    процесс дурной, так ни одной проги и не нашёл, чтобы смогла корректно убить его