Как сбросить физическую память в Linux?

68729
Anonymous

Как создать дамп физической памяти (ОЗУ) в Linux?

Какое программное обеспечение, если таковое имеется, доступно для этой цели?

Я читал, что не следует писать на локальный диск, а отправлять данные по сети. Кто-нибудь знает особенности здесь? Будет ли Ethernet работать для этой цели, или есть какие-либо команды, которые минимизируют объем кэширования перед отправкой на диск?

WinHex на Windows имеет такую ​​функциональность:

enter image description here

Я ищу что-то похожее на Linux.

22

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

22
nik

Вот страница eHow о том, как сделать дамп памяти Linux

Linux предоставляет два виртуальных устройства для этой цели, ' /dev/mem' и ' /dev/kmem', хотя многие дистрибутивы по умолчанию отключают их по соображениям безопасности. ' /dev/mem' связан с физической системной памятью, тогда как ' /dev/kmem' отображается на все пространство виртуальной памяти, включая любой обмен. Оба устройства работают как обычные файлы и могут использоваться с dd или любым другим инструментом для работы с файлами.

Это приводит к появлению страницы ForensicsWiki, посвященной средствам визуализации памяти с разделом Linux / Unix ,

  1. dd В системах Unix программа dd может использоваться для захвата содержимого физической памяти с использованием файла устройства (например, / dev / mem и / dev / kmem). В последних ядрах Linux / dev / kmem больше не доступен. В более новых ядрах / dev / mem есть дополнительные ограничения. И в самой последней версии / dev / mem больше не доступен по умолчанию. На протяжении серии ядра 2.6 тенденция заключалась в сокращении прямого доступа к памяти через файлы псевдоустройств. Посмотрите, например, сообщение, сопровождающее этот патч: http://lwn.net/Articles/267427/ . В системах Red Hat (и производных дистрибутивах, таких как CentOS), драйвер сбоя может быть загружен для создания псевдо-устройства для доступа к памяти («modprobe crash»).
  2. Второй взгляд Этот коммерческий продукт для анализа памяти имеет возможность извлекать память из систем Linux, либо локально, либо из удаленной цели через DMA или по сети. Он поставляется с предварительно скомпилированными модулями драйвера физической памяти (PMAD) для сотен ядер из наиболее часто используемых дистрибутивов Linux.
  3. Idetect (Linux)
  4. fmem (Linux)
    fmem - модуль ядра, который создает устройство / dev / fmem, похожее на / dev / mem, но без ограничений. Это устройство (физическое ОЗУ) можно скопировать с помощью dd или другого инструмента. Работает на ядрах Linux 2.6. Под GNU GPL.
  5. Золотая
    рыбка Золотая рыбка - это инструмент для судебной экспертизы Mac OS X, который используется только правоохранительными органами. Его основная цель - предоставить простой в использовании интерфейс для выгрузки системной оперативной памяти целевой машины через соединение Firewire. Затем он автоматически извлекает пароль для входа текущего пользователя и любые открытые фрагменты диалога AOL Instant Messenger, которые могут быть доступны. Правоохранительные органы могут связаться с goldfish.ae для получения информации о загрузке.

Смотрите также: Анализ памяти Linux .
Также есть GDB, обычно доступный в большинстве Linux.
Кроме того, вам всегда рекомендуется избегать записи поверх неизвестной памяти - это может привести к повреждению системы.

Кто-нибудь пробовал это в недавней системе Ubuntu? 13 лет назад 1
нет / dev / mem или / dev / kmem в моей системе Debian. Rob 12 лет назад 1
Я только что сделал это на моей CentOS 7.x VM. slm 6 лет назад 0
4
Patel95

Волатильность, кажется, работает хорошо и совместима с Windows и Linux.

С их сайта:

