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

Вниз

Как отличить поток ?   Найти похожие ветки 

 
TPotokShell   (2004-08-11 12:31) [0]

Уважаемые Мастера, как отличить "родной" поток (Thread) приложения, от "неродного" - созданного в нём с помощью CreateRemoteThread ?
Заранее спасибо .


 
Мастер ©   (2004-08-11 12:37) [1]

Ну вообще-то твое приложение должно знать, что творится с потоками внутри него.


 
TPotokShell   (2004-08-11 12:42) [2]

Мастер ©   (11.08.04 12:37) [1]
оно "хочет узнать" - но как ?


 
Игорь Шевченко ©   (2004-08-11 12:52) [3]


> Уважаемые Мастера, как отличить "родной" поток (Thread)
> приложения, от "неродного" - созданного в нём с помощью
> CreateRemoteThread ?


Надо понимать, что это для NT-систем ? Так как CreateRemoteThread работает там.

Тогда, NTQueryQuerySystemInformation (ProcessesAndThreads, ...),
узнать, сколько потоков у процесса, сравнить с тем, что должно быть и бить тревогу, если не совпадает


 
Мастер ©   (2004-08-11 13:15) [4]

>TPotokShell   (11.08.04 12:42) [2]

оно "хочет узнать" - но как ?

1. если тебе неизвестно, как получить количество потоков, то см. Игорь Шевченко ©   (11.08.04 12:52) [3]
2. Если тебе нужно идентифицировать "свои" потоки и "чужие", то "свои" ты в любом случае должен знать заранее. Ведь как-то ты эти потоки создаешь?
Если используешь WinApi32, то это CreateTread, если VCL, то TTHread.
В любом случае ты точно должен знать "свои" потоки, т.е. вести учет.


 
TPotokShell   (2004-08-11 13:19) [5]

Игорь Шевченко ©   (11.08.04 12:52) [3]
спасибо :)
но как узнать, сколько должно быть их например у сторонненго приложения ? (например експлорера ?)


 
TPotokShell   (2004-08-11 13:19) [6]

и можно ли как-нить по самому потоку узнать, "настоящий" ли он ?


 
Игорь Шевченко ©   (2004-08-11 13:23) [7]


> но как узнать, сколько должно быть их например у сторонненго
> приложения ? (например експлорера ?)


Запустить Process Explorer от www.sysinternals.com, вдумчиво смотреть на адреса старта потоков.


 
TPotokShell   (2004-08-11 13:32) [8]

Игорь Шевченко ©   (11.08.04 13:23) [7]
а какой адрес старта должен быть у "родного" потока ?


 
Игорь Шевченко ©   (2004-08-11 13:40) [9]


> а какой адрес старта должен быть у "родного" потока ?


А запустить на нормальной системе и посмотреть не судьба ?


 
Digitman ©   (2004-08-11 14:05) [10]


> TPotokShell


ты что, вознамерился "пасти" чужие потоки в своем процессе и "прибивать" их при обнаружении ?

схлопочешь кучу проблем !

следует пресекать не работу "чужого" трэда, а попытку его старта !


 
TPotokShell   (2004-08-11 20:47) [11]

Digitman ©   (11.08.04 14:05) [10]
//следует пресекать не работу "чужого" трэда, а попытку его старта !
а такое возможно ? как ?


 
Digitman ©   (2004-08-12 08:17) [12]


> TPotokShell


"кто предупрежден, тот вооружен"

самое простое - действуй теми же методами)

внедряй в АП всех потенциально опасных с этой т.з. процессов свой трэд, который перехватит вызов CreateRemoteThread()



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

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

Наверх




Память: 0.49 MB
Время: 0.045 c
3-1093695220
and
2004-08-28 16:13
2004.09.26
Список изменений при Cached Updates


1-1094822942
denis24
2004-09-10 17:29
2004.09.26
Скролинг в listview


3-1093863664
Aleksandr.
2004-08-30 15:01
2004.09.26
Можно ли как-то в RT бороться с Directory is busy?


9-1086243362
Kair
2004-06-03 10:16
2004.09.26
Примеры к книге М.Краснова


1-1094571065
Marina
2004-09-07 19:31
2004.09.26
Подключение к проекту файлов с расширением *.inc