PPID из юзермода?

Тема в разделе "WASM.WIN32", создана пользователем test555, 5 фев 2010.

  1. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    Подскажите, как можно узнать PID родителя процесса (текущего).

    Подходящих апи функций не нашел, но ProcessExplorer от Руссиновича это как-то делает.
    Причем с правами Пользователя тоже определяет.

    Я думал там шаманство с PEB и чтением адресного пространства другого процесса, но т.к. права Пользователя, значит это делается как-то по другому..

    Где не прав?/Как это сделать?
     
  2. Flint_ta

    Flint_ta New Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    312
    Код (Text):
    1.     .586
    2.     .model flat, stdcall
    3.     option casemap :none
    4.  
    5.     include \MASM32\INCLUDE\kernel32.inc
    6.     include \MASM32\INCLUDE\ntdll.inc
    7.  
    8.     includelib \MASM32\LIB\kernel32.lib
    9.     includelib \MASM32\LIB\ntdll.lib
    10.  
    11. .data
    12.  
    13. .data?
    14.  
    15. info db 6*4 dup (?)
    16.  
    17. .code
    18.  
    19. start:
    20. call GetCurrentProcessId
    21.  
    22. push eax
    23. push 1
    24. push 0400h
    25. call OpenProcess
    26.  
    27. push 0
    28. push 018h
    29. push offset info
    30. push 0
    31. push eax
    32. call NtQueryInformationProcess
    33.  
    34. mov eax,dword ptr ds:[info + 14h]
    35.        
    36. push 0
    37. Call ExitProcess
    38. end start
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    документировано - ToolHelp API
    недокументировано - NtQueryInformationProcess
     
  4. Flint_ta

    Flint_ta New Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    312
    Так кошернее )

    Код (Text):
    1.     .586
    2.     .model flat, stdcall
    3.     option casemap :none
    4.  
    5.     include \MASM32\INCLUDE\kernel32.inc
    6.     include \MASM32\INCLUDE\ntdll.inc
    7.     include \MASM32\INCLUDE\user32.inc
    8.    
    9.     includelib \MASM32\LIB\kernel32.lib
    10.     includelib \MASM32\LIB\ntdll.lib
    11.     includelib \MASM32\LIB\user32.lib
    12.  
    13. .data
    14. tit db "Сообщение", 0
    15. format db "ID Родительского процесса: %d", 0
    16.  
    17.  
    18. .data?
    19.  
    20. info db 6*4 dup (?)
    21. buff db 100 dup (?)
    22.  
    23. .code
    24.  
    25. start:
    26. call GetCurrentProcessId
    27.  
    28. push eax
    29. push 1
    30. push 0400h
    31. call OpenProcess
    32.  
    33. push 0
    34. push 018h
    35. push offset info
    36. push 0
    37. push eax
    38. call NtQueryInformationProcess
    39.  
    40. push dword ptr ds:[info + 14h]
    41. push offset format
    42. push offset buff
    43. call wsprintfA
    44.  
    45. push 0
    46. push offset tit
    47. push offset buff
    48. push 0
    49. Call MessageBoxA
    50.        
    51. push 0
    52. Call ExitProcess
    53. end start
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    ZwQuerySystemInformation (SystemProcessesAndThreadsInformation)
    ZwQueryInformationProcess
    toolhelp api
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    test555
    Жгёте товарищ, впрочем мне ваши вопросы нравятся, забавно почитать ;)
     
  7. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    Благодарю )

    ПС: TPROCESSENTRY32 - просмотрел я там нужное поле..
    Нужно "завязывать с этими компьютерами"...