Дампы памяти

Анализ креш-дампов памяти Windows

Как часто Вам приходится лицезреть экран смерти Windows (BSoD)? BSoD может возникать в разных случаях: как уже при работе с системой, так и в процессе загрузки операционной системы. Как же определить, чем вызвано появление BSoD и устранить эту проблему? Операционная система Windows способна сохранять дамп памяти при появлении ошибки, чтобы системный администратор мог проанализировать данные дампа и найти причину возникновения BSoD.
Существует два вида дампов памяти — малый (minidump) и полный. В зависимости от настроек операционной системы, система может сохранять полный или малый дампы, либо не предпринимать никаких действий при возникновении ошибки.
Малый дамп располагается по пути %systemroot%\minidump и имеет имя вроде Minixxxxxx-xx.dmp
Полный дамп располагается по пути %systemroot% и имеет имя вроде Memory.dmp
Для анализа содержимого дампов памяти следует применять специальную утилиту — Microsoft Kernel Debugger.
Получить программу и компоненты, необходимые для ее работы, можно напрямую с сайта Microsoft — Debugging Tools
При выборе отладчика следует учитывать версию операционной системы, на которой Вам придется анализировать дампы памяти. Для 32-разрядной ОС необходима 32-битовая версия отладчика, а для 64-разрядной ОС предпочтительно использовать 64-битовую версию отладчика.
Помимо самого пакета Debugging Tools for Windows, также понадобятся набор отладочных символов — Debugging Symbols. Набор отладочных символов специфичен для каждой ОС, на которой был зафиксирован BSoD. Потому придется загрузить набор символов для каждой ОС, анализировать работу которой Вам придется. Для 32-разрядной Windows XP потребуются набор символов для Windows XP 32-бит, для 64-разрядной ОС потребуются набор символов для Windows XP 64-бит. Для других ОС семейства Windows наборы символов подбираются сообразно такому же принципу. Загрузить отладочные символы можно отсюда. Устанавливать их рекомендуется по адресу %systemroot%\symbols
После установки отладчика и отладочных символов, запускаем отладчик. Окно отладчика после запуска выглядит следующим образом.

Перед анализом содержимого дампа памяти, потребуется провести небольшую настройку отладчика. Конкретно — сообщить программе, по какому пути следует искать отладочные символы. Для этого выбираем в меню File > Symbol File Path… Нажимаем кнопку Browse… и указываем папку, в которую мы установили отладочные символы для рассматриваемого дампа памяти.

Можно запрашивать информацию о требуемых отладочных символах прямо через Интернет, с публичного сервера Microsoft. Таким образом у вас будет самая новая версия символов. Сделать это можно следующим образом — в меню File > Symbol File Path… вводим: SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols
После указания пути к отладочным символам, выбираем в меню File > Save workspace и подтверждаем действие нажатием на кнопку OK.
Чтобы приступить к анализу дампа памяти, выбираем в меню File > Open Crash Dump… и выбираем требуемый для рассмотрения файл.

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

Команда !analyze -v, данная отладчику в командной строке, выведет более детальную информацию.
Завершить отладку можно выбором пункта меню Debug > Stop Debugging
Таким образом, используя пакет Debugging Tools for Windows, всегда можно получить достаточно полное представление о причинах возникновения системных ошибок.

Все Windows-системы при обнаружении фатальной ошибки делают аварийный дамп (снимок) содержимого оперативной памяти и сохраняет его на жесткий диск. Существуют три типа дампа памяти:

Полный дамп памяти – сохраняет все содержимое оперативной памяти. Размер снимка равен размеру оперативной памяти + 1 Мб (заголовок). Используется очень редко, так как в системах с большим объемом памяти размер дампа будет слишком большим.

Дамп памяти ядра – сохраняет информацию оперативной памяти, касающуюся только режима ядра. Информация пользовательского режима не сохраняется, так как не несет в себе информации о причине краха системы. Объем файла дампа зависит от размера оперативной памяти и варьируется от 50 Мб (для систем с 128 Мб оперативной памяти) до 800 Мб (для систем с 8 Гб оперативной памяти).

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

НАСТРОЙКА СИСТЕМЫ

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

Для Windows XpДля Windows 7
  1. Правой клавишей мыши нажать на значке Мой компьютер из контекстного меню выберите Свойства (или комбинация клавиш Win+Pause);
  2. Переходите на вкладку Дополнительно;
  3. В поле Загрузка и восстановление необходимо нажать кнопку Параметры;
  4. В поле Запись отладочной информации выбираем Малый дамп памяти (64 Кб).
  1. Правой клавишей мыши нажать на значке Компьютер из контекстного меню выберите Свойства (или комбинация клавиш Win+Pause);
  2. В левом меню щелкаем на пункт Дополнительные параметры системы;
  3. Переходите на вкладку Дополнительно;
  4. В поле Загрузка и восстановление необходимо нажать кнопку Параметры;
  5. В поле Запись отладочной информации выбираем Малый дамп памяти (128 Кб).

Проделав все манипуляции, после каждого BSoD в папке C:\WINDOWS\Minidump будет сохраняться файл с расширение .dmp. Советую ознакомиться с материалом «Как создать папку». Также можно установить галочку на “Заменить существующий файл дампа”. В этом случае каждый новый аварийный дамп будет записываться поверх старого. Я не советую включать данную опцию.

АНАЛИЗ АВАРИЙНОГО ДАМПА ПАМЯТИ С ПОМОЩЬЮ ПРОГРАММЫ BLUESCREENVIEW

Итак, после появления синего экрана смерти система сохранила новый аварийный дамп памяти. Для анализа дампа рекомендую использовать программу BlueScreenView. Её можно бесплатно скачать тут. Программа довольно удобная и имеет интуитивный интерфейс. После её установки первое, что необходимо сделать – это указать место хранение дампов памяти в системе. Для этого необходимо зайти в пункт меню “Options” и выбрать “Advanced Options”. Выбираем радиокнопку “Load from the following Mini Dump folder” и указываем папку, в которой хранятся дампы. Если файлы хранятся в папке C:\WINDOWS\Minidump можно нажатием кнопки “Default”. Нажимаем OK и попадаем в интерфейс программы.

Программа состоит из трех основных блоков:

  1. Блок главного меню и панель управления;
  2. Блок списка аварийных дампов памяти;
  3. В зависимости от выбранных параметров может содержать в себе:
  • список всех драйверов находящихся в оперативной памяти до появления синего экрана (по умолчанию);
  • список драйверов находящихся в стеке оперативной памяти;
  • скриншот BSoD;
  • и другие значения, которые мы использовать не будем.

В блоке списка дамп памяти (на рисунке помечен цифрой 2) выбираем интересующий нас дамп и смотрим на список драйверов, которые были загружены в оперативную память (на рисунке помечен цифрой 3). Розовым цветом окрашены драйвера, которые находились в стеке памяти. Они то и являются причиной появления BSoD. Далее переходите в Главное меню драйвера, определяйте к какому устройству или программе они принадлежат. В первую очередь обращайте внимание на не системные файлы, ведь системные файлы в любом случае загружены в оперативной памяти. Легко понять, что на изображении сбойным драйвером является myfault.sys. Скажу, что это программа была специально запущена для вызова Stop ошибки. После определения сбойного драйвера, необходимо его либо обновить, либо удалить из системы.

Для того чтобы программа показывала список драйверов находящихся в стеке памяти во время возникновения BSoD необходимо зайти в пункт меню “Options” кликаем на меню “LowerPaneMode” и выбираем “OnlyDriversFoundInStack” (или нажмите клавишу F7), а для показа скриншота ошибки выбираем “BlueScreeninXPStyle” (F8). Что бы вернуться к списку всех драйверов, необходимо выбрать пункт “AllDrivers” (F6).

