2010-08-17 1 views
2

Je souhaite analyser l'intégralité du tas d'une application native en cours d'exécution via un autre processus. Par exemple, je veux savoir ce qui suit toutes les instances de la séquence ASCII "test" dans cette mémoire de processus (dans ce cas, je voudrais rechercher "test" et continuer à lire après).Comment puis-je analyser une autre mémoire de processus pour trouver ce qui suit une chaîne spécifique?

J'ai essayé de google pour plus d'informations mais n'ai pas trouvé beaucoup: J'ai trouvé ReadProcessMemory qui a semblé intéressant, mais comment est-ce que je peux savoir les adresses de mémoire qu'un processus a allouées?

Répondre

6

Essayez VirtualQueryEx. Si vous constatez que vous accédez à beaucoup de mémoire dans l'autre processus, utilisez CreateRemoveThread (sample code). Cela vous permettra d'injecter votre propre DLL dans l'autre processus et d'y exécuter du code directement. Une fois que vous exécutez le code dans l'autre processus, vous serez en mesure d'accéder à la mémoire normalement, sans avoir besoin d'utiliser ReadProcessMemory. (Vous aurez toujours besoin de VirtualQuery pour déterminer la disposition de la mémoire du processus.)

+0

Yup, gagnant. Les chances de trouver plusieurs correspondances pour "test" sont bonnes. –

Questions connexes