Domanda

in Windows, consente di dire che ho usato DLL Injection per entrare in un altro processo. Ho anche fatto alcuni screencaptures della memoria sul processo che ho iniettate e conoscere la posizione dei dati che voglio tirare fuori. Diciamo che ci sono dati in un altro processo in 0xAAAAAAAA che contiene un certo valore. Come posso afferrare questo valore da quel processo in modo da poter usare nella mia app iniettando? Dal momento che sto iniettato nel processo, posso solo usare qualcosa come memcpy?

memcpy(value, 0xaaaaaaaa, 10);

Sto assumendo che è probabilmente più complessa di questo?

EDIT:. Per le risposte qui sotto, non vedo come WM_COPYDATA mi aiuta come lo è per l'invio di dati a un'altra applicazione, non per il recupero dei dati da un'applicazione esistente

È stato utile?

Altri suggerimenti

In Windows ogni processo affronta la propria memoria. Ciò significa che non si può fare qualcosa di simile memcpy avere due puntatori che puntano alla memoria di due processi differenti.

Si può considerare qualsiasi possibilità di comunicazione tra processi: memoria mappata file, socket, pipe con nome, i messaggi di finestra evento

.

Ecco ulteriori informazioni su IPC

Prova WM_COPYDATA e prendere l'aiuto da MSDN relative ad esso.

I seguenti meccanismi IPC sono supportati da Windows:

Appunti
   COM
   Data Copy
   DDE
   Mapping File
   mailslots
   tubi
   RPC
   Di Windows Sockets

Interprocess Communications

nel tuo caso vorrei usare WM_COPYDATA Messaggio

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top