В одной из статей прочитал о том, что генерация SEH позволяет остановить отладку приложения. Решил проверить это на практике, скомпилировал простое приложение генерирующее SEH, оно в архиве. Запуская его под отладчиком PEBrowsePro получаю такое сообщение: SEH.EXE has encountered an exception code of -1073741819 (0xC00000005) at 004033A7 Отладка после этого действительно останавливается! Однако, мне не ясно будет ли этот прием работать против Soft-Ice и ему подобных? И насколько сложно будет сломать такой антиотладочный прием? 2112030705__seh.zip
Ну так отладчик для этого и предназначен, сообщать о багах в коде Нужно в опциях отладчика отключить реагирование на exception или ходить по shift+F9 (олли)
отладчики боле мени ловятся на int3 в seh фрейме(это можно отключить). SI вроде ловится на int1 в seh(будет разница адрессов ошибки).
При возникновении исключения система вызывает зарегистрированный отладчик пользовательского режима. А сайс не отладчик, а драйвер, его на такие трюки не купишь
S_T_A_S_ ловится на int1 по простой причине, если айса нет, то int1 доступна только из r-0 и соответственно вызывает ошибку сразу. Если айс работает, то int3 доступно из r-3 и происходит трассировка.
Да не поймать его так. Все давно описано во вторых упаковщиках. Уровень DPL изменять. IceExt это делает. Не надоело еще старые вещи повторять?
Так я поэтому и удивился. Хотя всё равно обработчик первого прерывания в сайсе должен вызвать задержку, так что я попробую его поймать измеряя время выполнения ловушки SEH...
Quantum Было и это На форуме лежат измерения задержек при отладчике и без. Ссылку не помню, надо искать.
volodya,речь идёт о SI а не о SI+IceExt.... о том что IceExt возвращает idt в нормальный вид я в курсе.
IceStudent Чем по форуму искать... В общем, я уже измерил. Отладчик ловится в большинстве случаев, что меня вполне устраивает, а если и не поймается, то не страшно, т.к. это только первый уровень защиты