powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Определение создателя потока
9 сообщений из 9, страница 1 из 1
Определение создателя потока
    #39565239
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть процесс, в нем загружена куча dll, эти dll запускают разные потоки. Вопрос, как по ThreadID определить какой модуль его запустил?

Мои мысли
1) Получить список загруженных модулей процесса. HMODULE будет указывать на адрес загрузки модуля
2) Получить все потоки процесса
3) Для каждого потока получить некую область памяти, которая выделялась для этого потока
4) Посмотреть в какой модуль попала память.

Проблема с третьим пунктом. Что бы такое и как получить? Мне нравится идея получить адрес процедуры потока. Но как?

Может, сам алгоритм неверен, тогда пните в нужном направлении. Задача успешно решена в ProcessExplorer

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Определение создателя потока
    #39565248
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь исполняемый файл и исходники, где можно подглядеть http://processhacker.sourceforge.net/
...
Рейтинг: 0 / 0
Определение создателя потока
    #39565258
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

CreateToolhelp32Snapshot

TThreadEntry32
TProcessEntry32

(у TThreadEntry32 есть th32OwnerProcessID)
...
Рейтинг: 0 / 0
Определение создателя потока
    #39565288
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer(у TThreadEntry32 есть th32OwnerProcessID)_Vasilisk_как по ThreadID определить какой модуль его запустил?Мне не нужен процесс, мне нужен модуль (dll)
...
Рейтинг: 0 / 0
Определение создателя потока
    #39565316
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> 3) Для каждого потока получить некую область
_Vasilisk_> памяти, которая выделялась для этого потока
_Vasilisk_> Проблема с третьим пунктом. Что бы такое и как получить?
_Vasilisk_> Мне нравится идея получить адрес процедуры потока. Но как?

NtQueryInformationThread
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Определение создателя потока
    #39565345
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция потока может не находится в том модуле, который запустил поток. Если нужен именно создатель - можно хук на CreateThread.
...
Рейтинг: 0 / 0
Определение создателя потока
    #39565361
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамNtQueryInformationThreadВот она одна из кандидатов на пощупывание
GunSmokerФункция потока может не находится в том модуле, который запустил потокДа. Но для моих задач я могу этим пренебречь
...
Рейтинг: 0 / 0
Определение создателя потока
    #39565380
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> Вот она одна из кандидатов на пощупывание

Там и щупать-то нечего, всё довольно просто.
Правда, IIRC, в MSDN было примечание про
негарантированность под некоторые версии ОС.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Определение создателя потока
    #39565414
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамТам и щупать-то нечего,Смотрел еще на
Код: pascal
1.
ZwQuerySystemInformation(SystemProcessesAndThreadsInformation,.....


Но она возвращает инфу сразу по всем процессам системы
Гаджимурадов Рустамнегарантированность под некоторые версии ОС.Видел
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Определение создателя потока
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]