Просмотр полной версии : IDT View
[IDT View]
Кароче вот накодилось такое
Разработка в чисто образовательных целях. Просматривалка IDT.
[Возможности]
1)Проверка входов идт на предмет изменений. Информация подробная (учитывается не только смещение, но и селектор).
2)Просмотр (если возможно _KINTERRUPT)
3)Просмотр GDT
bin
http://dump.ru/file/2347632
--- добавлено 16.03 кое-что поменяла, теперь адекватней. KINTERRUPT сразу показывает в главном окне, если оно есть. По двойному щелчку - доп инфо о KINTERRUPT
Сорцы в скором времени будут драйвера и прожки, как только в порядок их приведу. Описание алго тоже сделаю нормальное, если надо. Пока хотелось бы потестить на стабильность. Если заглючит/забсодит, сразу делайте скрин/заливайте крешдамп, буду исправлять. Заранее спасибо
Обновила. Теперь можно просматривать все KINTERRUPT, в контекстном меню все есть. Копирование записей в буфер обмена добавила, восстановление дефолтных обработчиков. Потестила у себя на тех системах, что были.
Вот как-то так
http://s55.radikal.ru/i147/0904/07/1b06058421f1.jpg
http://s40.radikal.ru/i089/0904/77/f22bcf59fc29.jpg
Karantin
03.04.2009, 23:19
А че это такое?)
Таблица векторов прерываний, Interrupt Descriptor Table.
Прикольно, щас подобное на асме пишу... но там задачка по легче вывести количество свободных прерываний и адрес первого свободного )
мне просто интересно и чем эта программа может быть полезна?
>>щас подобное на асме пишу... но там задачка по легче вывести количество свободных прерываний и адрес первого свободного )
10 строчек кода. 1 инструкция sidt, а дальше цикл от 0 до 255 с проверкой "если не trap/tss/int, inc count". Задача не схожа кстати с моей.
Вообще, изначально мне просто хотелось KINTERRUPT все посмотреть и входы с учетом селектора. Вот и написалось. Скажем, например, восстановление дефолтного обработчика мб полезно, если кто-то похукал что-то.
Обычно неудобно, что показывают часть информации об IDT, например только хуки (RKU). Или как у Syser по команде idt (ну или в меню Information->Idt) без KINTERRUPT. А так вроде все вместе и расчет адреса сразу с базой сегмента.
У кого-то вероятно возник вопрос насчет kd (!idt). Да, kd показывает KINTERRUPT, модуль,содержащий обработчик и etc. Однако селектор я как поняла он для TSS показывает, а если это дескриптор шлюза прерывания, то уже смотрит только на смещение. А так, конечно, kd удобен для просмотра.
А код выложить религия не позволяет? хотелось бы посмотреть.
Kernel Detective 1.2.* вроде показывает все что надо )
Kernel Detective 1.2.* вроде показывает все что надо )
хм, сейчас скачала эту тулзу v1.2.1(до этого о ней не слышала). Не особенно удобно. И как-то я не увидела, чтобы оно по KINTERRUPT проходило. Например прерывание 0xB4 на моей машине.
вот что выдает упомянутая вами утилита
http://img201.imageshack.us/img201/4129/123mvk.th.jpg (http://img201.imageshack.us/my.php?image=123mvk.jpg)
вот, что выдает мой кодес
http://img201.imageshack.us/img201/5839/99279515.th.jpg (http://img201.imageshack.us/my.php?image=99279515.jpg)
Вывод - они просто смотрят на сами входы и не учитывают того, что могут иметь дело с KINTERRUPT. Вся фишка втом, что одно прерывание могут использовать несколько дров. Поэтому обязательно надо проверять список структур KINTERRUPT, смотреть адреса обработчиков и уже потом проверять какому модулю они принадлежат. Написать "неизвестный модуль" проще всего конечно. А там на самом деле не неизвестный модуль а несколько дров, которые заюзали IoConnectInterrupt.
В общем, как и обещала, сорс..
http://dump.ru/file/2416198
Откомментила все, что можно так-то.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot