Desidero accedere a un determinato indirizzo di un processo. Ma per quello ho bisogno di ottenere l'indirizzo di base del processo prima. Sto usando uno strumento per vedere se effettivamente lo sto facendo bene. Lo strumento mostra che ho bisogno di quanto segue: "app.exe"+0x011F9B08 = 0x119F8300
Ottieni l'indirizzo di base del processo
Ho pensato che avrei potuto ottenere l'indirizzo di base di un processo tramite OpenProcess()
, ma che mi dà: 0x0000005c
di conseguenza. Non penso sia giusto? Almeno, non quello di cui ho bisogno.
penso che l'indirizzo di base ho bisogno è: 0x119F8300 - 0x011F9B08 = 0x107FE7F8 <-- base?
Questo è il mio codice:
hWindow = FindWindow(NULL, lpWindowName);
if(hWindow)
{
GetWindowThreadProcessId(hWindow, &dwProcId);
if(dwProcId != 0)
{
// hProcHandle -> 0x0000005c
hProcHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcId);
}
else
{
return 0;
}
}
Come posso ottenere l'indirizzo di base del processo che ho aperto?
Cosa intendete esattamente con "l'indirizzo di base di un processo"? – NPE
Forse è necessario conoscere la [memoria virtuale] (http://en.wikipedia.org/wiki/Virtual_memory) –
Stai cercando di leggere la memoria di un altro processo in esecuzione e devi conoscere l'indirizzo di base in cui è stata scattata l'immagine mappato nello spazio degli indirizzi virtuali di quel processo? –