Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить имена модулей дочерних потоком


Денис-Редис ©   (2013-02-28 13:06:00) 

Добрый день! Стоит задача получить все дочерние потоки определённого процесса (их порождают подключенные dll-ки) и выяснить, какая именно из dll какие потоки создала.

Потоки получаю так:

var
 ThreadSnapshotHandle: THandle;
 ThreadFound: Boolean;
 ThreadEntry: tagTHREADENTRY32;
begin
 aStrings.Clear;
 ThreadSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
 try
   ThreadEntry.dwSize := SizeOf(ThreadEntry);
   ThreadFound := Thread32First(ThreadSnapshotHandle, ThreadEntry);
   if ThreadFound then
   repeat
     if ThreadEntry.th32OwnerProcessID = AProcessID then
       aStrings.Add('ID потока = ' + IntToStr(ThreadEntry.th32ThreadID));
   until not Thread32Next(ThreadSnapshotHandle, ThreadEntry);
 finally
   CloseHandle(ThreadSnapshotHandle);
 end;
end;


тут я добавляю ThreadEntry.th32ThreadID в TMemo. Вот как узнать, к какой либе имеет отношение каждый дочерний поток? Извините, если сумбурно выразился.


Денис-Редис   (2013-02-28 20:47:00) [1]

Во! Спасибо, дружище! или дружищи :) Выручили, это то что нужно. Сам бы не нашёл эту инфу. Пойду попробую, вопросы будут, напишу


clickmaker   (2013-02-28 13:34:00) [2]

GetModuleFileNameEx ?


RWolf   (2013-02-28 13:24:00) [3]

а привязка к имени модуля — просто перебор загруженных в память модулей и проверка вхождения адреса в диапазон адресов, ими занятых.


RWolf   (2013-02-28 13:21:00) [4]

http://stackoverflow.com/questions/10159516/get-thread-start-address


Денис-Редис   (2013-02-28 13:16:00) [5]

Я понял твою мысль. Понятно, что к главному. Мне нужно сделать что-то вроде как у процесс хакера, если видел. Пример по ссылке: http://gyazo.com/c497606b4468ccbe2abfc3f9409744a7
В колонке start address и есть то, что мне нужно.


RWolf   (2013-02-28 13:09:00) [6]

а если основной поток вызвал функцию из dll, к какой либе он относится?


Наверх

Титульная страница Поиск, карта сайта Написать письмо