- Eriberto Blog - http://eriberto.pro.br/blog -

Fazendo o dump de memória via /dev/fmem

Tweet [1]

Em forenses computacionais, muitas vezes, precisamos realizar um dump de memória. Isso sempre pode ser feito com o comando dd. Veja:

# dd if=/dev/mem of=memoria.dump

No entanto, as pessoas têm reclamado que, ultimamente, o seguinte erro tem aparecido:

dd: lendo "/dev/mem": Operação não permitida

ou

dd: reading `/dev/mem': Operation not permitted

Este foi o fato que gerou este post.

O erro mostrado ocorre porque, há algum tempo, o kernel 2.6 tem vindo com a opção CONFIG_STRICT_DEVMEM habilitada por default. Essa opção protege a memória contra acessos que não ocorram via dispositivos específicos. Para ver isso no Debian, por exemplo, basta executar o comando a seguir:

# cat /boot/config-* | grep CONFIG_STRICT_DEVMEM

Uma solução é utilizar o módulo fmem, disponível em http://hysteria.sk/~niekt0/foriana/ [2]. Ele é de fácil compilação e fornece os dados desejados. É necessário ter o cuidado de especificar o limite da memória para que ele não entre em um loop infinito. Exemplo:

# dd if=/dev/fmem of=memoria.dump bs=1M count=4096

O valor em count deverá ser trocado pela quantidade de memória em MB. No meu caso, tenho 4 GB = 4096 MB.