Отладчик ядра: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Guranvir (обсуждение | вклад) Нет описания правки |
Guranvir (обсуждение | вклад) |
||
Строка 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 |
*М. Руссинович, Д. Соломон Внутреннее устройство 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 при активном отладчике ядра. Некоторые программы отказываются функционировать пр обнаружении или наличия отладчика в системе, или при обнаружении факта отладки.
Примечания
- ↑ Крис Касперски, Ева Рокко Искусство дизассемблирования (+ 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
- ↑ http://oss.sgi.com/projects/kdb/
Ссылки
- Крис Касперски, Ева Рокко Искусство дизассемблирования (+ CD-ROM) ISBN 978-5-9775-0082-1
- М. Руссинович, Д. Соломон Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP, Windows 2000. Мастер-класс ISBN 978-5-469-01174-3
- http://oss.sgi.com/projects/kdb/