J'utilise une base de données redis et j'aimerais explorer le contenu de la RAM que l'application utilise.
Je pense que l'explication de la raison pour laquelle je veux faire cela aura plus de sens que la question que je poserais.
Redis est un simple magasin de valeurs clés qui stocke des données binaires. Je pense que ce serait un bon endroit pour explorer des choses comme l'encodage et il serait intéressant pour moi de faire des choses comme parcourir la RAM à la recherche d'ensembles de données binaires, faire des choses comme chercher des motifs simples; peut-être explorer l'idée d'écrire un langage de requête pour bébé qui a cherché dans la RAM.
J'avais eu cette idée après avoir lu le chapitre du SICP sur les langages de requête.
Des réflexions sur où commencer? Au départ, je veux demander au système "Donnez-moi l'espace d'adressage dans lequel cette application s'exécute, s'il vous plaît".
pmap
formate ces informations afin qu'elles soient plus lisibles par l'homme.Utilisez un débogueur, c'est à ça qu'ils servent.
Si vous voulez rouler le vôtre, tout se passe
ptrace
.Vous pouvez voir la carte mémoire d'un processus (la table des matières de la mémoire) dans
/proc/$pid/maps
et lire l'intégralité du contenu de la mémoire/proc/$pid/mem
. Vous ne pouvez pas simplement ouvrir ce dernier fichier normalement, voir Comment lire à partir de / proc / $ pid / mem sous Linux?la source