Интернет магазин китайских планшетных компьютеров



Компьютеры - Отладчик ядра

23 января 2011


Оглавление:
1. Отладчик ядра
2. Основные принципы функционирования
3. Проблемы при применении



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

Применение

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

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

Так как очень часто программное обеспечение не поставляется с исходными текстами, а лишь в бинарном виде и сами уязвимости имеют машинно-зависимый характер, то эти две проблемы требует специальных инструментов. При статическом исследовании программы такими инструментами как дизассемблер многие детали поведения программы остаются не узнанными, например те локации памяти куда идет доступ со стороны программы, более трудно установить пути исполнения кода программы. Отладчик позволяет контролировать программу во время выполнения и изучать те изменения, которые в ней происходят на любом этапе выполнения. Возможности отладчика по отображению состояния стека программы, регистров процессора позволяют узнать различную информацию о реакции программы на те или иные события, логику выполнения кода. Это позволяет решить как первую вторую задачу указанную выше. Примером того как это делается может служить 3 глава из книги Хакинг: искусство эксплойта



Просмотров: 3261


<<< Инструментирование (программирование)
Пакет обновления >>>