Как прочитать файл Windows Hibernation (hiberfile.sys) для извлечения данных?

Мне нужно найти все данные, хранящиеся в файле спящего режима, путем его синтаксического анализа. Однако до сих пор я только вручную сделал это вручную, открыв его в редакторе Hex, а затем искал в нем тексты. Я нашел о SandMan Library, но их нет никаких ресурсов. Любая идея, как читать файл? Или это их инструмент / библиотека или другой способ сделать это?

    Вы можете найти много информации о Hiberfil.sys на странице ForensicWiki .

    Хотя большинство структур данных, требуемых для анализа формата файла, доступны в символах отладки Microsoft Windows, используемое сжатие (Xpress) было недокументировано до тех пор, пока Matthieu Suiche не обратилось назад. Он создал с Николя Руффа проект Sandman – единственный инструмент с открытым исходным кодом, который может читать и записывать файл спящего режима Windows.

    Здесь вы найдете pdf-проект Sandman.

    Создатели проекта Sandman также создали инструмент для сброса памяти и Hiberfil.sys (и извлеките его из формата сжатия XPress). MoonSols Набор инструментов для Windows Memory Toolkit

    Некоторые из других ссылок на странице ForensicWiki больше не работают, но вот один из них: (Если вы хотите погрузиться прямо в структуру формата, вы можете использовать этот ресурс. Для заголовка первые 8192 байта Файл, вам не нужно их распаковывать)

    Файл гибернации Format.pdf

    Этот последний PDF-файл и последняя ссылка на страницу ForensicWiki должны предоставить вам достаточно информации о структуре Hiberfil.sys .

    Файлы гибернации состоят из стандартного заголовка (PO_MEMORY_IMAGE), набора контекстов ядра и регистров, таких как CR3 (_KPROCESSOR_STATE) и нескольких массивов сжатых / кодированных блоков данных Xpress (_IMAGE_XPRESS_HEADER и _PO_MEMORY_RANGE_ARRAY).

    Стандартный заголовок существует со смещением 0 файла и показан ниже. Как правило, элемент Signature должен быть либо «hibr», либо «wake», чтобы считаться действительным, однако в редких случаях весь заголовок PO_MEMORY_IMAGE был обнулен, что может помешать анализу файла спящего режима в большинстве инструментов. В этих случаях волатильность будет использовать алгоритм грубой силы для поиска нужных данных.

    Ссылки в этих документах должны дать вам много других источников для изучения.

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

    Я выделил важные части.

    Да, он сохраняет его незашифрованным на диске. Это скрытый файл в C:\hiberfil.sys , который всегда будет создан в любой системе с включенной гибернацией. Содержимое сжимается с использованием алгоритма Xpress, документация которого доступна в виде документа Word из Microsoft . Matthieu Suiche сделал всесторонний анализ этого как презентацию BlackHat в 2008 году, которую вы можете получить в формате PDF . Существует также инструмент под названием MoonSols Windows Memory Toolkit, который позволяет вам сбрасывать содержимое файла. Я не знаю, разрешает ли вам конвертировать обратно. Возможно, вам придется поработать над тем, чтобы сделать это самостоятельно.

    После того, как вы получите данные, можно извлечь или изменить данные, включая инструкции. Что касается смягчения, лучшим решением является использование полного шифрования диска, такого как BitLocker или TrueCrypt.

    Источник

    Преобразуйте файл hiberfil.sys в исходное изображение с помощью http://code.google.com/p/volatility/downloads/list . Последняя версия на данный момент – 2.3.1. В частности, вы можете использовать следующую командную строку, чтобы сначала создать необработанное изображение: -f imagecopy -O hiberfil_sys.raw. Это создаст необработанное изображение для вас, а затем запустит волатильность, благодаря которой вы сможете извлекать информацию, такую ​​как процесс, соединения, сокеты и кусты реестра (просто чтобы назвать несколько). Полный список плагинов можно найти здесь: https://code.google.com/p/volatility/wiki/Plugins . Конечно, mandiant redline – еще один инструмент, который обеспечивает эту функциональность. Надеюсь, это помогло.

    Interesting Posts

    Как преобразовать строку Base64 в образ BitMap, чтобы показать его в ImageView?

    Заполнение выпадающего списка HTML в JSP со значениями, полученными из базы данных в Servlet

    Как создать пустой DataFrame с указанной схемой?

    JSON Web Token (JWT) с основанной на Spring SockJS / STOMP Web Socket

    Android: Как я могу проверить ввод EditText?

    Как обрезать изображение на Java?

    Что такое неопределенная ссылка / неразрешенная ошибка внешнего символа и как ее исправить?

    Есть ли способ скопировать лист Excel без копирования всех стилей ячеек в исходной книге в целевую книгу?

    Динамическая сортировка электронной почты в Outlook 2013?

    Объединить несколько дочерних строк в одну строку MYSQL

    Передача данных между формами

    Лучший способ построения функции с памятью

    Как защитить приложение от пиратства

    Понимание контекстов в Spring MVC

    Почему этот цикл создает «предупреждение: итерация 3u вызывает неопределенное поведение» и выводит более 4 строк?

    Давайте будем гением компьютера.