Узнаю через ZwQueryInformationProcess пеб иного процесса, пропарсил структуру и выдрал CommandLine - но мне этого показалось мало, хочу ещё как ProcessHacker узнавать ЧЕМ был запущен ехе. Мб есть мысли?
Код (Text): BOOL GetParentProcessName(char* buf_,int size_buf) { HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 pentry32; pentry32.dwSize = sizeof(PROCESSENTRY32); if (!snap||snap==INVALID_HANDLE_VALUE) return 0; bool bIsok = Process32First(snap, &pentry32); while(bIsok) { bIsok = Process32Next(snap, &pentry32); if (pentry32.th32ProcessID == GetCurrentProcessId()) { int ppiidd = pentry32.th32ParentProcessID; HANDLE parproc = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE, ppiidd ); if (!parproc||parproc==INVALID_HANDLE_VALUE) return 0; GetModuleFileNameEx(parproc, 0, buf_, size_buf); break; } } CloseHandle(snap); return true; } вот когда-то писал для себя недавно - Узнаем кто нас запустил
Ну может я не совсем понятно объяснил - у меня процесс удалённый, из своего мне надо узнать инфу про них.
ололо... typedef struct _PROCESS_BASIC_INFORMATION { NTSTATUS exitStatus_; PPEB pebBaseAddress_; KAFFINITY affinityMask_; KPRIORITY basePriority_; ULONG uniqueProcessId_; ULONG inheritedFromUniqueProcessId_; } PROCESS_BASIC_INFORMATION;
Спс за кодес, вгляделся и понял - изменение магического GetCurrentProcessId() на пид удалённого даст нужный результат. З.Ы. Обидно стало - зачем мутил с ZwQueryInformationProcess и т.д.