доброго времени суток! можно ли по хэндлу определить, какой поток его "открыл"? именно поток, а не процесс...
SPA, я думал над этим вариантом, но мне важнее определить существующие "хенделы" и ассоциировать их с потоками... можно перехватить кучу разных функций по работе с "хенделами" разных объектов, но это уже бред мне кажется... но все равно спасибо за совет)))
Если это нужно для реверсинга/отладки/исследования, то можно перехватывать лишь NtCloseHandle, составить список потоков с полной информацией о них (точка входа и т.д.), составить список хендлов с полной информацией оних(NtQueryObject) и поочередно терминируя потоки посмотреть к какому потоку какой хендл относится по срабатыванию перехвата NtCloseHandle.
...NtCloseHandle может и не вызываться, тогда нужно сопоставлять списки хендлов до и после уничтожения очередного потока.
как что, получаем айдишник текущего потока - это родитель, получаем айдишник созданного потока-ребенок. ну тогда внедряйся на раннем этапе загрузки.
хе-хе... своего рода система для анализа всяких гадостей, которые свой выполняют код в контексте доверенного процесса... ну вообще это канеш не совсем вариант, так как изначально эту прогу предполагалось использовать уже задолго после внедрения вредоносного ПО... вариантов с "песочницей" и контролем с этапа загрузки уже много всяких разных есть...
А при чем тут потоки А при чем тут потоки? Имеется ввиду изменение контекста потока чужого процесса? Или внедрение удаленным потоком? Ну отработает вредоносный код, сделает свое дело и все. Тем более так давно никто не делает. В край можно защитить любой процесс от создания в нем потока извне.
вам видимо не попадались комплексные многопоточные решения... некоторые даже с задатками искусственного интеллекта... изменением контекста и удаленными потоками сейчас уже никого не удивишь... есть например некоторые вещи, которые на лету копируют/криптуют свой код, для них мне довольно сложно отследить логику программы, всетки опыта пока мало... чаще всего поток создается изнутри... но это даже не суть важно в принципе, важно что при убиении потока выполняющего вредоносный код, за ним остается куча мусора... ну в общем ладно... видимо ответ на мой вопрос - "нельзя"... спасибо всем за попытку помочь...