![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#3
|
||||
|
||||
![]() Цитата:
По теме - это называется отладка. Есть аппаратные отладочные регистры, есть флаг Trace, генерирующий исключение после каждой команды. Трассировать из третьего кольца прерывания невозможно, т.к. прерывание отправляется в ядро системы, на нулевое кольцо, и там системе уже не до всяких левых отладчиков. Также нельзя трассировать SysCall'ы. Против отладки есть антиотладочные приемы. Так что полностью автоматически некоторые приложения не отладить. Ежели надо трассировать вообще всё - можно смотреть в сторону эмуляторов, там теоретически это возможно. Но если отладчик на уровне эмулятора - придется как-то фильтровать поток исполнения, т.к. через отладчик будут проходить все процессы и система. Также можно попробовать Syser - ядерный отладчик. У меня он к сожалению не заводится. Пытаться писать такое самому не советую - 147% угробишь систему. И еще - сильно сомневаюсь, что даже не зная толком про прерывания получится сделать вменяемый отладчик и уж тем более уделать уже существующие. OllyDbg неплох, в IDA Pro есть еще и IDC/Pyton скрипты, через которые можно делать все что угодно непосредственно во время отладки (правда несколько медлительны эти скрипты). jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 26.10.2013 в 17:23. |