Как исправить ошибку memory.dump в windows 10/8.1
Содержание:
- Получение информацию о компьютере
- Работа с Debug
- Решение
- Как провести анализ дампа памяти для выявления причины BSoD?
- Как настроить дамп памяти в Windows 10?
- Что такое дамп
- Как открыть ваш файл DUMP:
- Средства для чтения небольшого файла сброса памяти
- Как узнать причину BSoD
- Как настроить mini dump
- Настройка сервера отладочных символов в WinDBG
- Что такое дамп памяти и как его закрыть?
- Дамп памяти Windows и Синий Экран Смерти
- Дамп памяти
- Драйверы устройств
Получение информацию о компьютере
Для начала надо искать информацию о:
- процессах;
- истории браузера;
- истории запущенных команд в консоли.
Этих 3 пунктов хватит для определения направления дальнейшей разведки.
Процессы
Чтобы найти процессы, нам достаточно использовать команду pstree. Есть еще pslist, но первая команда удобнее, потому что показывает процессы в виде дерева — так намного проще понять, на какие из них стоит обратить внимание.
$ vol.py -f challenge.vmem --profile Win10x64_18362 pstree
Ничего бросающегося в глаза, вроде pswd_manager.exe или not_a_virus.exe, не видно, поэтому продолжим нашу разведку.
История браузера
Хоть в хинте (см. первый скрин) и говорилось, что «удаленный» не обязательно значит «браузер», мы проверим этот вектор. В Volatility есть готовый плагин для просмотра истории Internet Explorer — iehistory. И не говорите, что им уже никто не пользуется!
$ vol.py -f challenge.vmem --profile Win10x64_18362 iehistory
Команда работала слишком долго на моей машине (порядка 20 минут) и завершаться не планировала. Это не считается нормальным поведением для Volatility, следовательно, тут искать нечего.
Если вы подумаете составлять задачки для CTF — имейте в виду, что задачи, в которых надо по полчаса брутить извращенные пароли или искать неуловимый API endpoint, никто не любит, и следующую задачу вам доверят делать еще не скоро.
Список команд в консоли
Есть еще одна удобная функция для проверки всех введенных в консоль команд. Возможно, пользователь запускал что‑нибудь из консоли или хранил там важные данные (например, флаг). Проверить все из консоли можно с помощью команды cmdscan.
$ vol.py -f challenge.vmem --profile Win10x6_18362 cmdscan
Тут чисто — следовательно, терминал тоже не при делах.
Полезный прием при анализе оперативной памяти
Поскольку до сих пор не нашлось ничего интересного — мы что‑то упустили. Можно применить еще один полезный прием при анализе оперативной памяти — посмотреть на скриншот рабочего стола. Помогает он не сильно часто, но позволяет увидеть более полную картину.
Сделать скриншот всех окон процессов в системе можно с помощью команды screenshot. Обязательно нужно указать существующую конечную директорию, где будут находиться все снимки.
Важно понимать, что большинство картинок будут пустыми: это связано с тем, что не все окна вообще могут отображаться (для лучшего понимания рекомендую ознакомиться с документацией).
$ vol.py -f challenge.vmem --profile Win10x64_18362 screenshot -D shot/
К сожалению, команда заканчивается с ошибкой, так что этот трюк тоже не прошел и нам стоит вернуться к самому началу.
Работа с Debug
Привет, юный хакер! Ты уже многое знаешь, но крутой хакер никогда не останавливается на достигнутом. Эта статья посвящена работе с стандартным дебаггером системы ДОС. Ты скажешь: «На кой фиг мне это надо мне, крутому перцу?». Представь ситуацию: ты приходишь в компьютерный клуб (интернет-кафе, к другу домой), а там на тачке дисководы сняты, сидюки заклеены, а пакость сделать все же хочется. Естественно, на любом «нормальном» компе нет никаких компиляторов С, ассемблеров… но почти на каждом «нормальном» компе есть ДОС! Да, именно ДОС, и его последователи — Винды всех типов а конкретнее программа DEBUG.
Как? Набрать короткую (если времени мало, да и сил жалко), но неприятную программку, сохранить ее на диске и потом запустить, получив моральное удовлетворение. Посмотрим, как это делается, но для начала изучим несколько простых, но весьма полезных команд.
Итак, вы запустили программу DEBUG
Первая команда –D (dump) .
Эта команда позволяет просмотреть некоторую область памяти, адрес которой задан в параметре в формате сегмент:смещение.
Для начала посмотрим ПЗУ BIOS:
Здесь вы видите фирму-производителя вашей BIOS. А по адресу:
получаем интересную информацию о системе, такую как дата создания БИОС, чипсет… А по данному адресу (0000:046C) находится таймер БИОС. Отчетливо видно, что значения все время меняются. Для программиста удобно просматривать сегменты команд, данных и стека (CS, DS и SS, соответственно).
Выше мы видим содержимое сегмента данных, т. е. значения определенных переменных.
А тут представлено содержимое сегмента команд, т.е. машинные коды команд, готовых к исполнению. Освоив команды просмотра памяти, впоследствии мы сможем эффективно отлаживать наши программы и просматривать введенный нами код перед исполнением (для нас сейчас это приоритетная задача).
Еще одна важная команда -R (register) , позволяющая просматривать состояние конкретного регистра и изменять его состояние или же сразу перейти к первой выполняемой команде с просмотром всех регистров.
В данном фрагменте мы просматриваем регистр АХ и очищаем его (пишем в него 0). Чтобы перейти к первой выполняемой команде (по адресу CS:100):
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=3B9A ES=3B9A SS=3B9A CS=3B9A IP=0100 NV UP EI PL NZ NA PO NC 3B9A:0100 E82421 CALL 2227
Третья команда –E (enter) Addres .
Предназначена она для изменения значений в памяти – с помощью нее можно уже вводить команды в машинных кодах. Замечание: при вводе данных сначала пишется младший байт (по младшему адресу), затем – старший (по старшему), т. е. чтобы записать по адресу DS:0000 число 1234h необходимо ввести:
Например введем следующее:
-E cs:100 B8 34 12 -D CS:100
А с помощью команды U (unassemble) , дизассемблируем введенные команды и получим: -U CS:100,102 3B9A:0100 B83412 MOV AX,1234
Таким же образом можно дизассемблировать любой участок памяти, что очень полезно. Но вместо ввода команд на машинном языке, можно воспользоваться встроенным ассемблером программы DEBUG. Для этого существует команда -A (assemble) . С помощью этой команды вы можете написать уже нормальную программку на ассемблере, выполняющую необходимые действия.:
-A 0B3B:0100 mov ax,1234 0B3B:0103 mov ah, 4c 0B3B:0105 int 21 0B3B:0107
А как же теперь сохранить программу на диске? Сначала задается имя файла:
Затем в регистр СХ необходимо поместить размер программы в байтах. Он будет равен разности конечного и начального смещений. Теперь остается только осуществить запись на диск командой W и в результате увидеть записанное количество байтов. В итоге мы получаем программу, готовую к исполнению. Выход осуществляется командой q. Пример:
-A 0B3B:0100 mov ax,1234 0B3B:0103 mov ah, 4c 0B3B:0105 int 21 0B3B:0107 -u CS:100, 106 0B3B:0100 B83412 MOV AX,1234 0B3B:0103 B44C MOV AH,4C 0B3B:0105 CD21 INT 21 -r cx CX 0000 :7 -r AX=0000 BX=0000 CX=0007 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B3B ES=0B3B SS=0B3B CS=0B3B IP=0100 NV UP EI PL NZ NA PO NC 0B3B:0100 B83412 MOV AX,1234 -N my.com -W Запись 00007 байт -q
В заключение можно сказать, что данный способ создания программ открывает новые возможности для любителей компьютерных пакостей, приколов, да и просто программистов-любителей – ведь теперь для создания небольших программ, вместо установки компиляторов, можно воспользоваться стандартными средствами системы, а DEBUG входит в поставку во все Винды вплоть до ХР. Я думаю, что это поможет вам веселее провести время за чужим компом, вызывая истинное удивление хозяина (дисков и дискет-то вы не приносили. ) новыми эффектами работы его оборудования. Успехов, юные любители хакерного экстрима!
Решение
Если Вы один из тех, кто, столкнувшись с ошибкой «Memory_Management», может загрузиться на рабочий стол, хотя бы в безопасном режиме, то перед тем, как приступить к выполнению вышеописанных вариантов, следует потратить время на создание точки восстановления.
Сделать это можно следующим образом:
- Откройте «Этот компьютер» и кликом правой кнопкой по пустому месту открывшегося окна вызовите «Свойство»;
- Далее, откройте раздел «Защита системы»;
- Если кнопка «Создать» у вас неактивна, то нажмите на кнопку «Настроить»;
- Установите флажок в строке «Включить защиту системы», и используя ползунок отмерьте максимальный объём свободного пространства, которые вы предоставите системе восстановления для хранения необходимых ей файлов;
- Вернувшись к предыдущему окну, нажмите на кнопку «Создать»;
- Введите название создаваемой точки восстановления;
- Дождитесь появления окна, сигнализирующего об успешном создании точки восстановления и закройте окно «Свойства системы», нажав на кнопку «ОК».
Подробнее о том, как создать точку восстановления мы писали в статье: Как создать образ системы Windows 10
Теперь имея данную «страховку» следует приступить к подтверждению наличия обозначенных выше причин.
Как уже неоднократно говорилось, драйверы вместе с файлами библиотеки динамической компоновки (.dll) наиболее подвержены различным сбоям.
Поэтому первое на что стоит обратить внимание – это проверка корректности используемого драйверного обеспечения операционной системы. Для этого сделайте следующее:. Для этого сделайте следующее:
Для этого сделайте следующее:
- Нажмите сочетание клавиш «WIN+R» и выполните команду «verifier»;
- Перед вами откроется окно штатной утилиты «Диспетчер проверки драйверов»;
- Из представленных вариантов выберите пункт «Создать нестандартные параметры (для кода программ)» и нажмите «Далее»;
- Откроется список параметров диагностики, среди которых необходимо найти и отметить галочкой:
- «Особый пул»;
- «Отслеживание пула»;
- «Обязательная проверка IRQL»;
- «Обнаружение взаимоблокировок»;
- «Проверки безопасности»;
- «Проверка соответствия требованиям DDI»;
- «Прочие проверки».
- В следующем шаге отметьте «Выбрать имя драйвера из списка» и дождитесь завершения загрузки информации;
- Полученные результаты отсортируйте по столбцу «Поставщик» и отметьте галочкой все варианты, которые поставляются не компанией «Microsoft»;
- Нажмите на кнопку «Готово» и перезагрузите компьютер, для инициирования созданной проверки.
Следует учитывать, что данная проверка будет запускаться автоматически до момента её отключения. Но если в результате проверки будут найдены ошибки, препятствующие входу, то система может выдать «BSOD» и уйти в циклическую перезагрузку, что будет продолжаться до бесконечности.
Если в вашем случае ситуация развивается именно таким образом, то во время очередного старта Windows постоянно нажимайте на клавишу «F8» и далее:
- Выберите раздел «Диагностика»;
- Далее «Дополнительные параметры» – «Восстановление при загрузке» – «Перезагрузить»;
- Отметьте параметр «Безопасный режим с поддержкой командной строки»;
- Дождитесь появления консоли командной строки и поочерёдно выполните две команды:
- «verifier /reset» – для деактивации автоматической диагностики драйверов;
- «shutdown -r -t 0» – для инициирования перезагрузки компьютера.
Альтернативным вариантом является использования ранее созданной точки восстановления , для отката конфигурации системы до активации проверки драйверов.
На этом список дел не заканчивается. Отключенная утилита диагностики по факту своей работы создала определённый файл, который находится в папке «C:\windows\ minidump». В нём содержится прямое указание на драйверы, имеющие в своей структуре какие-либо ошибки.
Открыть файл с подобным форматом можно и средствами операционной системы с помощью официальной утилиты «Debugging Tools for Windows», которая доступна для скачивания на официальном сайте «Microsoft», но выводимая информация будет сложна для восприятия.
Поэтому лучшим вариантом будет воспользоваться сторонним специализированным программным обеспечением, например, «BlueScreenView». Программа распознает файл дампа памяти и выведет информацию в максимально понятной интерпретации, выделив сбойный драйвер розовым цветом.
Останется только удалить «виновника» и провести его ручное обновление/установку, скачав с официального сайта разработчиков.
Как провести анализ дампа памяти для выявления причины BSoD?
Здравствуйте друзья, сегодня разберем интересную тему, которая поможет вам в будущем при появлении синего экрана смерти (BSoD).
Как и мне, так и многим другим пользователям приходилось наблюдать появление экрана с синим фоном, на котором что-то написано (белым по синему). Данное явление говорит о критической неполадке, как в программном обеспечении, например, конфликт драйверов, так и в физической неисправности какого-то компонента компьютера.
Недавно у меня снова появился голубой экран в Windows 10, но я быстро от него избавился и скоро об этом вам расскажу.
Итак, большинство пользователей не знают, что BSoD можно анализировать, чтобы впоследствии понять проблемы критической ошибки. Для таких случаев Windows создает на диске специальные файлы – дампы памяти, их то мы и будем анализировать.
Есть три типа дампа памяти:
Полный дамп памяти – эта функция позволяет полностью сохранить содержимое оперативной памяти. Он редко используется, так как представьте, что у вас 32 Гб оперативной памяти, при полном дампе весь этот объем сохранится на диске.
Дамп ядра – сохраняет информацию о режиме ядра.
Малый дамп памяти – сохраняет небольшой объем информации о ошибках и загруженных компонентов, которые были на момент появления неисправности системы. Мы будем использовать именно этот тип дампа, потому что она даст нам достаточное количество сведений о BSoD.
Расположение, как малого, так и полного дампа отличается, например, малый дамп находится по следующему пути: %systemroot%\minidump.
Полный дамп находится здесь: %systemroot%.
Как настроить дамп памяти в Windows 10?
Для того чтобы настроить аварийный дамп памяти Windows 10 необходимо придерживаться следующих действий:
1. Правой кнопкой мыши кликаем на пуск Windows 10. В появившемся контекстном меню выбираем пункт «Система».
2. В окне «Система» в верхнем углу слева выбираем «Дополнительные параметры системы».
Тут и происходит настройка аварийного дампа памяти Windows 10.
Настраивая дамп памяти можно не пренебрегать следующими рекомендациями:
— Поставить галочку на «заменить существующий файл дампа». Учитывая тот факт, что данные могут весить десятки, а то и сотни гигабайт — это очень полезно для небольших жёстких дисков;
— Запись отладочной информации. Эта функция позволит выбрать вид дамп файла;
— Выполнить автоматическую перезагрузку. Продолжение работы, после возникшей ошибки;
— Запись события в системный журнал. Информация о системном сбое будет добавлена в логи операционной системы.
Дамп памяти Windows 10 является удобным и действительно работающим методом страховки системных данных.
Зная «врага в лицо» его будет в разы проще найти и ликвидировать. Дамп памяти Windows 10 позволит выявить причину системного сбоя и скорректировать действия по ликвидации ошибки, значительно уменьшив радиус усилий и работ.
По большому счету, вас, как пользователя, дамп памяти интересовать не должен. Это всего лишь информация о сбое системы, которая в идеале должна посылаться разработчикам Microsoft для поиска и исправления критических ошибок. Если вы не планируете заниматься подобной благотворительностью, тогда можете дамп отключить.
То, что вы отключите дамп памяти, никак не повлияет на быстродействие системы. Когда вы пользуетесь компьютером, система к дампу не обращается, будь он включен или нет. Запись происходит только тогда, когда Windows «довели» до BSOD (синий экран). Длится она от силы пару секунд.
Виды дампа
Для общего развития ознакомимся с видами дампа. Их есть три: малый дамп, дамп ядра и большой . Малый дамп хранит самую главную информацию о проблеме. Разработчикам буквально приходится собирать ее по крупицам. Для малого дампа нужно выделить 2 Мб виртуальной памяти (файл подкачки).
Дамп ядра – самый распространенный вид дампа. Обычно именно эта опция задана по умолчанию. Записывает он в себя всю память, которая выделена на ядро, – состояние рабочих драйверах и данные о аппаратно-зависимом уровне. Для него нужно выделить около 30 % от общего объема ОЗУ. Например, если у вас 2 Гб DDR, значит выделяйте около 700 Мб для файла подкачки.
Полный дамп записывает все содержимое ОЗУ. Соответственно, чтобы он работал придется наделить файл подкачки таким же объемом, как ОЗУ. Нужен полный дамп для режима гибернации, когда все данные с ОЗУ загружаются на жесткий диск.
В Windows 7 параметры дампа запрятаны довольно глубоко. Введите в строе поиска в меню «Пуск » слово «система », например.
Что такое дамп
- dump (англ.) – мусорная куча; свалка; дыра; трущоба.
- dump (memory dump) – 1) дамп, вывод содержимого оперативной памяти на печать или экран; 2) «снимок» оперативной памяти; данные, получаемые в результате дампинга; 3) аварийное снятие, выключение, сброс.
- dumping – дампинг, снятие дампа.
Настройки для сохранения дампа памяти хранятся в системном реестре Windows.
Информация о дампе памяти в системном Реестре:
В разделе Реестра Windows аварийный дамп памяти определяется следующими параметрами:
– REG_DWORD-параметр CrashDumpEnabled со значением 0×0, если дамп памяти не создается; 0×1 – Полный дамп памяти; 0×2 – Дамп памяти ядра; 0×3 – Малый дамп памяти (64КБ);
Как открыть ваш файл DUMP:
Самый быстрый и легкий способ открыть свой файл DUMP — это два раза щелкнуть по нему мышью. В данном случае система Windows сама выберет необходимую программу для открытия вашего файла DUMP.
В случае, если ваш файл DUMP не открывается, весьма вероятно, что на вашем ПК не установлена необходимая прикладная программа для просмотра или редактирования файлов с расширениями DUMP.
Если ваш ПК открывает файл DUMP, но в неверной программе, вам потребуется изменить настройки ассоциации файлов в вашем реестре Windows. Другими словами, Windows ассоциирует расширения файлов DUMP с неверной программой.
Средства для чтения небольшого файла сброса памяти
Используйте утилиту проверки сброса (Dumpchk.exe) для чтения файла сброса памяти или проверки правильности создания файла.
Утилита проверки сброса не требует доступа к отладке символов. В файлах символов находятся различные данные, которые на самом деле не нужны при запуске разных файлов, но которые могут быть очень полезны в процессе отладки.
Дополнительные сведения об использовании службы проверки сброса в Windows NT, Windows 2000, Windows Server 2003 или Windows Server 2008 см. в статье Microsoft Knowledge Base 156280.Как использовать Dumpchk.exe для проверки файла сброса памяти.
Дополнительные сведения об использовании службы проверки сброса в Windows XP, Windows Vista или Windows 7 см. в статье Microsoft Knowledge Base 315271.Как использовать Dumpchk.exe для проверки файла сброса памяти.
Или вы можете использовать средство Отладка Windows (WinDbg.exe) или средство отладки ядра (KD.exe) для чтения небольших файлов сброса памяти. WinDbg и KD.exe включены в последнюю версию пакета Средств отладки для Windows.
Чтобы установить средства отладки, см. в веб-странице Download and Install Debugging Tools for Windows. Выберите типичную установку. По умолчанию установщик устанавливает средства отладки в следующей папке:
C:\Program Files\Debugging Tools for Windows
Эта веб-страница также предоставляет доступ к загружаемым пакетам символов для Windows. Дополнительные сведения о символах Windows см. в странице Отладкас символами и веб-странице Пакеты символов Windows.
Дополнительные сведения о параметрах файлов сброса в Windows см. в обзоре параметровфайлов сброса памяти для Windows.
Как узнать причину BSoD
Расшифровка синего экрана смерти на самом деле гораздо проще, чем вы думаете. Это только на первый взгляд выглядит пугающе, но стоит присмотреться как можно выделить основные ключевые области экрана, где содержится нужная информация, которая поможет в исправлении ошибки.
Первые две строчки говорят нам, что была обнаружена проблема и работа Windows была завершена, чтобы предотвратить повреждения компьютера.
Сперва наперво обращаем на две строчки на экране (обведены красным). Первая верхняя строка – это само название кода ошибки (его аббревиатура). В нашем случае это UNMOUNTABLE_BOOT_VOLUME . В выделенной нижней строке пишется сам код ошибки, в нашем примере 0x000000ED , в скобках указаны дополнительные возможные коды, выпишите их на всякий случай, чтобы можно было и по ним по мере надобности поискать информацию.
Чтобы выяснить, что именно не так с вашим компьютером, можно воспользоваться нашей формой поиска ошибок на главной странице или поискать вручную на разделе содержащему полный перечень BSOD.
Как настроить mini dump
В малый дамп памяти тоже записываются ошибки синего экрана смерти, настраивается он там же, нужно только его выбрать.
Хранится он в папке c:\windows\minidump. Преимущество в том, что он занимает меньше места и на каждый синий экран создается отдельным файлом. Всегда можно просмотреть историю появлений синего экрана.
Теперь когда мы разобрались где искать файл memory dump, нужно научиться его интерпритировать и понимать причину из за чего происходит синий экран смерти. В решении этой задачи нам поможет Microsoft Kernel Debugger. Скачать Microsoft Kernel Debugger можно с официального сайта, главное выберите нужную версию ОС если кому то влом, то можете скачать с яндекс диска по прямой ссылке. Так же он входит в состав ADK .
Скачиваем Microsoft Kernel Debugger, в итоге у вас будет маленький файл который позволит скачать из интернета все что вам нужно. Запускаем его.
присоединяться к программе по улучшению качества участвовать не будем
жмем Accept и соглашаемся с лицензией
Как установить Microsoft Kernel Debugger-соглашаемся с лицензией
начнется установка Microsoft Kernel Debugger
Как установить Microsoft Kernel Debugger-установка MKD
Видим, что Microsoft Kernel Debugger успешно установлен
После чего видим, что в пуске появилась папка Debugging Tools for Windows как для 32 так и для 64 битных систем.
Помимо самого пакета Debugging Tools for Windows, также понадобятся набор отладочных символов — Debugging Symbols. Набор отладочных символов специфичен для каждой ОС, на которой был зафиксирован BSoD. Потому придется загрузить набор символов для каждой ОС, анализировать работу которой Вам придется. Для 32-разрядной Windows XP потребуются набор символов для Windows XP 32-бит, для 64-разрядной ОС потребуются набор символов для Windows XP 64-бит. Для других ОС семейства Windows наборы символов подбираются сообразно такому же принципу. Загрузить отладочные символы можно отсюда . Устанавливать их рекомендуется по адресу %systemroot%\symbols
хотя мне нравится устанавливать их в отдельные папки и не захламлять папку Windows.
Настройка сервера отладочных символов в WinDBG
Отладочные символы (debug-символы или symbol files) – это блоки данных, генерируемые в процессе компиляции программы совместно с исполняемым файлом. В таких блоках данных содержится информация о именах переменных, вызываемых функциях, библиотеках и т.д. Эти данные не нужны при выполнении программы, но полезные при ее отладке. Компоненты Microsoft компилируются с символами, распространяемыми через Microsoft Symbol Server.
Настройте WinDBG на использование Microsoft Symbol Server:
- Откройте WinDBG;
- Перейдите в меню File –>Symbol File Path;
- Пропишите строку, содержащую URL для загрузки символов отладки с сайта Microsoft и папку для сохранения кэша: SRV*E:Sym_WinDBG*http://msdl.microsoft.com/download/symbols В примере кэш загружается в папку E:Sym_WinDBG, можете указать любую.
- Не забывайте сохранить изменения в меню File –>Save WorkSpace;
WinDBG произведет поиск символов в локальной папке и, если не обнаружит в ней необходимых символов, то самостоятельно загрузит символы с указанного сайта. Если вы хотите добавить собственную папку с символами, то можно сделать это так:
Если подключение к интернету отсутствует, то загрузите предварительно пакет символов с ресурса Windows Symbol Packages.
Что такое дамп памяти и как его закрыть?
Дамп памяти — это запись оперативной памяти вашего ПК на жёсткий диск. Содержимое этого файла может представлять какой-либо интерес только для особой касты пользователей — программистов. Но для «чайника» такой файл не представляет абсолютно никакого интереса, а значит — он просто не нужен. Поэтому функцию создания дампа памяти можно с чистой совестью отключить. Кстати, таким образом вы освободите жёсткий диск от не нужных записей и сократите время загрузки. Переходим к алгоритму закрытия дампа памяти. Итак!
Выполняем следующие шаги:
Коротко и ясно. Даже если вам пока до конца ещё не всё понятно, то это не беда: понимание приходит со временем и опытом. А сегодня Вы сделали первый маленький шажок в освоении более глубоких принципов работы компьютерной системы. И пусть кому-то этот урок покажется слишком простым, но все те, кто сейчас считает себя более-менее продвинутым пользователем, сами начинали с нуля.
Дамп памяти Windows и Синий Экран Смерти
Итак, если компьютер внезапно перезагружается или зависает, а cиний экран смерти не появляется или появляется на долю секунды, то все равно информацию о причинах сбоя можно восстановить.
Дело в том, что операционная система в момент сбоя сохраняет содержимое оперативной памяти в так называемый дамп-файл (имеет расширение .dmp). В дальнейшем файл дампа можно будет проанализировать и получить туже самую информацию, что и на синем экране и даже чуть больше.
Но создание дампов может быть отключено в системе, поэтому стоит убедиться, что, во-первых, система создает дампы при сбоях, а, во-вторых, стоит узнать место на диске, куда они сохраняются.
Для этого нужно зайти в раздел Система.
В Windows 10 это можно сделать через поиск, а в предыдущих версиях операционной системы через Панель управления.
Далее переходим в Дополнительные параметры, а затем на вкладке Дополнительно переходим в Параметры раздела Загрузка и восстановление.
Здесь должна быть включена запись событий в системный журнал, ну а чтобы компьютер автоматически не перезагружался и отображал нам содержимое синего экрана смерти, нужно отменить автоматическую перезагрузку, если она была включена.
Также здесь отображается путь к дампам — мы видим, что дамп сохраняется в папку %SystemRoot% — это обозначение папки Windows.
Также здесь можно выбрать «малый дамп памяти», которого будет вполне достаточно для поиска кодов ошибки.
Итак, система вылетела в синий экран смерти, после чего был создан дамп памяти.
Для анализа дампов существуют специальные программы и одной из самых популярных является утилита BlueScreenView.
Программа очень проста в использовании и не требует установки — скачиваем с официального сайта и разархивируем. При этом с официального сайта можно скачать файл, с помощью которого можно русифицировать программу. Для этого данный файл нужно будет поместить в папку с разархивированной программой.
Если после запуска в программе не отображаются дампы, хотя система «срывалась» в синий экран смерти, то стоит зайти в настройки программы и убедиться, что путь к дампам памяти указан верно, то есть он должен быть таким же, как и в настройках системы.
После этого нужно обновить информацию в окне программы и все созданные в системе дампы отобразятся. Если дампов несколько, то, ориентируемся по дате сбоя. Выбираем нужный дамп, а затем появится подробная информация по нему.
Здесь выводится название ошибки, ее STOP-код с параметрами и если причиной стал драйвер, то в соответствующем поле мы обнаружим его название.
Также в нижней части окна программы розовым будут выделяться файлы, которые также могли стать причиной сбоя. Придется по порядку разбираться с каждым из них. Алгоритм здесь аналогичен рассмотренному в прошлой заметке — ищем решение в интернете, а в качестве поискового ключа используем название файла или код ошибки.
При этом не обязательно вручную вводить данные в поисковик. Если щелкнуть правой кнопкой мыши по строке дампа, то из контекстного меню можно выбрать пункт, который позволит найти в Гугле описание именно этой проблемы.
Можно выбрать поиск в Гугл по коду ошибки, по коду ошибки и названию драйвера или по коду ошибки и параметру.
Также с помощью этой утилиты можно быстро найти местоположение проблемного файла на диске.
Иногда бывает, что файл, вызвавший проблему, принадлежит какой-то программе или игре. По местоположению файла на диске можно быстро определить, к какой именно программе или игре он относится.
Ну и стоит знать, что чистильщики вроде Ccleaner удаляют дампы памяти, поэтому если вы пользуетесь подобными программами, то на время выявления причины появления синего экрана смерти, стоит воздержаться от их использования.
И последний вопрос, на который я отвечу в рамках этой заметки — что делать, если после появления синего экрана компьютер более не запускается? То есть компьютер зависает или постоянно перегружается, а значит нет возможности проанализировать дамп памяти.
Ответ логичен и прост — нужно создать загрузочную флешку, с помощью которой «вытянуть» файл дампа с жесткого диска и проанализировать его на другом компьютере. Для этого загружаемся с флешки и на жестком диске компьютера в папке Windows или в подпапке minidump находим файл дампа, который копируем на флешку. Затем на другом компьютере с помощью утилиты BlueScreenView анализируем дамп, как было рассказано в этой заметке.
Дамп памяти
У каждого процесса есть своя выделенная память, которая хранится как раз в оперативной памяти (внезапно, не так ли?). Попробуем сдампить ее, чтобы найти полезную информацию из этого процесса.
$ vol.py -f challenge.vmem --profile Win10x64_18362 memdump -p 6484 -D data
Извлечение картинок из дампа памяти
Напоминаю, что mstsc.exe (да и другие RDP-клиенты тоже) получают картинку, которую хранят у себя где‑то в оперативной памяти. Благодаря этой особенности мы можем попробовать извлечь картинку из этого дампа процесса.
Возникнет только одна небольшая проблема: правильно подобрать смещение, так как картинка в памяти процесса хранится в сыром виде, и ни binwalk, ни foremost не могут ее отыскать, чтобы сохранить как отдельный файл.
Подобный трюк можно применять не только для процесса mstsc.exe, но и на процессы вроде mspaint.exe, virtualbox.exe и другие, которые работают примерно по такому же принципу. Для подбора смещения расчехляем графический редактор GIMP. Как прочитать картинку, если она начинается не в начале файла? Да запросто!
Нужно открыть дамп процесса как Raw Image Data, то есть как сырую картинку, иначе мы не сможем подбирать смещение.
Дальше появляется окошко, где мы можем выбирать смещение.
И начинаем его прокручивать. Для удобства я увеличил свое окошко по ширине, чтобы было легче управлять ползунком. Во время перемещения я заметил следующую картинку, которая похожа на кусок рабочего стола Windows, что наводит на мысль о близости к флагу.
Подкрутим еще немного и скорректируем размер по ширине.
А вот и флаг!
Драйверы устройств
Как было отмечено выше, наиболее частой причиной ошибки DPC_WATCHDOG_VIOLATION в Windows 10 являются проблемы драйверов. При этом, наиболее часто речь идет о следующих драйверах.
- Драйверы SATA AHCI
- Драйверы видеокарты
- Драйверы USB (особенно 3.0)
- Драйверы LAN и Wi-Fi адаптера
Во всех случаях первое, что следует попробовать сделать — установить оригинальные драйверы с сайта производителя ноутбука (если это ноутбук) или материнской платы (если это ПК) вручную именно для вашей модели (для видеокарты при установке используйте опцию «чистая установка», если это драйверы NVidia или опцию удаления предыдущих драйверов, если речь идет о драйверах AMD).
Важно: сообщение диспетчера устройств о том, что драйверы работают нормально или не нуждаются в обновлении, не говорит о том, что это действительно так. В ситуациях, когда проблема вызвана драйверами AHCI, а это, на вскидку, треть случаев ошибки DPC_WATCHDOG_VIOLATION обычно помогает следующий путь решения проблемы (даже без загрузки драйверов):. В ситуациях, когда проблема вызвана драйверами AHCI, а это, на вскидку, треть случаев ошибки DPC_WATCHDOG_VIOLATION обычно помогает следующий путь решения проблемы (даже без загрузки драйверов):
В ситуациях, когда проблема вызвана драйверами AHCI, а это, на вскидку, треть случаев ошибки DPC_WATCHDOG_VIOLATION обычно помогает следующий путь решения проблемы (даже без загрузки драйверов):
Нажмите правой кнопкой мыши по кнопке «Пуск» и перейдите в «Диспетчер устройств».
Откройте раздел «Контроллеры IDE ATA/ATAPI», нажмите правой кнопкой мыши по контроллеру SATA AHCI (может иметь разные названия) и выберите пункт «Обновить драйверы».
Далее выберите «Выполнить поиск драйверов на этом компьютере» — «Выбрать драйвер из списка уже установленных драйверов» и обратите внимание, присутствует ли в списке совместимых драйверов драйвер, с названием отличным, от того, которое было указано на шаге 2. Если да, выберите его и нажмите «Далее».
Дождитесь окончания установки драйвера.
Обычно, проблема решается, когда специфичный, загруженный из центра обновлений Windows драйвер SATA AHCI заменяется на Стандартный контроллер SATA AHCI (при условии, что причина была именно в этом)
Обычно, проблема решается, когда специфичный, загруженный из центра обновлений Windows драйвер SATA AHCI заменяется на Стандартный контроллер SATA AHCI (при условии, что причина была именно в этом).
В целом по данному пункту — правильным будет установить все оригинальные драйверы системных устройств, сетевых адаптеров и другие с сайта производителя (а не из драйвер-пака или полагаться на те драйверы, которые Windows установила сама).
Также, если в последнее время вы меняли драйверы устройств или устанавливали программы, создающие виртуальные устройства, обратите внимание на них — они тоже могут являться причиной проблемы
Определяем, какой драйвер вызывает ошибку
Вы можете попробовать узнать, какой именно файл драйвера вызывает ошибку с помощью бесплатной программы BlueScreenView для анализа дампа памяти, а после этого найти в интернете, что это за файл и к какому драйверу относится (затем — заменить его оригинальным или обновленным драйвером). Иногда автоматическое создание дампа памяти бывает отключено в системе, в этом случае см. Как включить создание и сохранение дампа памяти при сбоях Windows 10.
Для того, чтобы программа BlueScreenView могла прочитать дампы памяти, в системе должно быть включено их сохранение (а ваши программы для очистки компьютера, если такие присутствуют, не должны их очищать). Включить сохранение дампов памяти вы можете в меню правого клика по кнопке Пуск (вызываемое также по клавишам Win+X) — Система — Дополнительные параметры системы. На вкладке «Дополнительно» в разделе «Загрузка и восстановление» нажмите кнопку «Параметры», а затем отметьте пункты как на скриншоте ниже и дождитесь следующего появления ошибки.
Примечание: если после решения проблемы с драйверами ошибка исчезла, но через какое-то время стала снова проявлять себя, вполне возможно, что Windows 10 снова установила «свой» драйвер. Тут может оказаться применимой инструкция Как отключить автоматическое обновление драйверов Windows 10.