Подскажите, как можно узнать PID родителя процесса (текущего). Подходящих апи функций не нашел, но ProcessExplorer от Руссиновича это как-то делает. Причем с правами Пользователя тоже определяет. Я думал там шаманство с PEB и чтением адресного пространства другого процесса, но т.к. права Пользователя, значит это делается как-то по другому.. Где не прав?/Как это сделать?
Код (Text): .586 .model flat, stdcall option casemap :none include \MASM32\INCLUDE\kernel32.inc include \MASM32\INCLUDE\ntdll.inc includelib \MASM32\LIB\kernel32.lib includelib \MASM32\LIB\ntdll.lib .data .data? info db 6*4 dup (?) .code start: call GetCurrentProcessId push eax push 1 push 0400h call OpenProcess push 0 push 018h push offset info push 0 push eax call NtQueryInformationProcess mov eax,dword ptr ds:[info + 14h] push 0 Call ExitProcess end start
Так кошернее ) Код (Text): .586 .model flat, stdcall option casemap :none include \MASM32\INCLUDE\kernel32.inc include \MASM32\INCLUDE\ntdll.inc include \MASM32\INCLUDE\user32.inc includelib \MASM32\LIB\kernel32.lib includelib \MASM32\LIB\ntdll.lib includelib \MASM32\LIB\user32.lib .data tit db "Сообщение", 0 format db "ID Родительского процесса: %d", 0 .data? info db 6*4 dup (?) buff db 100 dup (?) .code start: call GetCurrentProcessId push eax push 1 push 0400h call OpenProcess push 0 push 018h push offset info push 0 push eax call NtQueryInformationProcess push dword ptr ds:[info + 14h] push offset format push offset buff call wsprintfA push 0 push offset tit push offset buff push 0 Call MessageBoxA push 0 Call ExitProcess end start
ZwQuerySystemInformation (SystemProcessesAndThreadsInformation) ZwQueryInformationProcess toolhelp api
Благодарю ) ПС: TPROCESSENTRY32 - просмотрел я там нужное поле.. Нужно "завязывать с этими компьютерами"...