2009-05-11 7 views
1

J'essaie de lire les variables de la mémoire. Variables, qui n'appartiennent pas à mon propre programme. Par exemple, supposons que cette application Adobe Shockwave (.dcr) s'exécute dans le navigateur et que je souhaite en lire différentes variables. Comment ça se fait? Ai-je besoin d'accrocher le processus? Mais il fonctionne sous une machine virtuelle, donc je ne sais pas comment le faire.Comment lire les variables de l'application tierce depuis la mémoire?

Cette tâche est à peu près trivial dans des applications normales W32 (comme il est principalement juste CBT-crochetage/subclassing), mais comme je l'ai dit, je n'ai aucune idée comment il est fait avec flash/Shockwave. J'utilise C++ (VS9) comme environnement de développement, au cas où vous souhaiteriez le savoir.

Tous les conseils seraient très appréciés, alors merci d'avance.

Meilleures salutations, nhaa123

Répondre

1

Si vous essayez de le faire manuellement juste pour une ou deux expériences, il est facile. Essayez un outil comme Cheat engine qui est comme un peeker de processus gratuit et rapide et simple. Fondamentalement, il scanne l'espace mémoire du processus pour les valeurs clés données. Vous pouvez ensuite filtrer ces résultats de recherche initiaux ultérieurement. Vous pouvez également changer les valeurs que vous trouvez, en direct. Le lien ci-dessus montre un exemple rapide de l'utiliser pour trouver un score ou une valeur monétaire dans un jeu, et l'éditer en direct pendant que le jeu fonctionne.

+0

Merci beaucoup pour le lien. – nhaa123

0

sans avoir Binaires de débogage/DLLs des Apps, votre seule chance demande des pirates.

Normalement, vous pouvez vous connecter à un processus avec un débogueur, mais sans les symboles de débogage des binaires, vous ne voyez aucun nom de variable - juste des adresses mémoire. En outre, le code Flash/Shockwave s'exécute à l'intérieur d'un bac à sable à l'intérieur du navigateur pour éviter les failles de sécurité en manipulant le code Flash. Vous n'avez donc pas de chance réelle d'avoir accès au code Flash en cours d'exécution/au plugin exécutant le code Flash - sauf que vous avez une version manipulée d'un tel plugin.

Votre tâche est donc difficile à résoudre sans recourir à des méthodes moins légales. La prochaine chose difficile est la machine virtuelle - ceci pourrait être résolu en implémentant votre application en tant que solution client/serveur, où "inspector"/watchdog s'exécute en tant que serveur dans la machine virtuelle et le client demande le statut/contenu de la variable sur votre hôte normal. La communication pourrait être faite comme une simple connexion de socket.

Si vous avez la possibilité d'écrire votre propre plugin Flash/Shockwave, vous pourriez peut-être voir le contenu des variables.

Désolé, je ne peux pas vous aider davantage.

ciao, 3DH

Questions connexes