Fazendo o dump de memória via /dev/fmem
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/. 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.