В Windows

В Windows существует два вида дампов, дампы режима ядра и дампы пользовательского режима.

Дамп режима ядра

Когда в Windows происходит ошибка в ядре операционной системы, ОС не может продолжать свою работу, что приводит к так называемому синему экрану смерти (англ. BSoD). Во время показа этого экрана идёт запись дампа режима ядра (англ. kernel-mode dump). Тип записываемого дампа задаётся в свойствах системы во вкладке «Загрузка и восстановление». Windows поддерживает три режима записи дампа, различающиеся объёмом сохраняемой информации:

  • Полный дамп системы (англ. Complete Memory Dump) — содержит всю физическую память системы. Существуют проблемы при записи такого дампа, если в системе более 4Гб ОЗУ (это связано с тем, что 32 бита могут адресовать максимум 4Гб). Обычно записывается в файл C:\Windows\MEMORY.DMP;
  • Дамп памяти ядра (англ. Kernel Memory Dump) — содержит всю память, которую использует ядро системы;
  • Малый дамп памяти (англ. Small Memory Dump) — содержит различную информацию, например, стоп код, параметры ошибки, список загруженных драйверов и т. п. Обычно записываются в папке C:\Windows\Minidump.

Дамп пользовательского режима

Дамп пользовательского режима (англ. user-mode dump), также часто просто (англ. minidump), это дамп памяти отдельного процесса. Он содержит в себе выбранные к записи виды данных. В частности это может быть: полная или частичная (отфильтрованная) память процесса; список, стек, состояние потоков; дескрипторы (англ. handle) объектов ядра; список загруженных библиотек, а также список выгруженных библиотек. Полностью ознакомиться с возможными вариантами можно изучив перечисление MINIDUMP_TYPE.

> См. также

  • Отчёт об ошибке (программирование)
  • Ошибка сегментации

Аварийный дамп памяти Windows

Данная небольшая заметка ставит целью своей показать, каким же образом можно сконфигурировать систему, чтобы получить в своё распоряжение аварийный дамп памяти Windows, то есть дамп, который может быть создан в случае возникновения критического сбоя, характеризующегося появлением синего экрана смерти (BSOD). Что же такое дамп вообще, для чего он нам требуется и что из себя представляет, какие проблемы он призван решить и какую информацию содержит в себе?

Дамп памяти (memory dump) — содержимое рабочей памяти процесса, ядра или всей операционной системы, включающий, помимо рабочих областей, дополнительную информацию о состоянии регистров процессора, содержимом стека и прочие служебные структуры.

Для чего нам может потребоваться данное содержимое, то есть дамп памяти Windows? Пожалуй, наиболее часто дамп памяти используется для изучения причин возникновения системного сбоя (BSOD), который явился причиной полного останова операционной системы. В дополнение к этому, состояние памяти может использоваться и для других целей. Немаловажен и тот факт, что дамп памяти — это буквально единственный способ получения информации о любом сбое! А снятие (получение) дампа памяти системы — это, фактически, единственный точный метод получения мгновенного отпечатка (копии) содержимого физической памяти системы.

Чем точнее содержимое дампа будет отражать состояние памяти в момент сбоя, тем подробнее мы сможем проанализировать аварийную ситуацию. Поэтому крайне важно получить именно актуальную копию физической памяти системы в строго определенный момент времени, непосредственно предшествующий сбою. А единственный способ сделать это — создать полный аварийный дамп памяти. Причина достаточно тривиальна — когда происходит создание аварийного дампа памяти системы, в результате ли сбоя, либо в следствии искусственно смоделированной ситуации, система в этот момент получения управления аварийными функциями (KeBugCheckEx) пребывает в абсолютно неизменном (статичном) состоянии, поэтому между моментом возникновения сбоя и моментом окончания записи данных на носитель ничто не изменяет содержимое физической памяти, и она в оригинальном состоянии записывается на диск. Ну это в теории, а в жизни изредка, но встречаются ситуации, что по причине неисправных аппаратных компонентов, сам дамп памяти может быть поврежден, или в процессе записи дампа станция может подвиснуть.

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

Теоретически, статичность (неизменность) «отпечатка» памяти объясняется тем, что когда вызывается функция KeBugCheckEx, выводящая на экран информацию о сбое и стартующая процесс создания дампа памяти, система уже полностью остановлена и содержимое физической памяти записано в блоки, занимаемые на диске файлом подкачки, после чего, уже в процессе последующей загрузки операционной системы оно сбрасывается в файл на системном носителе. Ну а практически один раз наблюдал ситуацию, когда сбоящая материнская плата не давала сохранить дамп памяти: а) подвисая в процессе работы логики сохранения дампа (процесс не доходил до 100%), б) повреждая файл дампа памяти (отладчик ругался на структуры), в) записывая файлы дампов memory.dmp нулевой длины. Поэтому, не смотря на то, что система в момент создания дампа памяти уже полностью остановлена, и работает только аварийный код, сбойное железо может вносить свои коррективы в любую без исключения логику на любом этапе функционирования.
Традиционно, на начальном этапе для сохранения дампа памяти Windows используются блоки диска, выделенные файлу подкачки (pagefile). Затем, после возникновения синего экрана и перезагрузки, данные перемещаются в отдельный файл, а затем файл переименовывается по шаблону, зависящему от типа дампа. Однако, начиная с версии Windows Vista, подобное положение вещей возможно изменить, теперь пользователю дана возможность сохранять выделенный дамп без участия файла подкачки, помещая информацию о сбое во временный файл. Сделано это для того, чтобы исключить ошибки конфигурации, связанные с неправильной настройкой размера и положения файла подкачки, что зачастую приводило к проблемам в процессе сохранения дампа памяти.
Давайте посмотрим, какие же разновидности дампов позволяет нам создавать операционная система Windows:

  • Дамп памяти процесса (приложения);
  • Дамп памяти ядра;
  • Полный дамп памяти (дамп доступной части физической памяти системы).

Все аварийные дампы можно разделить на две основных категории:

  • Аварийные дампы с информацией о возникшем исключении. Обычно создаются в автоматическом режиме, когда в приложении/ядре возникает необрабатываемое исключение (unhandled exception) и, соответственно, может быть вызван системный (встроенный) отладчик. В этом случае информация об исключении записывается в дамп, что упрощает определение типа исключения и места возникновения при последующем анализе.
  • Аварийные дампы без информации об исключении. Обычно создаются пользователем в ручную, когда необходимо создать просто мгновенный снимок процесса для последующего анализа. Анализ этот подразумевает не определение типа исключения, поскольку никакого исключения и не возникало, а анализ совершенно другого рода, например изучение структур данных процесса и прочее.

Конфигурация дампа памяти ядра

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

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

  1. Нажать правой кнопкой мыши на значке «Мой Компьютер» — «Свойства» — «Дополнительные параметры системы» — «Дополнительно».
  2. Кнопка «Пуск» — «Панель управления» — «Система» — «Дополнительные параметры системы» — «Дополнительно».
  3. Сочетание клавиш «Windows» + «Pause» — «Дополнительные параметры системы» — «Дополнительно».
  4. Выполнить в командной строке (cmd):
    control system.cpl,,3
  5. Выполнить в командной строке (cmd):
    SystemPropertiesAdvanced

Результатом описанных действий является открытие окна «Свойства системы» и выбор вкладки «Дополнительно»:

После этого в разделе «Загрузка и восстановление» мы нажимаем выбираем «Параметры» и тем самым открываем новое окно под названием «Загрузка и восстановление»:

Все параметры аварийного дампа сгруппированы в блоке параметров под названием «Отказ системы». В этом блоке мы можем задать следующие параметры:

  1. Записать события в системный журнал.
  2. Выполнить автоматическую перезагрузку.
  3. Запись отладочной информации.
  4. Файл дампа.
  5. Заменять существующий файл дампа.

