Узнать каким иным процессом запущен иной процесс (вот такой каламбур)

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

  1. d2k9

    d2k9 Алексей

    Публикаций:
    0
    Регистрация:
    14 сен 2008
    Сообщения:
    325
    Узнаю через ZwQueryInformationProcess пеб иного процесса, пропарсил структуру и выдрал CommandLine - но мне этого показалось мало, хочу ещё как ProcessHacker узнавать ЧЕМ был запущен ехе.
    Мб есть мысли?
     
  2. karabas_barabas

    karabas_barabas Member

    Публикаций:
    0
    Регистрация:
    9 авг 2009
    Сообщения:
    168
    Код (Text):
    1. BOOL GetParentProcessName(char* buf_,int size_buf)
    2. {
    3.     HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    4.     PROCESSENTRY32 pentry32;  pentry32.dwSize = sizeof(PROCESSENTRY32);
    5.     if (!snap||snap==INVALID_HANDLE_VALUE) return 0;
    6.     bool bIsok = Process32First(snap, &pentry32);    
    7.     while(bIsok)
    8.     {
    9.         bIsok = Process32Next(snap, &pentry32);
    10.         if (pentry32.th32ProcessID == GetCurrentProcessId())
    11.         {
    12.             int ppiidd = pentry32.th32ParentProcessID;
    13.             HANDLE parproc = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE, ppiidd );
    14.             if (!parproc||parproc==INVALID_HANDLE_VALUE) return 0;
    15.             GetModuleFileNameEx(parproc, 0, buf_, size_buf);
    16.             break;
    17.         }
    18.     }
    19.     CloseHandle(snap);
    20.     return true;
    21. }
    вот когда-то писал для себя недавно - Узнаем кто нас запустил
     
  3. d2k9

    d2k9 Алексей

    Публикаций:
    0
    Регистрация:
    14 сен 2008
    Сообщения:
    325
    Ну может я не совсем понятно объяснил - у меня процесс удалённый, из своего мне надо узнать инфу про них.
     
  4. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    ололо...
    typedef struct _PROCESS_BASIC_INFORMATION
    {
    NTSTATUS exitStatus_;
    PPEB pebBaseAddress_;
    KAFFINITY affinityMask_;
    KPRIORITY basePriority_;
    ULONG uniqueProcessId_;
    ULONG inheritedFromUniqueProcessId_;
    } PROCESS_BASIC_INFORMATION;
     
  5. d2k9

    d2k9 Алексей

    Публикаций:
    0
    Регистрация:
    14 сен 2008
    Сообщения:
    325
    Спс за кодес, вгляделся и понял - изменение магического GetCurrentProcessId() на пид удалённого даст нужный результат.

    З.Ы. Обидно стало - зачем мутил с ZwQueryInformationProcess и т.д.
     
  6. d2k9

    d2k9 Алексей

    Публикаций:
    0
    Регистрация:
    14 сен 2008
    Сообщения:
    325
    mrcrown
    inheritedFromUniqueProcessId - так понимаю пид родителя?
     
  7. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
  8. d2k9

    d2k9 Алексей

    Публикаций:
    0
    Регистрация:
    14 сен 2008
    Сообщения:
    325
    Темку можно закрыть со всем разобрался.