Отладчик ядра: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 27: Строка 27:
==Ссылки==
==Ссылки==
*Крис Касперски, Ева Рокко Искусство дизассемблирования (+ CD-ROM) ISBN 978-5-9775-0082-1
*Крис Касперски, Ева Рокко Искусство дизассемблирования (+ CD-ROM) ISBN 978-5-9775-0082-1
*М. Руссинович, Д. Соломон Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP, Windows 2000. Мастер-класс ISBN 978-5-469-01174-3, 978-5-7502-0085-6, 0-7356-1917-4
*М. Руссинович, Д. Соломон Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP, Windows 2000. Мастер-класс ISBN 978-5-469-01174-3
*http://oss.sgi.com/projects/kdb/
*http://oss.sgi.com/projects/kdb/
[[Категория:Исследование программ]]
[[Категория:Исследование программ]]

Версия от 14:25, 15 августа 2010

Отладчик ядра--программное обеспечение, работающее на уровне ядра операционной системы и позволяющее отлаживать ядро и его компоненты.

Применение

Отладчики ядра находят множество применений. Вот некоторые из них:

  • Отладка драйверов. Особенно это касается драйверов режима ядра
  • Отладка ядра. Под этим процессом понимается поиск ошибок в функционировании ядра, модификация кода ядра. В случае закрытых систем как например Windows возникает новая задача: документирование структур данных и функций ядра.
  • Устранение и предотвращение BSOD
  • Отладка вредоносного программного кода. Такого рода программы довольно часто активно воздействуют на ядро операционной системы, изменяют поведение системных функций. Чтобы понять логику таких программ требуется контролировать в том числе и поведение ядра

Основные принципы

Для нормального функционирования отладчика уровня ядра требуется внесение изменений в ядро операционной системы. Довольно часто это решается при помощи внедрения в ядро дополнительных модулей. Фактически отладчик уровня ядра перехватывает глобально системные функции, которые отвечают за:

  • Доступ к памяти
  • Создание/завершение процессов

Так же отладчик ядра контролирует обращение к различным таблицам ядра.Еще один важный момент это управление состоянием процессора, т.к. процессоры поддерживают пошаговую трассировку и точки останова на аппаратном уровне.

Наиболее известные представители данного класса ПО

  • softICE. Пропиетарный отладчик разработанный фирмой Numega и распространяемый с продуктом DriverStudio. Были сделаны неофициальные сборки softICE различными хакерскими группами. softICE обеспечивал отладку кода на различных версиях Windows и был благодаря своим широким возможностям неофициальным стандартом в кругах,связанных с обратной инженерией ПО. Однако в последствии оказался заброшен. Сейчас он уже практически умер, т.к. не совместим с Windows Vista и 7[1] В то же время softICE стал во многом фундаментом идеологии использования таких инструментов.Работает только на Windows платформе

WinВbg.Это официальный бесплатный отладчик входящий в состав Debugging Tools for Windows от Microsoft. Он ориентирован на GUI интерфейс.Наборы символов для него позволяют исследовать ядро Windows, как например это делают в книге Марка Руссиновича и Дэвида Соломона Внутреннее устройство Windows.[2] В некоторых случаях WinDbg требует отладки с двух компьютеров соединенных по СOM-портам.

  • Syser. Наследник softICE разработанный китайскими программистами. Поддерживает интерфейс в стиле SoftICE. Совместим с новыми операционными системами Windows, поддерживает многопроцессорные системы. Платный и закрытым исходным текстом.
  • KDB Отладчик уровня ядра для *Nix от фирмы SGI. Активируется при помощи наложения патча на ядро[3]. OpenSource проект.
  • Linice Еще один OpenSource отладчик ядра для *Nix. Существуют некоторые проблемы совместимости с новыми ядрами Linux

Проблемы при применении

Очень важно что отладчик должен быть совместим с ядром операционной системы, где используется, т.к. отладчик модифицирует основные структуры ядра, которые имеют свойство меняться от версии к версии. Применение некорректной версии отладчика может привести к непредсказуемому поведению системы. Иной довольно серьезной проблемой является конфликт между драйверами уровня ядра других приложений и отладчика. Примером может служить невозможность работы программы Daemon Tools при активном отладчике ядра. Некоторые программы отказываются функционировать пр обнаружении или наличия отладчика в системе, или при обнаружении факта отладки.

Примечания

  1. Крис Касперски, Ева Рокко Искусство дизассемблирования (+ CD-ROM) ISBN 978-5-9775-0082-1
  2. М. Руссинович, Д. Соломон Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP, Windows 2000. Мастер-класс ISBN 978-5-469-01174-3, 978-5-7502-0085-6, 0-7356-1917-4
  3. http://oss.sgi.com/projects/kdb/

Ссылки