Estou usando um banco de dados redis e gostaria de explorar o conteúdo da RAM que o aplicativo está usando.
Sinto que a explicação de por que quero fazer isso fará mais sentido do que a pergunta que eu faria.
Redis é um armazenamento simples de valores-chave 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 percorrer a RAM, procurando conjuntos de dados binários, fazendo coisas como procurar padrões simples; talvez explore a idéia de escrever uma linguagem de consulta de bebê que pesquisou na RAM.
Eu tive essa ideia depois de ler o capítulo no SICP sobre linguagens de consulta.
Alguma idéia de por onde começar? Inicialmente, quero perguntar "Dê-me o espaço de endereço em que este aplicativo está sendo executado, por favor" ao sistema.
pmap
formata essas informações para que sejam mais legíveis por humanos.Use um depurador, é para isso que eles servem.
Se você deseja criar o seu próprio, tudo passa
ptrace
.Você pode ver o mapa de memória de um processo (o índice da memória)
/proc/$pid/maps
e ler todo o conteúdo da memória/proc/$pid/mem
. Você não pode simplesmente abrir esse último arquivo normalmente, consulte Como leio / proc / $ pid / mem no Linux?fonte