Как видите, многие параметры из списка достаточно тривиальны и просты в понимании. Однако, я бы хотел подробнее остановиться на параметре «Файл дампа». Параметр представлен в виде ниспадающего списка, и имеет четыре возможных значения:

Малый дамп памяти (Small memory dump)

Малый дамп памяти (минидамп, minidump) — это файл, который содержит наименьший объем информации о сбое. Самый маленький из всех возможных дампов памяти. Не смотря на очевидные минусы, зачастую именно минидампы используются в качестве информации о сбое для передачи поставщику сторонних драйверов с целью последующего изучения.
Состав:

  • Сообщение об ошибке.
  • Значение ошибки.
  • Параметры ошибки.
  • Контекст процессора (PRCB), на котором произошел сбой.
  • Сведения о процессе и контекст ядра (EPROCESS) для процесса, являющего причиной сбоя, со всеми его потоками.
  • Сведения о процессе и контекст ядра (ETHREAD) для потока, являющегося причиной сбоя.
  • Стек режима ядра для потока, который явился причиной сбоя.
  • Список загруженных драйверов.

Размещение: %SystemRoot%\Minidump\MMDDYY-XXXXX-NN.dmp. Где MMDDYY — месяц, день и год соответственно, NN — порядковый номер дампа.
Объем: Размер зависит от разрядности операционной системы: требуется всего-то 128 килобайт для 32-разрядной и 256 килобайт для 64-разрядной ОС в файле подкачки (либо в файле, указанном в DedicatedDumpFile). Поскольку выставить столь малый размер мы не сможем, то округляем до 1 мегабайта.

Дамп памяти ядра (Kernel memory dump)

Данный тип дампа содержит копию всей памяти ядра на момент сбоя.
Состав:

  • Список исполняющихся процессов.
  • Состояние текущего потока.
  • Страницы памяти режима ядра, присутствующие в физической памяти в момент сбоя: память драйверов режима ядра и память программ режима ядра.
  • Память аппаратно-зависимого уровня (HAL).
  • Список загруженных драйверов.

В дампе памяти ядра отсутствуют нераспределенные страницы памяти и страницы пользовательского режима. Согласитесь, ведь маловероятно, что страницы процесса пользовательского режима будут нам интересны при системном сбое (BugCheck), поскольку обычно системный сбой инициируется кодом режима ядра.
Размещение: %SystemRoot%\MEMORY.DMP. Предыдущий дамп перезаписывается.
Объем: Варьируется в зависимости от размера адресного пространства ядра, выделенной операционной системой и количества драйверов режима ядра. Обычно, требуется около трети объема физической памяти в файле подкачки (либо в файле, указанном в DedicatedDumpFile). Может варьироваться.

Полный дамп памяти (Complete memory dump)

Полный дамп памяти содержит копию всей физической памяти (ОЗУ, RAM) в момент сбоя. Соответственно, в файл попадает и все содержимое памяти системы. Это одновременно преимущество и главный недостаток, поскольку размер его на некоторых серверах с большим объемом ОЗУ может оказаться существенным.
Состав:

  • Все страницы «видимой» физической памяти. Это практически вся память системы, за исключением областей, используемых аппаратной частью: BIOS, пространство PCI и прч.
  • Данные процессов, которые выполнялись в системе в момент сбоя.
  • Страницы физической памяти, которые не отображены на виртуальное адресное пространство, но которые могут помочь в изучении причин сбоя.

В полный дамп памяти не включаются, по-умолчанию, области физической памяти, используемой BIOS.
Размещение: %SystemRoot%\MEMORY.DMP. Предыдущий дамп перезаписывается.
Объем: В файле подкачки (либо в файле, указанном в DedicatedDumpFile) требуется объем, равный размеру физической памяти + 257 мегабайт (эти 257 Мб делятся на некий заголовок + данные драйверов). На деле же, в некоторых ОС, нижний порог файла подкачки можно выставить точно в значение размера физической памяти.

Автоматический дамп памяти (Automatic memory dump)

Начиная с Windows 8/Windows Server 2012, в систему введен новый тип дампа под названием «Автоматический дамп памяти», который устанавливается типом по умолчанию. В этом случае система сама решает, какой дамп памяти записать в ситуации того или иного сбоя. Причем логика выбора зависит от многих критериев, в том числе от частоты «падения» операционной системы.

После изменения конфигурации дампа памяти Windows, может потребоваться перезагрузка компьютера.

Параметры реестра

Раздел реестра, который определяет параметры аварийного дампа:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

Параметры:

ПараметрТипОписание
AutoReboot REG_DWORD Включение/отключение автоматической перезагрузки при возникновении BSOD.
CrashDumpEnabled REG_DWORD Вид создаваемого дампа.

  • 0 — не создавать дамп памяти;
  • 1 — полный дамп памяти;
  • 2 — дамп памяти ядра;
  • 3 — малый дамп памяти;
DumpFile REG_EXPAND_SZ Путь и название дампа памяти ядра и полного дампа памяти.
DumpFilters REG_MULTI_SZ Драйвер-фильтр в стеке драйверов дампа памяти. Позволяет добавлять новый функционал на этапе создания аварийных дампов. Например, шифрование содержимого дампа. Изменять значение не рекомендуется.
LogEvent REG_DWORD Запись события в системный журнал.
MinidumpDir REG_EZPAND_SZ Путь и название малого дампа памяти.
MinidumpsCount REG_DWORD Максимальное количество малых дампов памяти. При превышении начинают затираться более старые версии.
Overwrite REG_DWORD Заменять существующий файл дампа. Только для дампа памяти ядра и полного дампа памяти.
IgnorePagefileSize REG_DWORD Игнорирует стандартный файл подкачки как место для временного (промежуточного) хранения дампа памяти. Указывает на необходимость записать дамп памяти в отдельный файл. Используется совместно с опцией DedicatedDumpFile.
DedicatedDumpFile REG_EZPAND_SZ Путь и название временного альтернативного файла для записи дампа памяти. Во втором проходе данные все равно будут перемещены в DumpFile/MinidumpDir.

Файлы настроек реестра

В дополнение, для того, чтобы не тратить время на ручное задание параметров дампов памяти Windows, я выкладываю здесь готовые .reg файлы, по одному файлу на каждый из режимов записи:

Скачать: Малый дамп памяти

Скачать: Дамп памяти ядра

Скачать: Полный дамп памяти

Как анализировать синий экран dump memory в Windows-01

Синий экран смерти или как его еще называют BSOD, может изрядно подпортить жизнь как компьютеру так и серверу, а еще выяснилось и виртуальной машине. Сегодня расскажу как анализировать синий экран dump memory в Windows, так как правильная диагностика и получение причины из за чего не работает ваша система, 99 процентов ее решения, тем более системный инженер, просто обязан уметь это делать, да и еще в кратчайшие сроки, так как от этого бизнес может в следствии простоя сервиса, терять кучу денег.

BSOD расшифровка

Давайте для начала разберем, что означает данная аббревиатура, BSOD от английского Blue Screen of Death или еще режим STOP ошибки.

Ошибки синего экрана смерти возникают по разным причинам, среди которых могут быть проблемы с драйверами, может быть какое то сбойное приложение, или сбойный модуль оперативной памяти. Как только у вас появился синий экран в Windows, то ваша система автоматически создаст файл crash memory dump, который мы и будем анализировать.

Как установить Microsoft Kernel Debugger

Скачиваем Microsoft Kernel Debugger, в итоге у вас будет маленький файл который позволит скачать из интернета все что вам нужно. Запускаем его.

Как установить Microsoft Kernel Debugger-01

присоединяться к программе по улучшению качества участвовать не будем