Volatility поддерживает дампы памяти из всех основных 32- и 64-разрядных версий Windows и пакетов обновления, включая XP, 2003 Server, Vista, Server 2008, Server 2008 R2 и Seven. Независимо от того, используется ли дамп памяти в необработанном формате, аварийный дамп Microsoft, файл гибернации или снимок виртуальной машины, Volatility может работать с ним. Теперь мы также поддерживаем дампы памяти Linux в формате raw или LiME и включаем 35+ плагинов для анализа 32- и 64-битных ядер Linux с 2.6.11 - 3.5.x и таких дистрибутивов, как Debian, Ubuntu, OpenSuSE, Fedora, CentOS и Mandrake. Мы поддерживаем 38 версий дампов памяти Mac OSX от 10.5 до 10.8.3 Mountain Lion, как 32-разрядных, так и 64-разрядных. Android-телефоны с процессорами ARM также поддерживаются.

3
Andrew Tappert

Second Look - это хороший и простой способ выгрузить память в Linux: http://secondlookforensics.com/ .

Также есть недавно выпущенный модуль ядра, который вы можете попробовать под названием LiME: http://code.google.com/p/lime-forensics/

0
slm

В качестве подтверждения я смог сбросить память моей виртуальной машины CentOS 7.x следующим образом:

$ head /dev/mem | hexdump -C 00000000 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 |S...S...S...S...| 00000010 53 ff 00 f0 53 ff 00 f0 cc e9 00 f0 53 ff 00 f0 |S...S.......S...| 00000020 a5 fe 00 f0 87 e9 00 f0 53 ff 00 f0 46 e7 00 f0 |........S...F...| 00000030 46 e7 00 f0 46 e7 00 f0 57 ef 00 f0 53 ff 00 f0 |F...F...W...S...| 00000040 22 00 00 c0 4d f8 00 f0 41 f8 00 f0 fe e3 00 f0 |"...M...A.......| 00000050 39 e7 00 f0 59 f8 00 f0 2e e8 00 f0 d4 ef 00 f0 |9...Y...........| 00000060 a4 f0 00 f0 f2 e6 00 f0 6e fe 00 f0 53 ff 00 f0 |........n...S...| 00000070 ed ef 00 f0 53 ff 00 f0 c7 ef 00 f0 ed 57 00 c0 |....S........W..| 00000080 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 |S...S...S...S...| * 00000100 59 ec 00 f0 3d 00 c0 9f 53 ff 00 f0 ed 69 00 c0 |Y...=...S....i..| 00000110 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 |S...S...S...S...| * 00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000afea0 00 00 00 00 00 00 00 00 aa aa aa 00 aa aa aa 00 |................| 000afeb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| ... ... 000b0000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 000c0000 55 aa 40 e9 62 0a 00 00 00 00 00 00 00 00 00 00 |U.@.b...........| 000c0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 49 42 |..............IB| 000c0020 4d 00 9c 80 fc 0f 75 06 e8 4f 01 e9 bc 00 80 fc |M.....u..O......| 

Учитывая, что 55aah происходит в диапазоне c0000h-effffh, это, вероятно, заголовок расширения PNP:

Справка: спецификация загрузки BIOS

3.3 Устройства с заголовками расширения PnP

Все устройства IPL с дополнительными ПЗУ должны содержать действительный заголовок дополнительного ПЗУ, который находится между адресами системной памяти C0000h и EFFFFh на границе 2К и начинается с 55AAh. Загрузка устройства может контролироваться только при наличии заголовка расширения PnP. Заголовок расширения, адрес которого находится в заголовке стандартного дополнительного ПЗУ со смещением + 1Ah, содержит важную информацию, используемую для настройки устройства. Он также содержит указатели на код в дополнительном ПЗУ устройства (BCV или BEV), которое BIOS будет вызывать для загрузки с устройства. См. Приложение A для структуры заголовка расширения PnP. Существует два способа загрузки устройства IPL с заголовком расширения PnP. Он должен содержать BCV или BEV.

Рекомендации