обнаружение отладчиков уровня приложения

Тема в разделе "WASM.BEGINNERS", создана пользователем AsmMEn, 25 сен 2005.

  1. AsmMEn

    AsmMEn New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2005
    Сообщения:
    30
    Адрес:
    Russia
    Как обнаружить отладчик уровня приложения в Win98/NT?
     
  2. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    IsDebuggerPresent
     
  3. AsmMEn

    AsmMEn New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2005
    Сообщения:
    30
    Адрес:
    Russia
    А как убить брикпоинты отладчика?
     
  4. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    перезаписать код заново, и dr регистры обнулить
     
  5. AsmMEn

    AsmMEn New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2005
    Сообщения:
    30
    Адрес:
    Russia
    Ну а как остановить отладчик?
     
  6. AsmMEn

    AsmMEn New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2005
    Сообщения:
    30
    Адрес:
    Russia
    Нашёл :

    Нужно сделать SEH-обработчик, который будет указывать на код, чье выполнение начнется после исключения, которого можно добиться, например, попытавшись записать что-нибудь по адресу 00000000h ;).
     
  7. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    правда я недумаю что с помощью SEH ты когонибудь остановиш
     
  8. AsmMEn

    AsmMEn New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2005
    Сообщения:
    30
    Адрес:
    Russia
    Цитата из "Путеводитель по написанию под Win32" Billy Belcebu :

    Win32: Остановка отладчиков уровня приложения с помощью SEH



    Я еще не знаю почему, но отладчики уровня приложения падают, если программа просто использует SEH. Также как и кодоэмуляторы, если вызываются исключения :). SEH, о котором я писал в DDT#1, используется для многих интересных вещей. Идите и прочитайте главу "Продвинутые Win32-техники", часть которой я посвятил SEH.



    Вам потребуется сделать SEH-обработчик, который будет указывать на код, чье выполнение начнется после исключения, которого можно добиться, например, попытавшись записать что-нибудь по адресу 00000000h ;).



    Хорошо, я надеюсь, что вы поняли это. Если нет... Гхрм, забудьте это ;). Также, как и методы, изложенные ранее, данный методы нельзя применить к SoftICE.
     
  9. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    дада
     
  10. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Вздор. Практически любая программа использует обработку исключений. Так что ж теперь программы нельзя в отладчике смотреть и выполнять?
     
  11. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Э-э, хотел привести ссылочку на свой опус по обнаружению и останову отладчика под 9x, а уважаемые модераторы уже успели все потереть :dntknw:(

    Интересно почему пропали такие шедевры исследовательской мысли (темы "IsDebuggerPresent в 9x" и "IsDebuggerPresent по таблице импорта") ;))

    Или все, что про мастдай, маст дай вместе с ним ;)
     
  12. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    "IsDebuggerPresent по таблице импорта" >интересно, таблица импорта както меняется при отладке?

    у, я нашёл что осталось, но это очевидно тока в 98
     
  13. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    leo



    Я же поднимал этот вопрос — почистили базу недавно. Там много всего хорошего ушло.



    Так что повторюсь: используйте оффлайновую версию форума для поиска старых тем.
     
  14. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    IceStudent

    Ясно. Жалко. И как теперь по старой привычке ты будешь народ к поиску по форуму отсылать ? (риторический)



    readme

    Да это только в 9х, и отладчик там можно подвесить капитально, занулив ссылочки на отладочные SEH'и (можно добраться в наглую по fs:[20h] или по тихому покопаться в стэке).

    А в NT просто так до отладчика не доберешься. Кое-кто знает, но секреты не раскрывает - просит терпеливо ждать 3-го пришествия упаковщиков :)))
     
  15. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    хм, т.е. уже непросто нахождение отладчика, а можно как то ближе к нему подобраться?
     
  16. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    mov ecx, 0FFFFh

    f1:

    nop

    loop f1

    ret



    И пусть взломщик часа два в обмимку с отладчиком будут исполнять эти инструкции :)
     
  17. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    mix_mix

    ??? новое слово в программной защите... :)))))

    и почему это никто не применяет ? :)
     
  18. MegaZu

    MegaZu New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    290
    А что теперь тяжело поставить бряк на рет , или рет не будет видно пока цикл не пройдет ? :)))
     
  19. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    MegaZu

    Низ-зя! Нечестно!

    :):):):):)

    Ну не работал человек "в обнимку с отладчиком".

    Э-э-э-э... хотя, если под отладчиком понимать debug...

    :))))))