Explorando o conteúdo da RAM

10

Estou usando um banco de dados redis e gostaria de explorar o conteúdo da RAM que o aplicativo está usando.

Eu sinto que a explicação do porquê eu quero fazer isso fará mais sentido do que a pergunta que eu faria.

O Redis é um armazenamento de valor chave simples que armazena dados binários. Eu acho que seria um bom lugar para explorar coisas como codificação e seria interessante para mim fazer coisas como navegar pela RAM procurando por conjuntos binários de dados, fazendo coisas como procurar por padrões simples; talvez explore a ideia de escrever uma linguagem de consulta para bebês que pesquisou na RAM.

Eu tive essa ideia depois de ler o capítulo SICP sobre as linguagens de consulta.

Alguma ideia sobre por onde começar? Inicialmente, eu quero perguntar "Dê-me o espaço de endereço que esta aplicação está executando, por favor" para o sistema.

    
por Prospero 23.03.2012 / 13:36

3 respostas

7

Você pode usar o gdb para acessar a memória de um processo.

Além disso, você deve dar uma olhada no sistema de arquivos "/ proc" - ele contém pseudo-arquivos para cada processo; alguns deles podem conter informações interessantes

    
por 23.03.2012 / 13:56
7

cat /proc/[pid]/maps de acordo com os manpages do proc.

Parece o que você quer. Se você precisar do pid, pegue o ps ou qualquer outra ferramenta.

Isso aborda a localização do espaço de endereço em uso. Um dos bolsistas da defcon no ano passado implementou o createremotethread no linux. Então você pode fazer isso ... então leia memória arbitrária dessa maneira.

Agradecemos a psusi por apontar que pmap -x [pid] é mais fácil de ler.

    
por 23.03.2012 / 13:55
5

Use um depurador, é para isso que eles servem.

Se você quiser fazer o seu próprio, tudo passa por ptrace .

Você pode ver o mapa de memória de um processo (o índice da memória) em /proc/$pid/maps e ler todo o conteúdo da memória em /proc/$pid/mem . Você não pode simplesmente abrir esse último arquivo normalmente, veja Como leio / proc / $ pid / mem no Linux?

    
por 24.03.2012 / 00:01

Tags