Как установить Microsoft Kernel Debugger-02

жмем Accept и соглашаемся с лицензией

Как установить Microsoft Kernel Debugger-соглашаемся с лицензией

Далее выбираем компонент и жмем install

Как установить Microsoft Kernel Debugger-04

начнется установка Microsoft Kernel Debugger

Как установить Microsoft Kernel Debugger-установка MKD

Видим, что Microsoft Kernel Debugger успешно установлен

Как установить Microsoft Kernel Debugger-06

После чего видим, что в пуске появилась папка Debugging Tools for Windows как для 32 так и для 64 битных систем.

Как установить Microsoft Kernel Debugger-07

Помимо самого пакета Debugging Tools for Windows, также понадобятся набор отладочных символов — Debugging Symbols. Набор отладочных символов специфичен для каждой ОС, на которой был зафиксирован BSoD. Потому придется загрузить набор символов для каждой ОС, анализировать работу которой Вам придется. Для 32-разрядной Windows XP потребуются набор символов для Windows XP 32-бит, для 64-разрядной ОС потребуются набор символов для Windows XP 64-бит. Для других ОС семейства Windows наборы символов подбираются сообразно такому же принципу. Загрузить отладочные символы можно . Устанавливать их рекомендуется по адресу %systemroot%\symbols хотя мне нравится устанавливать их в отдельные папки и не захламлять папку Windows.

Анализ синего экрана в Debugging Tools

После установки Debugging Symbols под систему на которой был синий экран смерти запускаем Debugging Tools

Как установить Microsoft Kernel Debugger-Запуск

Перед анализом содержимого дампа памяти, потребуется провести небольшую настройку отладчика. Конкретно — сообщить программе, по какому пути следует искать отладочные символы. Для этого выбираем в меню File > Symbol File Path…

Как установить Microsoft Kernel Debugger-09

Нажимаем кнопку Browse…

Как установить Microsoft Kernel Debugger10

и указываем папку, в которую мы установили отладочные символы для рассматриваемого дампа памяти, можно указать несколько папок через запятую и можно запрашивать информацию о требуемых отладочных символах прямо через Интернет, с публичного сервера Microsoft. Таким образом у вас будет самая новая версия символов. Сделать это можно следующим образом — в меню File > Symbol File Path… вводим:

SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols

Как установить Microsoft Kernel Debugger-11

Как анализировать синий экран смерти

Копируем с компьютера где выскочил синий экран, файл memory.dmp или minidump, и открываем его, выбираем в меню File > Open Crash Dump… и выбираем требуемый для рассмотрения файл.

Как анализировать синий экран смерти-01

Выбираем для примера minidump

Как анализировать синий экран смерти-открываем minidump

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

Как анализировать синий экран смерти-03

И видим сбойное приложение которое крушит вашу систему, так же можно еще детальнее посмотреть в чем дело, ткнув ссылку.

Как анализировать синий экран смерти-04

Получите более детальную информацию по причине синего экрана.

Как анализировать синий экран смерти-05

Если открыть memory.dmp то вы получите подобную картину и видим почему синий экран у вас появился.

Как анализировать синий экран смерти-06

Ткнув по ссылке в логе вы получаете самую детальную информацию об ошибке.

Как анализировать синий экран смерти-07

Вот так вот просто диагностировать и устранить синий экран смерти.

Материал сайта pyatilistnik.org

8 очень актуальных и бесплатных утилит

. За последние несколько лет я собрал подборку замечательных утилит, которыми пользуюсь ежедневно. Эти инструменты позволяют мне быстрее справляться с работой, дают возможность получать более точные результаты, а также помогают моим клиентам. Отобранные утилиты умещаются на съемном накопителе USB, так что они всегда у меня под рукой. При этом лучшая часть моего набора инструментов распространяется бесплатно. Подробную информацию о том, где загрузить нужные инструменты, можно найти во врезке «Дополнительная информация».

Коммуникационные утилиты

По роду своей деятельности я связан с обслуживанием клиентов на сервере web-узлов и мне часто приходится перемещать большое количество каталогов и папок с одного сервера на другой. Мои клиенты должны делать то же самое, когда они выпускают новые версии кода на своих Web-узлах. Проводить клиентов по сессии протокола FTP с командной строкой по телефону едва ли возможно, ведь многие пользователи незнакомы с протоколом FTP. Хотя коммерческие программы с графическим интерфейсом для FTP всегда были под рукой, перспектива платить от 10 до 30 долларов за лицензию на графический интерфейс для доступного протокола мне не нравилась. И вот однажды возникла идея альтернативного решения, которое было бы графическим, бесплатным и позволяло бы за один раз переносить большое количество файлов с одного места на другое по протоколу FTP. Один инструмент мог с этим справиться, это был клиент с открытым кодом — FileZilla.

Клиент с открытым кодом FileZilla является клиентом FTP с графическим интерфейсом; данный инструмент запускается на всех 32-разрядных версиях Windows, начиная с Windows 95 и кончая Windows XP. Клиент FileZilla поддерживает передачи по протоколу FTP и SSH File Transfer Protocol (SFTP), операции drag-and-drop, очереди из нескольких файлов и передачу по нескольким соединениям, а также режим PASV (passive). Проще говоря, он предоставляет любую возможность, которую предлагает большинство коммерческих пакетов, и платить за него не нужно. Эта утилита должна присутствовать в наборе инструментов каждого администратора.

