Як читати файл гібернації Windows (hiberfil.sys) для отримання даних?


8

Мені потрібно знайти, які всі дані зберігаються у файлі сплячки, аналізуючи їх. Однак до цих пір мені це вдалося зробити лише вручну, відкривши його в шестигранному редакторі та потім шукаючи тексти в ньому. Я дізнався про бібліотеку SandMan, але ресурсів немає. Будь-яка ідея, як читати файл? Або є якийсь інструмент / бібліотека чи інший метод для цього?


3
файл hiberfil - це зображення оперативної пам’яті системи під час його сплячого. так, так, шестигранний редактор - це, мабуть, найкраще, що ви отримаєте. Це завдання по суті не відрізняється від спроби зчитувати вміст оперативної пам'яті.
Френк Томас


1
@FrankThomas Ви знаєте, який формат файлу сплячки?
кодер

@OliverSalzburg Я хочу знати структуру даних, щоб прочитати файл?
кодер

1
@WernerHenze для мого завдання
кодер

Відповіді:


7

Ви можете знайти багато інформації про Hiberfil.sysна сторінці ForensicWiki .

Хоча більшість структур даних, необхідних для розбору формату файлів, доступні в символах налагодження Microsoft Windows, використовувана компресія (Xpress) не була документалізована, поки Маттьє Суйче не створив реверс. Він створив разом з Ніколясом Руффом проект під назвою Sandman - єдиний інструмент з відкритим кодом, який може читати та записувати файл сплячки Windows.

PDF проекту Пісочний знаходиться тут .

Творці проекту Sandman також створили інструмент для скидання пам'яті та Hiberfil.sys-файлу (та витягування його з формату стиснення XPress). MoonSols Windows Toolkit

Деякі з інших посилань на сторінці ForensicWiki більше не працюють, але ось я знайшов: (Якщо ви хочете зануритися прямо у структуру формату, ви можете використовувати цей ресурс. Для заголовка, перші 8192 байти файл, не потрібно їх розпаковувати)

Формат файлу гібернації.pdf

Цей останній PDF та остання посилання на сторінці ForensicWiki повинні дати вам достатньо інформації про структуру Hiberfil.sys.

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

Стандартний заголовок існує при зміщенні 0 файлу і показаний нижче. Як правило, член Підпису повинен бути або "hibr", або "wake", щоб вважати його дійсним, однак у рідкісних випадках весь заголовок PO_MEMORY_IMAGE був нульовим, що може запобігти аналізу файлу сплячки у більшості інструментів. У цих випадках нестабільність використовуватиме алгоритм грубої сили для пошуку потрібних йому даних.

Посилання в цих документах також повинні давати вам багато інших джерел для вивчення.


3

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

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

Так, він зберігає його незашифрованим на диску. Це прихований файл у C:\hiberfil.sys, який завжди створюватиметься в будь-якій системі, у якій включена сплячка. Вміст стискається за допомогою алгоритму Xpress, документація якого доступна як документ Word у Microsoft . Маттьє Суйхе провів всебічний аналіз його як презентації BlackHat у 2008 році, який можна отримати як PDF . Також є інструмент під назвою MoonSols Windows Memory Toolkit, який дозволяє скинути вміст файлу. Я не знаю, чи дозволяє це конвертувати назад. Можливо, вам доведеться попрацювати над способом зробити це самостійно.

Після отримання даних можна витягнути або змінити дані, включаючи інструкції. Що стосується пом'якшення, то найкращим рішенням буде використання повного дискового шифрування, наприклад BitLocker або TrueCrypt.

Джерело


3

Перетворіть файл 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 . Звичайно, рясна червона лінія - це ще один інструмент, який забезпечує цю функціональність. Сподіваюся, що це допомогло.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.