отладка в Ida порождённого процесса

Тема в разделе "WASM.BEGINNERS", создана пользователем angrylion, 27 июл 2008.

  1. angrylion

    angrylion New Member

    Публикаций:
    0
    Регистрация:
    1 май 2007
    Сообщения:
    10
    Извиняюсь за ламерский вопрос, но есть программа, вызываемая другой с помощью сишной функции spawnl. Можно ли отлаживать в Иде этот порождённый процесс?
     
  2. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    angrylion
    Например записать EB FE на точку входа образа вызываемой программы. А после исполнения spawnl аттачиться к зацикленному процессу.
     
  3. angrylion

    angrylion New Member

    Публикаций:
    0
    Регистрация:
    1 май 2007
    Сообщения:
    10
    Спасибо, помогло. А нет ли ещё других способов?
     
  4. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    angrylion
    Есть. А зачем?
    Можно еще, например, поставить брэйкпоинт на выход из ZwCreateThread в вызываемом процессе. В этот момент первичный поток созданного процесса находится в состоянии Suspended, но тем не менее к созданному процессу уже можно аттачиться (правда не уверен, можно ли аттачиться именно IDA). Далее либо ставите брэйкпоинт опять таки на точку входа либо прямо на eip и восстанавливаете исполнение в вызывающем процессе. Преимущество такого способа в том, что можно оттрассировать стадию начальной инициализации процесса. А недостаток в том, что процесс может быть неверно инициализирован вероятно из-за того, что отладчик пытается преждевременно самостоятельно выполнить инициализацию необходимых dll'ок.