PDA

Просмотр полной версии : IDT View


0x0c0de
15.03.2009, 22:33
[IDT View]

Кароче вот накодилось такое

Разработка в чисто образовательных целях. Просматривалка IDT.

[Возможности]

1)Проверка входов идт на предмет изменений. Информация подробная (учитывается не только смещение, но и селектор).

2)Просмотр (если возможно _KINTERRUPT)

3)Просмотр GDT

bin

http://dump.ru/file/2347632


--- добавлено 16.03 кое-что поменяла, теперь адекватней. KINTERRUPT сразу показывает в главном окне, если оно есть. По двойному щелчку - доп инфо о KINTERRUPT

Сорцы в скором времени будут драйвера и прожки, как только в порядок их приведу. Описание алго тоже сделаю нормальное, если надо. Пока хотелось бы потестить на стабильность. Если заглючит/забсодит, сразу делайте скрин/заливайте крешдамп, буду исправлять. Заранее спасибо

0x0c0de
03.04.2009, 23:04
Обновила. Теперь можно просматривать все KINTERRUPT, в контекстном меню все есть. Копирование записей в буфер обмена добавила, восстановление дефолтных обработчиков. Потестила у себя на тех системах, что были.

Вот как-то так

http://s55.radikal.ru/i147/0904/07/1b06058421f1.jpg

http://s40.radikal.ru/i089/0904/77/f22bcf59fc29.jpg

Chaak
03.04.2009, 23:07
А че это такое?)

Karantin
03.04.2009, 23:19
А че это такое?)
Таблица векторов прерываний, Interrupt Descriptor Table.

Gar|k
04.04.2009, 01:23
Прикольно, щас подобное на асме пишу... но там задачка по легче вывести количество свободных прерываний и адрес первого свободного )

мне просто интересно и чем эта программа может быть полезна?

0x0c0de
04.04.2009, 07:29
>>щас подобное на асме пишу... но там задачка по легче вывести количество свободных прерываний и адрес первого свободного )

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 удобен для просмотра.

razb
04.04.2009, 13:16
А код выложить религия не позволяет? хотелось бы посмотреть.

LEE_ROY
06.04.2009, 19:10
Kernel Detective 1.2.* вроде показывает все что надо )

0x0c0de
06.04.2009, 20:27
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.

0x0c0de
07.04.2009, 20:25
В общем, как и обещала, сорс..

http://dump.ru/file/2416198


Откомментила все, что можно так-то.