Форум: "Начинающим";
Текущий архив: 2013.12.15;
Скачать: [xml.tar.bz2];
ВнизПолучить имена модулей дочерних потоком Найти похожие ветки
← →
Денис-Редис (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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.002 c