No Wiki do Forensic: Ferramentas: Imagens de memória
excerto
Linux
Em sistemas Linux mais antigos, o programa dd pode ser usado para ler o conteúdo da memória física no arquivo do dispositivo / dev / mem. Em sistemas Linux recentes, no entanto, / dev / mem fornece acesso apenas a um intervalo restrito de endereços, em vez da memória física completa de um sistema. Em outros sistemas, pode não estar disponível. Em toda a série 2.6 do kernel Linux, a tendência era reduzir o acesso direto à memória via arquivos de pseudo-dispositivo. Veja, por exemplo, a mensagem que acompanha este patch: http://lwn.net/Articles/267427/ .
Nos sistemas Red Hat (e naqueles que executam distribuições relacionadas, como Fedora ou CentOS), o driver de falha pode ser carregado para criar pseudo-dispositivo / dev / crash para acesso bruto à memória física (via comando "modprobe crash"). Este módulo também pode ser compilado para outras distribuições Linux com pouco esforço (veja, por exemplo, http://gleeda.blogspot.com/2009/08/devcrash-driver.html ). Quando o driver de falha é modificado, compilado e carregado em outros sistemas, o dispositivo de acesso à memória resultante não é seguro para a imagem na sua totalidade. Deve-se tomar cuidado para evitar endereços que não sejam suportados por RAM. No Linux, / proc / iomem expõe os intervalos de endereços corretos à imagem, marcados com "RAM do sistema".
Este produto forense de memória comercial é fornecido com uma versão modificada do driver de falha e um script para descarregar com segurança a memória usando o driver original ou modificado em qualquer sistema Linux.
O fmem é um módulo do kernel que cria o dispositivo / dev / fmem, semelhante ao / dev / mem, mas sem limitações. Este dispositivo (RAM física) pode ser copiado usando o dd ou outra ferramenta. Funciona em kernels 2.6 do Linux. Sob GNU GPL.
O Linux Memory Extractor (LiME) é um LKM (Loadable Kernel Module), que permite a aquisição de memória volátil de dispositivos baseados em Linux e Linux, como aqueles equipados com Android. A ferramenta suporta o despejo de memória no sistema de arquivos do dispositivo ou na rede.
Eu encontrei este exemplo de fmem
em uso, que parece ser a maneira mais fácil de despejar memória para fins de análise, você não pode mais usar /dev/mem
após os kernels 2.6.x, pelo que entendi.
Exemplo fmem
$ ./run.sh
...
----Memory areas: -----
reg00: base=0x000000000 ( 0MB), size= 1024MB, count=1: write-back
reg01: base=0x0c8800000 ( 3208MB), size= 2MB, count=1: write-combining
-----------------------
!!! Don't forget add "count=" to dd !!!
$ ls /dev/f*
/dev/fb0 /dev/fd0 /dev/fmem /dev/full /dev/fuse
$ sudo dd if=/dev/fmem of=/tmp/fmem_dump.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0331212 s, 302 MB/s
* Fonte: Como posso despejar toda a memória física em um arquivo?
Exemplo do LiME
Para analisar a memória volátil, há também esta página, intitulada: Linux Memory Analysis . Há um exemplo completo neste tutorial em vídeo que mostra o uso do LiME e do Volatility para coletar um despejo de memória e depois analisá-lo, extraindo o histórico de Bash do usuário do despejo de memória.
O quê mais?
Também há uma sessão de perguntas e respostas sobre questões de perguntas e respostas intitulada: Como despejar a memória completa do sistema? que tem exemplos e informações adicionais.