1. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    395
    Reputations:
    297
    [IDT View]

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

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

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

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

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

    3)Просмотр GDT

    bin

    http://dump.ru/file/2347632


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

    Сорцы в скором времени будут драйвера и прожки, как только в порядок их приведу. Описание алго тоже сделаю нормальное, если надо. Пока хотелось бы потестить на стабильность. Если заглючит/забсодит, сразу делайте скрин/заливайте крешдамп, буду исправлять. Заранее спасибо
     
    #1 0x0c0de, 15 Mar 2009
    Last edited: 3 Apr 2009
    3 people like this.
  2. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    395
    Reputations:
    297
    Обновила. Теперь можно просматривать все KINTERRUPT, в контекстном меню все есть. Копирование записей в буфер обмена добавила, восстановление дефолтных обработчиков. Потестила у себя на тех системах, что были.

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

    [​IMG]

    [​IMG]
     
    #2 0x0c0de, 3 Apr 2009
    Last edited: 3 Apr 2009
  3. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    А че это такое?)
     
  4. Karantin

    Karantin Elder - Старейшина

    Joined:
    21 Dec 2007
    Messages:
    330
    Likes Received:
    146
    Reputations:
    24
    Таблица векторов прерываний, Interrupt Descriptor Table.
     
  5. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Прикольно, щас подобное на асме пишу... но там задачка по легче вывести количество свободных прерываний и адрес первого свободного )

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

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    395
    Reputations:
    297
    >>щас подобное на асме пишу... но там задачка по легче вывести количество свободных прерываний и адрес первого свободного )

    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 удобен для просмотра.
     
    #6 0x0c0de, 4 Apr 2009
    Last edited: 4 Apr 2009
  7. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    А код выложить религия не позволяет? хотелось бы посмотреть.
     
  8. LEE_ROY

    LEE_ROY Elder - Старейшина

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    Kernel Detective 1.2.* вроде показывает все что надо )
     
  9. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    395
    Reputations:
    297
    хм, сейчас скачала эту тулзу v1.2.1(до этого о ней не слышала). Не особенно удобно. И как-то я не увидела, чтобы оно по KINTERRUPT проходило. Например прерывание 0xB4 на моей машине.

    вот что выдает упомянутая вами утилита

    [​IMG]


    вот, что выдает мой кодес

    [​IMG]


    Вывод - они просто смотрят на сами входы и не учитывают того, что могут иметь дело с KINTERRUPT. Вся фишка втом, что одно прерывание могут использовать несколько дров. Поэтому обязательно надо проверять список структур KINTERRUPT, смотреть адреса обработчиков и уже потом проверять какому модулю они принадлежат. Написать "неизвестный модуль" проще всего конечно. А там на самом деле не неизвестный модуль а несколько дров, которые заюзали IoConnectInterrupt.
     
    #9 0x0c0de, 6 Apr 2009
    Last edited: 6 Apr 2009
    1 person likes this.
  10. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    395
    Reputations:
    297
    В общем, как и обещала, сорс..

    http://dump.ru/file/2416198


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