Process Hacker имеет диспетчер процессов на C.
Когда вы дважды щелкаете в диспетчере процессов в процессе, например, в Explorer
Вы видите много информации, в том числе:
Темы, связанные спроцесс.PDD, циклы Delta Start, адрес, приоритет.
Ну, я пытался сделать что-то подобное в Delphi, но я получаю только TID и приоритет ...
Я не могу поставить информационный начальный адрес следующим образом: "msiltcfg.dll 0x258!"или может вернуть только 00630EFA.
(Оригинал) Хакер процесса подачи заявления показывает информацию на изображении ниже:
![http://i54.tinypic.com/mrcztx.png](https://i.stack.imgur.com/32AHa.png)
Как мне решить эту проблему?на основе приведенного ниже примера кода.
procedure TForm1.Button7Click (Sender: TObject);
var
tbi: THREAD_BASIC_INFORMATION;
hThreadSnap, Process, hThread, ThreadInfo: THandle;
te32: tagTHREADENTRY32;
me32: MODULEENTRY32;
th32: THREADENTRY32;
dwPID: DWORD;
startaddr: Pointer;
Status: LongInt;
Error: DWORD;
modname: String;
hToken: DWORD;
TKP: TOKEN_PRIVILEGES;
otkp: TOKEN_PRIVILEGES;
dwLen: dword;
begin
hThreadSnap: = CreateToolhelp32Snapshot (TH32CS_SNAPTHREAD, 0);
if hThreadSnap = INVALID_HANDLE_VALUE then
Exit;
try
dwPID: = GetProcessID (Trim (Edit1.Text));
te32.dwSize: = SizeOf (THREADENTRY32);
me32.dwSize: = SizeOf (MODULEENTRY32);
ListBox1.Items.Clear;
ListBox2.Items.Clear;
if not Thread32First (hThreadSnap, te32) then
Exit;
repeat
if te32.th32OwnerProcessID = dwPID then
begin
hThread: = OpenThread (THREAD_ALL_ACCESS,
False, te32.th32ThreadID);
status: = ZwQueryInformationThread (hThread,
9,
ThreadQuerySetWin32StartAddress {}
@Startaddr,
SizeOf (startaddr)
@ DwLen);
listbox1.Items.AddObject (Format ('StartAddress:% p'
[Startaddr]) + 'ID:' + IntToStr(te32.th32ThreadID), TObject (hThread));
if hThread <> 0 then
CloseHandle (hThread);
end;
Until not Thread32Next (hThreadSnap, te32);
finally
CloseHandle (hThreadSnap);
end;
end;