Анализ файла дампа с помощью WinDbg

859
dushkin

Меня попросили изучить файл дампа (исходные файлы не указаны) с помощью windbg и извлечь из него некоторую информацию:

  • определить, в чем проблема (зависание / сбой)
  • какой модуль вызывает зависание.
  • Что является основной причиной зависания / сбоя.
  • Перечислите все модули компании, введенные в процесс
  • Перечислите все хуки, сделанные в процессе модулями компании.

Единственный файл, который у меня есть, это файл dmp. Я работаю на Windows10 64bit.

Я работаю над этим уже некоторое время:

  1. Прежде всего, я использовал .sympath и .reload для проверки загрузки символов Microsoft.
  2. Тогда я использовал .analyze! -v, чтобы создать анализ файла.
  3. В этом анализе я обнаружил следующее:

    а. В потоке 7030 возникла исключительная ситуация команды прерывания 80000003

    б. Исключение составляли процессы PowerPoint Microsoft Office 2010.

    с. Исключение было в методе CpupSyscallStub.

    д. Модуль wow64cpu.

    е. Поскольку это исключение 0x80000003, оно указывает на созданный вручную дамп приложения.

    е. Я использовал команду ~, чтобы увидеть список потоков в процессе. Все они были заморожены. г. Однако - я использовал ! Runaway и увидел, что поток 7030 работал в течение более 7 минут и намного больше, чем другие потоки в процессе.

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

    час Основная причина, вероятно, «Один или несколько аргументов недействительны», как указано в значении ключа EXCEPTION_CODE.

    я. Использование ~ # должно было дать мне поток, вызвавший исключение:

     . 0 Id: 5cf8.7030 Suspend: 0 Teb: 00000000`00c5b000 Unfrozen Start: *** ERROR: Symbol file could not be found. Defaulted to export symbols for POWERPNT.EXE - POWERPNT+0x10c8 (00000000`2d7710c8) Priority: 0 Priority class: 32 Affinity: f 

    к. Но, вызывая -ecxr, вырисовывается : «У Minidump нет контекста исключений», поэтому я запутался…

  4. Чтобы найти инъекции:

    а. Я использовал .hideinjectedcode, надеясь, что сейчас ! Проанализировать -v даст мне информацию об инъекциях. Но я получил те же журналы анализа ...

    б. Использование lm -v дало мне список всех модулей в процессе. Таким образом, внедренными модулями, скорее всего, будут все 14 DLL-библиотек, имеющих атрибут «CompanyName:», а также, возможно, и две DLL-библиотеки «OpenSSL Project», партнером которых может быть инъекционная компания.

    Но я не уверен в этом ...

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

Здесь вы можете найти вывод команды! Analize.

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

Спасибо!!!

2
Можете ли вы опубликовать дамп для анализа? Вы нигде не будете анализировать исключение, поскольку, как вы говорите, это созданный вручную дамп. Исключение не имеет ничего общего с тем, на чем зависает процесс. Если бы он разбился, не было бы никакого процесса для анализа - он разбился. fwiw - лучший инструмент для анализа зависаний - Etw (но для этого нужно привыкнуть к анализу, а не к моей чашке чая) Lieven Keersmaekers 6 лет назад 0
Спасибо, Ливен, Ого, это файл размером 1 ГБ, заархивированный до 300 МБ ... Достаточно ли будет вывода "! Analyse -v"? dushkin 6 лет назад 0
Это не повредит. Вы также можете попробовать `! Analysis -v -hang` и попробовать [debugdiag] (https://www.microsoft.com/en-us/download/details.aspx?id=49924) автоматический анализ дампа. Lieven Keersmaekers 6 лет назад 0
https://drive.google.com/open?id=1jSXwXC-tCAD73AMkGVoxA4vqjWtTa5RE dushkin 6 лет назад 0
Я вижу там "BusyHang". Это доказательство повешения ?? dushkin 6 лет назад 0
Это доказательство того, что хотя бы один поток застрял в цикле. Если это ваш основной поток, все приложение отображается [заморожено] (https://blogs.msdn.microsoft.com/marklon/2005/08/12/hanged-if-you-do-hanged-if-you-dont/ ). (Я не могу открыть вложение, придется подождать, пока я не вернусь домой) Lieven Keersmaekers 6 лет назад 0
Давайте [продолжим это обсуждение в чате] (http://chat.stackexchange.com/rooms/70105/discussion-between-dushkin-and-lieven-keersmaekers). dushkin 6 лет назад 0
вы не можете отлаживать сбой PowerPoint, Microsoft не предоставляет символы отладки (PDB) для Office. Вы получаете этот шум wow64, потому что использовали 64-битное Taskmgr для создания дампа для 32-битного офиса magicandre1981 6 лет назад 0
@ magicandre1981 Спасибо, Андре! Итак, я могу обнаружить зависания? «BusyHang» подразумевает зависание ситуации? dushkin 6 лет назад 0
Вы не можете отладить его без файлов отладки. magicandre1981 6 лет назад 0
@ magicandre1981 - Нет другого способа, кроме захвата дампа с нужной битностью, куда-нибудь попасть с текущим дампом? Lieven Keersmaekers 6 лет назад 0
@LievenKeersmaekers, возможно, помогает команда [! Locks] (https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugging-a-deadlock), но, возможно, ей также нужны PDB magicandre1981 6 лет назад 0

1 ответ на вопрос

0
Stef

Сначала попробуйте запустить CMD, а затем -
SC для команды управления сервисом
SYSTEMINFO - Список конфигурации системы

Посмотрите, что на выходе и есть ли что-то для вашего сбоя

Спасибо, Стеф. Ты имеешь ввиду windows cmd? Поскольку дамп не был создан в системе, к которой у меня есть доступ ... dushkin 6 лет назад 0
Да, в командной строке - кнопка Пуск - запустить - «CMD» Stef 6 лет назад 0
Итак, у вас есть еще одна проблема - сообщите об этом системному администратору, если у вас нет доступа - http://www.osronline.com/page.cfm?name=analyze Stef 6 лет назад 0
У меня нет сисадмина для работы. Это задание, которое я получил в качестве упражнения ... :( dushkin 6 лет назад 0
Ок, тогда попробуйте сами, но помните, что анализ файла дампа - не простая задача. Вам может понадобиться инструмент, чтобы сделать какую-то работу за вас - поиск в Интернете «инструмент анализа файла дампа» Stef 6 лет назад 0
Теперь, если вы меня извините, мне действительно нужно курить! Stef 6 лет назад 1
Спасибо Стеф за ваши советы. Я уже пробовал сайт OSR, но, к сожалению, мой размер файла дампа составляет 1 ГБ ... Это то, что я получил, и OSR не поддерживает этот размер :( dushkin 6 лет назад 0
Затем найдите и найдите инструмент God F ^ & * ng damn, скачайте и установите его, чтобы вам не приходилось использовать в первой строке Stef 6 лет назад 0
Я надеялся, что Виндбг тот ... dushkin 6 лет назад 0
Как я красный это дерьмо Stef 6 лет назад 0