Blog. Just Blog

Запись мини-дампа процесса на Ассемблере

07.02.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter
Дампы или мини-дампы создаются обычно в случае аварийного падения процесса или системы. С помощью специальных программ по дампам можно восстановить примерное окружение, на котором произошел сбой, проанализировать его и установить процесс или код, который привел к критическому сбою.

Для создания дампов памяти есть официально документированная функция MiniDumpWriteDump из динамической библиотеки dbghelp.dll. C ее помощью можно точно настроить, какие данные должны попасть в создаваемый дамп. Вызывается она примерно так (вариант для текущего процесса):
  1.         ; Создать файл для записи дампа
  2.         invoke  CreateFile,fname,GENERIC_WRITE,\
  3.                 FILE_SHARE_WRITE,0,CREATE_NEW,\
  4.                 FILE_ATTRIBUTE_ARCHIVE,0
  5.         mov     [desc],eax
  6.  
  7.         ; Получить ID текущего процесса
  8.         invoke  GetCurrentProcessId
  9.         mov     ebx,eax
  10.  
  11.         invoke  GetCurrentProcess
  12.  
  13.         MiniDumpNormal = 0x00000000
  14.  
  15.         ; Сделать дамп
  16.         invoke  MiniDumpWriteDump,eax,ebx,[desc],MiniDumpNormal,0,0,0
  17.  
  18.         ; Закрыть файл
  19.         invoke  CloseHandle,[desc]
Некоторое время назад исследователи безопасности обнаружили, что над этой функцией имеется обертка - недокументированная функция MiniDumpW из динамической библиотеки comsvcs.dll. Вся прелесть заключается в том, что ее элементарно использовать даже из командной строки с использованием только штатных утилит. Что-то типа

rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump <PID> dump.dmp full
До некоторых пор таким способом можно было сохранить дамп процесса lsass.exe и затем при помощи какого-нибудь инструмента типа Mimikatz вытащить из него пароли учетных записей пользователей компьютера.

Читать статью целиком »
Просмотров: 285 | Комментариев: 0

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.08 сек. / MySQL: 1 (0.0111 сек.) / Память: 4.5 Mb
Наверх