2010-02-07 6 views
3

Comment rechercher une séquence donnée d'octets dans une mémoire d'ordinateur? L'API ReadProcessMemory ne convient pas car elle lit uniquement la mémoire de processus et non la mémoire entière.Numériser la mémoire de l'ordinateur

Existe-t-il des solutions existantes?

+4

Windows a cette fonctionnalité sophistiquée appelée «mémoire protégée» qui empêche les gens de le faire. Peut-être que quelqu'un viendra avec une "meilleure" solution, mais si vous avez besoin de lire la mémoire physique, autant que je sache, vous devez vivre dans l'espace noyau; par conséquent, vous devez écrire un pilote. – zneak

Répondre

2

Il existe l'objet Device\PhysicalMemory, mais attention, cet accès en mode utilisateur n'est pas autorisé pour certaines versions de Windows (voir le lien). Si vous voulez l'utiliser, vous trouverez this article utile (cherchez "5.2 chmod_mem.c" pour un exemple de code). En raison de la mémoire virtuelle et de la pagination, vous ne pouvez pas trouver la séquence dans la mémoire physique.

1

L'énumération des processus et heap walking est un moyen de numériser la mémoire, à l'exception de la mémoire du noyau.

Questions connexes