Потоки и создаваемые им описатели

Тема в разделе "WASM.WIN32", создана пользователем Rel, 21 окт 2009.

  1. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    доброго времени суток! можно ли по хэндлу определить, какой поток его "открыл"? именно поток, а не процесс...
     
  2. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Нет, хэндлы не ассоциируются с потоками, они валидны для всего процесса
     
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    да, я тоже об этом читал, но думал, что все же есть какой-то способ... ну ладно...
     
  4. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    ну если сильно надо можешь похукать CreateProcess и вести свой учет, но имхо это бред))
     
  5. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    CreateThread конечно))
     
  6. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    onSide
    что нам даст перехват этой функции?
     
  7. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    если перехватывать то перехватывать создания "хендела" и уже там смотреть что за поток
     
  8. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    SPA, я думал над этим вариантом, но мне важнее определить существующие "хенделы" и ассоциировать их с потоками... можно перехватить кучу разных функций по работе с "хенделами" разных объектов, но это уже бред мне кажется... но все равно спасибо за совет)))
     
  9. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    Если это нужно для реверсинга/отладки/исследования, то можно перехватывать лишь NtCloseHandle, составить список потоков с полной информацией о них (точка входа и т.д.),
    составить список хендлов с полной информацией оних(NtQueryObject) и поочередно терминируя потоки посмотреть к какому потоку какой хендл относится по срабатыванию перехвата NtCloseHandle.
     
  10. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    ...NtCloseHandle может и не вызываться, тогда нужно сопоставлять списки хендлов до и после уничтожения очередного потока.
     
  11. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    зачем это может быть нужно?
     
  12. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    ...Наверное чтоб его прибить..
     
  13. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    как что, получаем айдишник текущего потока - это родитель, получаем айдишник созданного потока-ребенок.

    ну тогда внедряйся на раннем этапе загрузки.
     
  14. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    хе-хе... своего рода система для анализа всяких гадостей, которые свой выполняют код в контексте доверенного процесса...

    ну вообще это канеш не совсем вариант, так как изначально эту прогу предполагалось использовать уже задолго после внедрения вредоносного ПО... вариантов с "песочницей" и контролем с этапа загрузки уже много всяких разных есть...
     
  15. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    А при чем тут потоки
    А при чем тут потоки? Имеется ввиду изменение контекста потока чужого процесса? Или внедрение удаленным потоком? Ну отработает вредоносный код, сделает свое дело и все.
    Тем более так давно никто не делает. В край можно защитить любой процесс от создания в нем потока извне.
     
  16. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    вам видимо не попадались комплексные многопоточные решения... некоторые даже с задатками искусственного интеллекта... изменением контекста и удаленными потоками сейчас уже никого не удивишь... есть например некоторые вещи, которые на лету копируют/криптуют свой код, для них мне довольно сложно отследить логику программы, всетки опыта пока мало...

    чаще всего поток создается изнутри... но это даже не суть важно в принципе, важно что при убиении потока выполняющего вредоносный код, за ним остается куча мусора...

    ну в общем ладно... видимо ответ на мой вопрос - "нельзя"... спасибо всем за попытку помочь...
     
  17. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    да, нельзя, но почитай про сборщики мусора