В качестве бонуса FileZilla также приходит в версии сервера, если нужен быстрый и простой сервер FTP при нежелании устанавливать Microsoft IIS. Или если IIS установить нельзя, как в случае с XP Home Edition. На Экране 1 (http://www.windowsitpro.com/Files/50122/Экран_01.gif ) показан клиент FileZilla в действии.

Лет десять назад финский инженер Тату Илёне разработал первую версию протокола, известного как Secure Shell (SSH). Первая версия (теперь, как правило, ссылаются на SSH-1) позволяла создавать шифрованные сессии с командной оболочкой (с приглашением на ввод команд) на системах UNIX в небезопасных сетях типа Internet. Теперь de facto протокол SSH превратился в стандарт для удаленного управления в мире UNIX, причем c OpenSSH он доступен и для Windows.

Для чего же нужен протокол SSH, если Microsoft уже включает сервер и клиент Telnet со всеми самыми свежими версиями Windows? Очень просто: для безопасности. Microsoft Telnet можно использовать для удаленного создания сессии на основе приглашения для ввода команд по Internet, но такая коммуникационная сессия будет идти в открытом виде. Поэтому все желающие смогут увидеть, что делается в такой сессии Telnet.

Протокол SSH был призван заменить опасные протоколы типа Telnet, причем он предоставлял все нужные возможности. Хотя администраторы обычно пользуются протоколом SSH для Windows, чтобы создавать сессию на основе приглашения для ввода команд в небезопасных сетях, они также используют протокол SSH для доступа к портам TCP по туннелю SSH, все для той же безопасной передачи файлов.

Я считаю, что протокол SSH может пригодиться моим клиентам для удаленного управления. Часто для беспроводного подключения по сотовым сетям (например, через сети General Packet Radio Service—GPRS) мне бывает необходимо удаленное подключение к системам клиентов. С помощью протокола SSH я могу установить сессию на основе командной строки с удаленной системой, поскольку такое подключение безопасно и при этом можно быстро устранить возникающие проблемы. На Экране 2 (http://www.windowsitpro.com/Files/50122/Экран_02.gif) показана клиентская сессия OpenSSH. Графические протоколы типа терминальных служб, Terminal Services, хороши, когда есть широкая полоса пропускания, если же ее нет, то протокол SSH является наиболее подходящим решением.

В качестве бонуса предлагается несколько хороших клиентов SSH для портативных устройств, как для PocketPC, так и для Palm OS, причем предоставляется широкий набор возможностей для безопасного удаленного управления.

Утилиты прослушивания

Иногда я мечтаю перестать заниматься серверной техникой и консультированием, и поработать с сетевой аппаратурой. Ведь, в конце концов, сети проще — пакет либо есть, либо его нет. Конечно, я слишком упрощаю дело – просто я предлагаю одну из своих любимых командных утилит, WinDump.

Утилита WinDump — исключительно мощный пакетный командный сниффер (программа для пассивного прослушивания с поддержкой командной строки). Перенесенный с утилиты Tcpdump, доступной для UNIX, WinDump обладает той же мощью и гибкостью в мире Windows и при этом имеет всего 440 Kбайт исполняемого кода.

Утилита WinDump бывает полезна в тех случаях, когда необходимо быстро выполнить пакетный сбор данных для выявления сетевой проблемы. Это гибкая утилита, она может захватить и отобразить детали по каждому пакету, который пересекает сетевой интерфейс. Она способна фильтровать результаты на выходе на основе протокола (например, протокола разрешения адресов Address Resolution Protocol—ARP, IP, TCP, UDP), сети или хоста источника, сети или хоста назначения, порта источника, порта назначения и на основе многих других критериев.

Для использования WinDump сначала надо ее загрузить и установить библиотеку захвата пакетов Windows Packet Capture Library (WinPcap), портированную на Windows открытую библиотеку захватов пакетов и сетевого анализа libpcap для UNIX. Библиотека WinPcap работает на всех версиях Windows. Самая последняя бета-версия (на момент написания статьи) — 3.1 beta 4.

После установки WinPcap можно загрузить автономный исполняемый файл WinDump. Версия 3.8.3 – самая последняя версия на момент написания данной статьи, она вполне прилично работает вместе с последней бета-версией для WinPcap. Для старта WinDump достаточно просто запустить пакет с командной строки с правильными параметрами, с которыми следует проводить захват и чтение. Подробное руководство по WinDump содержится в файле http://windump.polito.it/docs/manual.htm .

Как показано на Рисунке 3 (http://www.windowsitpro.com/Files/50122/Экран_03.gif), первая команда для исполнения – это Win-Dump -D. Данная команда показывает список интерфейсов, доступных на компьютере, и соответствующий номер для каждого интерфейса. Эта информация показывает, какой интерфейс надо использовать для снифинга. После определения, какой интерфейс следует запускать, можно просто использовать этот номер с помощью параметра -i (например, WinDump -i 3, если номер 3 – тот интерфейс, который выбран для применения) для запуска просмотра пакетных данных в реальном времени. Поскольку эти номера представляют собой портированные утилиты UNIX, переключатели командной строки чувствительны к выбору регистра.

Хотя WinDump – превосходная утилита, иногда она требует значительной дополнительной работы или знаний, чтобы правильно выполнить поиск. Предположим, вы пытаетесь определить, проходит ли запрос DNS по вашей сети, но не разбираетесь в протоколах, и не знаете, какой из них DNS использует по умолчанию. Или, например, у вас проходит большой трафик через сетевое подключение, и вы в затруднении из-за того, что он слишком велик для промотра всех пакетов, чтобы найти нужный. В таких ситуациях я всегда полагаюсь на ngrep, известную сетевую утилиту для быстрого просмотра.

Это, вероятно, одна из наиболее известных и часто используемых утилит в UNIX. Утилита grep находит соответствия в текстовых строках (с помощью механизма, известного как регулярные выражения) в файлах системы, затем выводит строки на дисплей. Эту утилиту можно сравнить с утилитой командной строки Find в Windows, только grep предоставляет большие возможность при поиске по текстовым строкам.

Предлагая похожие возможности на сетевом уровне, ngrep дает такой же уровень функциональности для снифинга пакетов. В результате необязательно знать, какие протоколы, порты, сети или IP-адреса используют эти два устройства для передачи данных. Нужно только знать что-то о полезной нагрузке этого пакета, и ngrep найдет его — неважно, как он передается.

Я часто применяю ngrep, чтобы устранить проблемы с запросами DNS. В большой среде Active Directory (AD) обычно в сети обрабатываются десятки запросов DNS в секунду. Если я пытаюсь устранить специфический комплекс проблем, то просмотр каждого пакета в поисках нужного как минимум требует очень много времени. Вместо того чтобы полагаться на прямой пакетный захват всего трафика DNS, я просто использую ngrep, чтобы найти текстовую строку, которую ищу, потому что запросы и ответы DNS выполняются в незашифрованном тексте.

Ngrep в настоящее время распознает протоколы ICMP, IGMP, Raw, TCP и UDP на интерфейсах 802.11, Ethernet, FDDI, PPP, SLIP, Token Ring и null. Для утилиты нужна библиотека WinPcap (как и для WinDump) для правильной работы. (Ngrep 1.43 проверялась для работы с WinPcap 3.1 beta 4.) Как видно из Рисунка 4 (http://www.windowsitpro.com/Files/50122/Экран_04.gif), я запустил команду ngrep для выбора всех пакетов со словом utilization. Ngrep нашел пакет в соединении AOL Instant Messenger (IM), которое у меня в то время было с моим коллегой.

В том случае, если нужно закатать рукава и погрузиться в область захвата и анализа трафика сети, вспоминается еще одна утилита: самый популярный сетевой анализатор, Ethereal. Сетевые эксперты во всем мире пользуются утилитой Ethereal, потому что в ней есть все стандартные возможности, которые имеются в большинстве анализаторов протоколов, но она содержит и то, чего нет в других продуктах. Более 400 разработчиков со всего мира внесли свой вклад в это приложение открытого кода. Десять лет назад я заплатил 20 000 долл. за приложение с такими же возможностями, но Ethereal предлагает их бесплатно.

Утилита Ethereal может снять информацию о сетевом подключении, отфильтровать эти данные, получить подробную информацию о каждом пакете, сохранить захват пакета для подробного анализа, послать пакетные захваты другим сетевым инженерам (или источникам), чтобы помочь с отладкой, открыть пакетные захваты многих других ведущих утилит цифровой фиксации пакетов. Утилита Ethereal может перехватывать данные с Classical IP over ATM (CIP), Ethernet, Fiber Distributed Data Interface (FDDI), Point-to-Point Protocol (PPP), Token Ring, 802.11 и кольцевых интерфейсов (хотя и не поддерживает все типы на всех платформах). По всем этим сетевым транспортам Ethereal может анатомировать более 750 типов протоколов, в том числе FTP, HTTP, NetBIOS, POP3, RPC, SNMP, SSH, SMTP и Telnet.

Подобно другим утилитам прослушивания, о которых я говорил, Ethereal зависит от правильной установки WinPcap, поэтому сначала надо установить ее. Затем после установки самой свежей версии Ethereal для Windows просто доберитесь до меню Capture, Interfaces и выберите нужный интерфейс, чтобы начать ввод. Далее можно начать анализ трафика. Экран 5 (http://www.windowsitpro.com/Files/50122/Экран_05.gif ) дает ясное представление об интерфейсе Ethereal.

Утилиты для сканирования, контроля и мониторинга

Многие приложения сохраняют все регистрационные сведения в прямых текстовых файлах, потому что журналы регистрации событий не подходят для некоторых типов данных в Windows (например, регистрационных файлов IIS). При мониторинге и поиске неисправностей эти типы приложений полезны для просмотра регистрационных данных в реальном времени. Однако, поскольку они являются текстовыми файлами, этот процесс обычно состоит из следующих шагов: необходимо открыть файл в Notepad или другом текстовом редакторе, просмотреть его содержание и закрыть файл, а затем вновь открыть файл, чтобы посмотреть, что изменилось.

В мире UNIX для этой цели предназначена одна утилита, которая легко выполняет такое задание. Это и есть Tail. Разработчики фирмы Bare Metal Software создали BareTail – бесплатную версию данного инструмента. Хотя BareTail не является инструментом c открытым кодом, как все остальные утилиты, рассмотренные в данной статье, он быстро занял свое место среди моих любимых утилит – причем обнаружил я его совсем недавно.

Утилита BareTail прекрасно подходит для просмотра файлов журналов, в том числе журналов IIS, кластерных журналов и других типов журналов, которые могут быстро создавать большое количество данных. На Экране 6 (http://www.windowsitpro.com/Files/50122/Экран_06.gif) мы видим этот инструмент в действии. Утилита BareTail может обрабатывать большие регистрационные файлы (например, более 2 Гбайт) так же быстро, как и файлы меньших размеров, причем для более легкого визуального распознавания она может селективно выделять определенные записи, которые появляются в файле, базируясь на соответствиях в текстовых строках. Предположим, нам нужно выделить ссылки на cmd.exe в файле журнала IIS, чтобы легко определить, какие входящие подключения пытаются использовать известные слабые места этого продукта.

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

Когда я думаю о безопасности, я обычно обращаюсь к программам с открытым кодом, а не к решениям конкретных производителей. Прежде всего, в этом сообществе работают неутомимые трудоголики, которые вникают во все аспекты, особенности и дефекты. Яркий пример тому – сканер уязвимых мест Nessus.

Этот сканер уязвимостей — самый популярный в мире. Примерно 75 000 организаций используют его для оценки и проверки безопасности своих сетей. Впервые Nessus был выпущен в 1998 году для UNIX; портированная на Windows компанией Tenable Network Security версия Nessus называется NeWT.

Tenable Network Security предоставляет стандартную версию NeWT бесплатно. Единственное ограничение состоит в том, что хост, на котором запускается NeWT, может сканировать только свои локальные подсети. Эта утилита может сканировать более 6000 известных уязвимых мест, вот почему NeWT на сегодня — самый нужный сканер для платформы Windows.

Когда вы запускаете утилиту NeWT в своей локальной подсети, она начинает процесс проверки каждого хоста, который обнаружит, на предмет уязвимости в своей базе данных. Можно настроить утилиту NeWT на проверку только выделенных уязвимостей – например, если вы стопроцентный пользователь Microsoft, то вам не надо проверять уязвимости для UNIX. Утилита NeWT может проверять уязвимые места, связанные с переполнением буфера, может контролировать ошибочные настройки прикладных служб (например, почты или Web), находить все прослушивающие порты на сервере и определять тип операционной системы, искать тайные ловушки, установленные на зараженном хосте и т.д. На экране 7 (http://www.windowsitpro.com/Files/50122/Figure_07.gif) показаны результаты работы NeWT в процессе сканирования уязвимостей.

Если наделить утилиту NeWT административными правами, то можно заглянуть в систему еще глубже и проверить имеющиеся исправления или наличие шпионского программного обеспечения. Например, на контрольной системе-жертве в моей лаборатории утилита NeWT обнаружила несколько пакетов шпионящих программ и бесплатных программ с рекламой, которые я нарочно установил на этом хосте для проверки. Утилита NeWT посоветовала мне удалить эти приложения. Утилита NeWT – это первый инструмент, который я беру, чтобы начать оценку безопасности клиента. Рекомендую всем администраторам иметь ее в своем арсенале инструментальных средств.

Предположим, нам нужно быстро получить информацию об удаленной системе. Для этой цели подойдет Winfingerprint – сетевой сканер, работающий на Windows. В отличие от большинства сетевых сканеров, Winfingerprint специально разработан для получения информации о хостах и приложениях Microsoft. Winfingerprint может использовать ICMP, RPC, SMB, SNMP, TCP и UDP для получения информации о целевых системах (например, позволяет узнавать версию операционной системы, учетные записи пользователей, группы, идентификаторы безопасности, политики, службы, пакеты обновлений и исправления, совместные ресурсы NetBIOS, транспорты, сессии, диски). Утилита Winfingerprint имеет как версию с графическим интерфейсом, так и версию для командной строки: какой бы способ ни был вам по душе, всегда найдется подходящий вариант.

Как видно из Рисунка 8 (http://www.windowsitpro.com/Files/50122/Экран_08.gif), Winfingerprint определяет число дисков, установленных на целевой системе, адреса MAC-интерфейсов, версию операционной системы и пакета обновлений. Однако на экране не видно, что Winfingerprint перечислила все совместные ресурсы на выбранной системе, а также все установленные службы и имена учетных записей пользователей. Инструмент получил все данные за 20 секунд – т.е. утилита Winfingerprint представляет собой замечательный инструмент для быстрого сбора данных об учетных записях в сетевых системах.

«Дополнительная информация»

Практическая работа

Программа: windump

Сетевой анализатор(network sniffer), позволяет прослушивать пакеты определенного сегмента сети на наличие некоторых шаблонов; исправлять определенные проблемы и выявлять подозрительную активность; могут контролировать широковещательный трафик и выявлять порты-«зеркала» используемые недругами для контроля других портов.

Формат запуска:

Windump Опции Выражение

Требует установки драйвера WinPcap_3_1.exe. Часто используемые опции:

-D ‑ Показать имеющиеся интерфейсы.

-i ИмяИнтерфейса ‑ Перехват на указанном интерфейсе.

-n ‑ Не использовать DNS.

-X ‑ Выводить содержимое пакетов.

-s Число ‑ Захватывать указанное число байт в пакете (68).

-e ‑ Выводить информацию о канальном уровне.

-w Файл ‑ Записывать кадры в файл.

-r Файл ‑ Взять кадры из файла.

Выражение используется для выделения необходимого трафика, можно указывать MAC-адреса, IP адреса, порты, а так же другие параметры пакетов или кадров. Операнды в выражении объединяются с помощью ключевых слов not, or или and.

Примеры

host1.1.1.1 ‑ Перехватывать любые пакеты от или к хосту 1.1.1.1.

host1.1.1.1and port25 ‑ Перехватывать любые пакеты от или к хосту 1.1.1.1 на или с порта 25.

src host1.1.1.1and dst 80 ‑ Перехватывать любые пакеты от хоста 1.1.1.1 на любой хост с портом 80.

not host 1.1.1.1 and (port 25 or port 110) ‑ Перехватывать любые пакеты с портом 25 или 110, кроме пакетов для или от хоста 1.1.1.1.

not etherhost ff:ff:ff:ff:ff:ff andnot etherhost 01:80:c2:00:00:00 ‑ Перехватывать любые кадры кроме тех которые имеют указанные MAC.

Вывод на экран производиться в следующем формате (для TCP):

DstIP> SrcIP: Flags Data-seqno Ask Window Urgent <Options>

Комбинация флагов S (SYNC), F (FIN), P (PUHS), R (RST).

Относительный начальный, относительный конечный номера байтов потока в данном пакете.

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

Размер принимающего буфера для потока в обратном направлении.

Указывает, что в пакете имеются данные Urgent.

Перечисляет TCP-опции в пакете.

Примеры

windump-n-ieth1 host 4.4.4.4 ‑ Показать пакеты от или к 4.4.4.4

windump-n -ieth1-X host 2.2.2.2 and port 23 ‑ Показать пакеты и их содержимое от или к 2.2.2.2 порт 23

windump-n -i eth1 dst net 2.2.2.0 mask 255.255.255.0 and src 1.1.1.1 ‑ Показать пакеты направленные в сеть 2.2.2.2/24 от хоста 1.1.1.1

windump-n -i eth1 -e host3.3.3.3 ‑ Показать кадры от или к адресу 3.3.3.3(с информацией канального уровня).

windump-n -i eth1-wpacket.log-s 0 host3.3.3.3 ‑ Записать все пакеты целиком от или к адресу 3.3.3.3 в файл packet.log

Задание

Запустить командную строку и выяснить имена интерфейсов с помощью команды:

windump -D

На интерфейсе ethernet запустить перехват всего трафика (выход производиться комбинацией ):

windump-n -i Интерфейс

Выяснить IP и MAC адрес машины с помощью команды:

Ipconfig /all

Запустить перехват и отображение содержимого пакетов только для своей машины:

windump -n -X -i Интерфейс host IPадрес

Добиться, чтобы windump фиксировал на канальном уровне все, кроме широковещания с помощью следующей команды:

windump-n -i Интерфейс not ether host ff:ff:ff:ff:ff:ff and not …

Программа: ARP

Вызов программы без параметров покажет Help по опциям программы.

Для просмотра ARP-таблицы используется команда: arp-a

Для удаления записей в ARP-таблице используется команда: arp-d IPадрес

Для добавления статических записей используется команда: arp-s IPадрес MACадрес

Задание

Посмотреть содержимое ARP-таблицы с помощью команды: arp-a

Сделать ping соседних машин, и посмотреть, как измениться ARP-таблица.

Удалить динамические записи соответствия с помощью команды: arp-d IPадрес

Добавить одну статическую запись соответствия с правильным MAC (выяснить через команду ipconfig /all) и одну статическую запись соответствия с не правильным MAC(произвольный MAC) с помощью команд: arp-s IPадрес MACадрес

Выполнить ping данных хостов и объяснить результат.

Удалить все записи в ARP-таблице: arp-d IPадрес1; arp-d IPадрес2; …

В другом окне запустить windump для перехвата пакетов ARP к или от интересующего хоста: windump-n -i Интерфейс arp hostIPадрес

В предыдущем окне пропинговать указанный IP адрес и наглядно просмотреть в windump процедуру установления соответствия между IP и MAC адресом.

Программа Ping

Используется для проверки доступности хоста и загрузки канала. Вызов программы без параметров покажет Help по опциям программы.

Формат запуска: ping Опции IPадресИлиИмяХоста

Часто используемые опции:

-t ‑ Циклическая отправка эхо-запроса сразу после получения эхо-ответа или истечения тайм-аута на ответ.

-a ‑ Преобразовывать IP адреса в имена хостов через DNS.

-n Число ‑ Количество эхо запросов.

-l Число ‑ Размер ICMP-пакета в байтах.

-f ‑ Установить бит запрета фрагментации в пакетах.

-w Число ‑ Указывает таймаут на ожидание эхо-ответа.

Примеры

ping -w Время IPадрес (или имя хоста) ‑ Определение доступности хоста через загруженый канал.

ping-a IPадрес ‑ Определение имени хоста по его адресу (обратный резолвинг).

ping-l Размер IPадрес ‑ Определение качества канала (пинг длинным пакетом).

ping-f -l Размер IPадрес ‑ Определение наиболее возможного MTU маршрута пингом с запретом фрагментации и последовательным увеличением размера пакета.

Задание

Выяснить имя хоста по его IP адресу: ping-a IPадрес

Запустить пинг для непрерывного наблюдения за временем отклика на интернет-канале: Ping -tIPадресПровайдера

В другом окне запустить нагрузку для интернет-канала: ping-t -l Размер IPадресИнтернет

Проконтролировать как изменяется время отклика. Завершить оба ping через

Последовательно повышая размер пакета наблюдать (с помощью windump) как и когда начинает работать фрагментация IP пакетов: ping-n1 -l Размер IPадрес

Программа netcat

Формат запуска:

netcat Опции Хост Порт (режим клиента)

netcat -l -p Порт Опции ХостПорт (режим сервера)

Часто используемые опции

-h ‑ Помощь по опциям.

-v ‑ Подробный вывод.

-n ‑ Не использовать DNS.

-p Порт ‑ Использовать указанный локальный порт.

-l или -L ‑ Серверный режим (для входящих соединений).

-w Время ‑ Таймаут на соединение в секундах.

-e Программа ‑ Запустить программу и использовать ее ввод/вывод для переназначения в порт.

Примеры

netcat Хост Порт

Подключится на указанный хости порт (аналог telnet ХостПорт).

netcat-v -w 1 -z ХостПорт-Порт

Простой сканер TCP-портов (с опцией –u сканер UDP-портов).

netcat-n -v -L-p Порта

Прослушивает локальный порт TCP, автоматически перезапускается после разрыва соединения.

netcat-l -p Порт -t -e Программа

Прослушивает локальный порт. После входящего соединения на этот порт, запускает программу и перенаправляет ее ввод/вывод в созданный сокет. Завершается после разрыва соединения.

Задание

  1. Разбиться на пары, выяснить IP-адреса друг друга, один запускает

netcat-n -v -L-p Порта

Второй с помощью

netcat-v -w 1 -z ХостПорт-Порт

Выясняет номер открытого порта, затем подключается к нему через: netcat ХостПорт

Затем поменяться ролями.

  1. Тот же сценарий, только вместо прослушивания порта подключить на него ввод/вывод cmd.exe:

netcat-l -p Порт -t -e cmd.exe

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

  1. Разбиться на пары, выяснить IP-адреса друг друга, запустить командную строку и на интерфейсе ethernet запустить перехват трафика на хост напарника с помощью команды:

windump-n -X -i Интерфейс hostIPадрес

В другой командной строке выполнить соединение с напарником с помощью netcat:

netcat-n -v -L-p Порта (режим сервера)

netcat ХостПорт (режим клиента)

В выводе windump разобрать процедуру установления соединения, затем разобрать как передаются данные. Выяснить свой MAC и MAC напарника.

Программа nmap

Предназначена для сканирования сетей, с дополнительной функциональностью: определение ОС, невидимое сканирование, параллельное сканирование, определение наличия пакетных фильтров. Требует установки драйвера WinPcap_3_1.exe. Может использоваться для поиска несанкционированно открытых портов на своих машинах. Формат вызова:

nmap МетодыСканированияОпции ХостИлиСеть

В адресе хоста или сети могут указываться через запятую, набор чисел или диапазон чисел, например: 1.1.1.0/24 = 1.1.1.1-255 = 1.1.1.1-127,128-255 = 1.1.1.1,2,3-255 = 1.1.1.*

Состояние порта характеризуется тремя возможными состояниями:

Открыт (сервис доступен).

Фильтруемый (Приходит ICMP Port unreachable или ничего).

Не фильтруемый (Приходит RST, в результатах не выдается).

Часто используемые опции

-h ‑ Получение краткой справки по опциям.

-s Метод ‑ Метод сканирования, по умолчанию стандартный.

-p Порт ‑ Номера портов могут указываться набором чисел и/или диапазонов чисел через запятую.

-P0 ‑ Не проверять пингом перед сканированием.

-O ‑ Определить операционную систему хоста.

-v ‑ Включить подробный вывод.

-g Порт ‑ Указывает порт источника при сканировании (для обмана firewall).

-oN Имя ‑ Записать результаты вывода в указанный файл.

-T Метод ‑ Временной режим сканирования (защита от скандетекторов).

Методы сканирования

-sT ‑ Используется стандартный метод соединения SYN,SYN-ACK,ACK. Пользователю не нужно иметь в системе никаких дополнительных привилегий. Легко обнаруживается. Используется по умолчанию.

-sS ‑ Используется полуоткрытый метод соединения только SYN. Пользователь должен иметь привилегии администратора, что бы формировать поддельный SYN. Обнаруживается не часто.

-sF, -sX, -sN ‑ Используется скрытый метод соединения, соответственно посылается только FIN или FIN,URG,PSH или пакет без каких-либо флагов. Согласно RFC 973 при получении такого пакета на закрытый порт, ОС сканируемого хоста должна ответить пакетом с RST, а при получении на открытый порт просто игнорировать его (не работает в ОС Microsoft и некоторых других ОС).

-sU ‑ Сканирование UDP-портов. При получении ICMP Port unreachable считается, что порт закрыт, в противном случае порт открыт. Из за ограничения на скорость генерирования ICMP Port unreachable (во многих ОС), сканирование производится медленно, при этом nmap автоматически пытается определить сколько ICMP Port unreachable может посылать сканируемый хост за конкретный промежуток времени. Microsoft не имеет ограничений, поэтому UDP-сканирование должно проходить быстро.

-sO ‑ Сканирование поддерживаемых протоколов. Сканируемому хосту посылается IP-пакет с проверяемым номером протокола, но без каких либо заголовков данного протокола. При получении ICMP Protocol unreachable считается, что протокол не используется, в противном случае протокол используется.

-sA ‑ Используется для определения защищается ли сканируемый хост firewall и какого типа этот firewall (statefull или stateless в режиме фильтрации только SYN). На порт сканируемого хоста посылается пакет с ACK(со случайными значениями sequence number и acknowledgement number). Если в ответ приходит пакет с флагом RST, то порт считается не фильтруемым (или фильтруемым stateless firewall в режиме фильтрации только SYN), если ничего или ICMP Port unreachable, то фильтруемым. Не показывает открытые порты, но если метод -sT показывает, что все порты фильтруются, а метод -sA показывает не фильтруемые порты, то это будут открытые порты, защищаемые statelessfirewall в режиме фильтрации только SYN.

Примеры

nmap -P0 -v www.zabspu.ru ‑ Сканировать порты указанного хоста с подробным выводом без предварительной проверки доступности хоста.

nmap -p1-1024 172.27.3.3 ‑ Сканировать порты указанного хоста в указанном диапазоне.

nmap nmap -O 172.27.1.0/24 ‑ Определить типы операционных систем на хостах в указанной сети.

nmap -p 25,110 172.27.1.* ‑ Найти почтовые сервера в указанной сети.

При использовании Nmap необходимо учитывать следующее:

  1. Сканирование сети (особенно шумные) воспринимаются некоторыми администраторами как атаки, поэтому могут быть претензии.

  2. Параллельное сканирование может нагружать и сам хост и устройства, которые обслуживают сеть (маршрутизаторы, фаерволы, сетевые сенсоры).

Задание

Посмотреть доступные сервисы на указанном хосте с помощью команды:

nmap -v 172.27.1.1

Определить операционные системы на первых 20-ти хостах сети

nmap nmap -O 172.27.1.1-20

Найти www-сервера в указанной сети

nmap -p 80172.27.1.*

В одной командной строке запустить windump для контроля трафика на некоторый IP адрес:

windump-n -i Интерфейс hostIPадрес

В другой командной строке выполнить сканирование самостоятельно выбранного порта данного IP адреса различными методами (типы выяснить с помощью опции -h), и посмотреть чем они отличаются:

nmap -SМетод -pПорт IPадрес

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

nmap -SМетод Ipадрес

Посмотреть какие следы оставляют в журнале разные методы.

Попытаться определить как защищается хост 172.27.1.1 и тип его firewall используя вышеуказанную команду.

Аварийный дамп памяти

Общие сведения об аварийном дампе памяти

Все Windows-системы при обнаружении фатальной ошибки делают аварийный дамп (снимок) содержимого оперативной памяти и сохраняет его на жесткий диск. Существуют три типа дампа памяти:

Полный дамп памяти – сохраняет все содержимое оперативной памяти. Размер снимка равен размеру оперативной памяти + 1 Мб (заголовок). Используется очень редко, так как в системах с большим объемом памяти размер дампа будет слишком большим.

Дамп памяти ядра – сохраняет информацию оперативной памяти, касающуюся только режима ядра. Информация пользовательского режима не сохраняется, так как не несет в себе информации о причине краха системы. Объем файла дампа зависит от размера оперативной памяти и варьируется от 50 Мб (для систем с 128 Мб оперативной памяти) до 800 Мб (для систем с 8 Гб оперативной памяти).

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

Настройка системы

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

Для Windows XpДля Windows 7
  1. Правой клавишей мыши нажать на значке Мой компьютер из контекстного меню выберите Свойства (или комбинация клавиш Win+Pause);
  2. Переходите на вкладку Дополнительно;
  3. В поле Загрузка и восстановление необходимо нажать кнопку Параметры;
  4. В поле Запись отладочной информации выбираем Малый дамп памяти (64 Кб).
  1. Правой клавишей мыши нажать на значке Компьютер из контекстного меню выберите Свойства (или комбинация клавиш Win+Pause);
  2. В левом меню щелкаем на пункт Дополнительные параметры системы;
  3. Переходите на вкладку Дополнительно;
  4. В поле Загрузка и восстановление необходимо нажать кнопку Параметры;
  5. В поле Запись отладочной информации выбираем Малый дамп памяти (128 Кб).

Проделав все манипуляции, после каждого BSoD в папке C:\WINDOWS\Minidump будет сохраняться файл с расширение .dmp. Советую ознакомиться с материалом «Как создать папку». Также можно установить галочку на “Заменить существующий файл дампа”. В этом случае каждый новый аварийный дамп будет записываться поверх старого. Я не советую включать данную опцию.

Анализ аварийного дампа памяти с помощью программы BlueScreenView

Итак, после появления синего экрана смерти система сохранила новый аварийный дамп памяти. Для анализа дампа рекомендую использовать программу BlueScreenView. Её можно бесплатно скачать . Программа довольно удобная и имеет интуитивный интерфейс. После её установки первое, что необходимо сделать – это указать место хранение дампов памяти в системе. Для этого необходимо зайти в пункт меню “Options” и выбрать “Advanced Options”. Выбираем радиокнопку “Load from the following Mini Dump folder” и указываем папку, в которой хранятся дампы. Если файлы хранятся в папке C:\WINDOWS\Minidump можно нажатием кнопки “Default”. Нажимаем OK и попадаем в интерфейс программы.

Программа состоит из трех основных блоков:

  1. Блок главного меню и панель управления;
  2. Блок списка аварийных дампов памяти;
  3. В зависимости от выбранных параметров может содержать в себе:
  • список всех драйверов находящихся в оперативной памяти до появления синего экрана (по умолчанию);
  • список драйверов находящихся в стеке оперативной памяти;
  • скриншот BSoD;
  • и другие значения, которые мы использовать не будем.

В блоке списка дамп памяти (на рисунке помечен цифрой 2) выбираем интересующий нас дамп и смотрим на список драйверов, которые были загружены в оперативную память (на рисунке помечен цифрой 3). Розовым цветом окрашены драйвера, которые находились в стеке памяти. Они то и являются причиной появления BSoD. Далее переходите в Главное меню драйвера, определяйте к какому устройству или программе они принадлежат. В первую очередь обращайте внимание на не системные файлы, ведь системные файлы в любом случае загружены в оперативной памяти. Легко понять, что на изображении сбойным драйвером является myfault.sys. Скажу, что это программа была специально запущена для вызова Stop ошибки. После определения сбойного драйвера, необходимо его либо обновить, либо удалить из системы.

Для того чтобы программа показывала список драйверов находящихся в стеке памяти во время возникновения BSoD необходимо зайти в пункт меню “Options” кликаем на меню “LowerPaneMode” и выбираем “OnlyDriversFoundInStack” (или нажмите клавишу F7), а для показа скриншота ошибки выбираем “BlueScreeninXPStyle” (F8). Что бы вернуться к списку всех драйверов, необходимо выбрать пункт “AllDrivers” (F6).

Буду признателен, если воспользуетесь кнопочками:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *