Уведомление о создании треда

Тема в разделе "WASM.WIN32", создана пользователем Son of God, 31 май 2006.

  1. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    Есть процесс, в него инжектируется DLL. Может ли DLL как-то получать уведомление, когда процесс создает новый поток? (Нужно при создании нового потока приостанавливать его, узнавать контекст и потом single-step'ить.) Использование отладчика нежелательно по причине производительности.
     
  2. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    Ну так DLL по умолчанию это уведомление получает.

    Вызывается DllEntry с флагом DLL_THREAD_ATTACH
     
  3. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    Но как потом этот же тред приостановить, взять контекст и трейсить? Нужно начать исполнение с первой инструкции нового треда.
     
  4. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"






    Ты сам себе противоречишь :)
     
  5. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Son of God

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



    Если нужна быстрая трассировка - тебе надо напрямую обрабатывать прерывание int 1 из ring-0.
     
  6. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    alpet

    int3? int1 = intO.
     
  7. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    NoName

    К отладочным int 1 так-же относится. Помоему именно это прерывание используется при трассировке (не точках останова), при установленном флажке TF.