Заставьте windbg или kd, привязанный к ядру локала, вести себя как общесистемная строка

Я совершенно новичок в этой области, поэтому, пожалуйста, держись со мной. Я использую Windows 7, на которой я хочу выполнить отладку ядра, и я не хочу связываться с загрузчиком. Поэтому я скачал LiveKd, как предложено здесь, и запустил его, и кажется, что он работает. Если я правильно понимаю, это какая-то отладка только для чтения. Здесь упоминается, что он очень ограничен и даже точка останова не может быть использована. Я хотел бы спросить, возможно ли в этом режиме периодически сбрасывать все выполняемые инструкции или в основном все события, которые происходят в текущей ОС? Я хотел бы иметь некоторую общесистемную связь (пользователи Linux знают) и провести некоторый статистический анализ по этому вопросу. Я предполагаю, что это зависит от большего количества факторов, таких как установленные символы отладки, чтобы начать в состоянии разрешать адреса и т.д.

1 ответ

Решение

Я не уверен, что отладчик - лучший инструмент, который вы можете использовать для отслеживания активных системных вызовов. Как вы упомянули, сессия LiveKd довольно ограничена, и вам не разрешено размещать в ней точки останова (в противном случае вы бы повесили свою собственную систему). Тем не менее, вы все еще можете создавать дампы памяти, используя .dump команда (проверьте справку windbg: .hh .dump). Имейте в виду, что получение полного дампа (/f) работающей системы может занять много времени.

Возвращаясь к теме вашего вопроса, используя "подход сброса", вы пропустите многие системные вызовы, поскольку у вас будут только снимки системы в заданные моменты времени. Так что если вы ищете что-то похожее на Linux strace Я бы порекомендовал проверить эти инструменты:

  • Process Monitor (procmon) - это инструмент, который покажет вам все запросы ввода-вывода в системе, а также операции, выполненные в реестре или события активности процесса
  • Windows Performance Toolkit - содержит инструменты для сбора (WPR) и анализа (WPA) событий системы и приложений. Это может быть много событий, и очень важно фильтровать их в соответствии с вашими потребностями. ETW (Event Tracing для Windows) - это огромный вопрос, и вам, вероятно, потребуется прочитать некоторые учебные пособия или книги, прежде чем вы сможете эффективно его использовать (но оно того стоит!).
  • API Monitor - это одно из многих (я считаю его одним из лучших) приложений трассировки - этот инструмент позволит вам отслеживать вызовы методов в любом из запущенных процессов. Он имеет приятный интерфейс и даже позволяет размещать точки останова на методах, которые вы хотите перехватить.

Есть много других инструментов, которые могут использоваться для трассировки в Windows, но я бы начал с тех, которые я перечислил выше. Вы также можете проверить большую книгу на эту тему: Внутри Windows Отладка. Удачи!:)

Другие вопросы по тегам