Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > int3 прерывание


Автор: bass 3.7.2015, 21:24
Доброго времени суток.
Если запостил не в тот раздел админ не серчай перенеси, вроде тоже системное програмиирование.

Порыл гугл и так вразумительного ответа не нашел. В голове организовалась каша.
В некоторых статьях говориться что использование Int 21 и др не получаеться из приложения.
А вот использование Int3 возможно.
И как им воспользоваться в своей программе на С.


Код


main()
{
......
_asm
{
int3
}
......
}




А вот как установить процедуру обработки прерывания?

И вообще это возможно в ХР.

За ранее спасибо.


Автор: nic1986 3.7.2015, 22:50
int 3 генерирует исключение для отладки, по этому отловить его в своем коде можно как то так - https://msdn.microsoft.com/ru-RU/library/windows/desktop/ms681411(v=vs.85).aspx 

Автор: _zorn_ 4.7.2015, 06:09
google, SEH, VEH

Если хочешь чтобы просто брейк в отладчике сработал - запускай под отладчиком. INT 3 это обычной софтварный брейпоинт, представляющий из себя байт 0xCC

Автор: bass 4.7.2015, 09:36
Цитата(_zorn_ @ 4.7.2015,  06:09)
google, SEH, VEH

Если хочешь чтобы просто брейк в отладчике сработал - запускай под отладчиком. INT 3 это обычной софтварный брейпоинт, представляющий из себя байт 0xCC

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

Автор: bass 4.7.2015, 10:25
Цитата(nic1986 @ 3.7.2015,  22:50)
int 3 генерирует исключение для отладки, по этому отловить его в своем коде можно как то так - https://msdn.microsoft.com/ru-RU/library/windows/desktop/ms681411(v=vs.85).aspx

Спасибо то что нужно было AddVectoredExceptionHandler
Вчера пол гугла перерыл, много статей под дос по запросу int3...  Чуть на стуле не подпрыгнул.

Автор: _zorn_ 4.7.2015, 11:16
Поколение растет...
Вынь да полож решение. В поисковиках же все есть.
Если что непонятно, велкам. Но объясните что такое https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B9 это перебор.

Автор: bass 4.7.2015, 12:13
Цитата(_zorn_ @ 4.7.2015,  11:16)
Поколение растет...
Вынь да полож решение. В поисковиках же все есть.
Если что непонятно, велкам. Но объясните что такое https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B9 это перебор.

Когда начал искать начал искать по ключевым словам int3.... int3+winNt... Не чего толкового не нашел... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)