Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.12.15;
Скачать: CL | DM;

Вниз

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

 
Денис-Редис   (2013-02-28 13:06) [0]

Добрый день! Стоит задача получить все дочерние потоки определённого процесса (их порождают подключенные 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. Вот как узнать, к какой либе имеет отношение каждый дочерний поток? Извините, если сумбурно выразился.


 
RWolf ©   (2013-02-28 13:09) [1]

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


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

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


 
RWolf ©   (2013-02-28 13:21) [3]

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


 
RWolf ©   (2013-02-28 13:24) [4]

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


 
clickmaker ©   (2013-02-28 13:34) [5]

GetModuleFileNameEx ?


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

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



Страницы: 1 вся ветка

Текущий архив: 2013.12.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
15-1371318144
DVDRe
2013-06-15 21:42
2013.12.15
чтение запорченного ДВД


2-1362042401
Денис-Редис
2013-02-28 13:06
2013.12.15
Получить имена модулей дочерних потоком


2-1362008436
Вова
2013-02-28 03:40
2013.12.15
SDI Application в VCL Application


3-1294523297
den945
2011-01-09 00:48
2013.12.15
Обработка Excel в Delphi


15-1370955205
картман
2013-06-11 16:53
2013.12.15
моноблок