Question

dans Windows, permet de dire que je l'ai utilisé l'injection de DLL pour entrer dans un autre processus. Je l'ai aussi fait quelques screencaptures de la mémoire sur le processus que j'ai injecté dans et connaître l'emplacement des données que je veux sortir. Disons que il existe des données dans l'autre processus à 0xAAAAAAAA qui contient une certaine valeur. Comment puis-je saisir cette valeur de ce processus afin que je puisse l'utiliser dans mon application injecter? Depuis que je suis injecté dans le processus, puis-je utiliser quelque chose comme memcpy?

memcpy(value, 0xaaaaaaaa, 10);

Je suppose qu'il est probablement plus impliqué que cela?

EDIT:. Pour les réponses ci-dessous, je ne vois pas comment WM_COPYDATA me aide que pour l'envoi de données à une autre application, et non pour la récupération de données à partir d'une application existante

Était-ce utile?

Autres conseils

Dans Windows tous les processus adresses de sa propre mémoire. Cela signifie que vous ne pouvez pas faire quelque chose comme memcpy ayant deux pointeurs qui pointent à la mémoire de deux processus différents.

Vous pouvez envisager toute option de communication interprocessus: fichiers mappés en mémoire, sockets, des pipes nommés, des messages de fenêtre d'événement

.

Voici plus d'informations sur IPC

Essayez WM_COPYDATA et prendre l'aide de MSDN concernant.

Les mécanismes IPC suivants sont pris en charge par Windows:

Presse-papiers
   COM
   Data Copy
   DDE
   Cartographie du fichier
   mailslots
   pipes
   RPC
   Windows Sockets

plus de détails ici Interprocess Communications

dans votre cas, j'utiliser WM_COPYDATA message

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top