PDA

View Full Version : [C#][unsafe] Trovare e editare valori in memoria


nikel
24-05-2010, 10:05
buongiorno.

vorrei creare un programma che mi permetta di trovare un certo valore in memoria ed editarlo.

la ricerca avviene per mezzo della modifica del valore stesso cioè:

supponendo di avere un "giochino" dove il personaggio ha 80hp
cerco il valore 80 in memoria
pongo tutti quelli trovati in una lista.
modifico l'80 dell'omino prendendolo a testate:D diciamo a 75
cerco tra i valori trovati prima quelli che sono ora 75 e così via
fino ad avere un solo valore.

a questo punto voglio poterlo editare.

come posso fare?

avevo pensato a scandire la memoria cercando prima i valori int poi i byte ecc...(cosa che peraltro non saprei come fare se non midificando l'indirizzo di un puntatore) però effettivamente non so in realtà come sia suddivisa la ram giusto?

Kralizek
24-05-2010, 10:37
potrei dire una cazzata, ma dubito l'OS ti permetta di entrare e modificare nella memoria privata di un altro processo ;)

nikel
24-05-2010, 13:59
non so a modificare pero per quanto riguarda la lettura non dovrebbero esserci problemi (ho provato con un codice) e me li ha fatti leggere dal 64esimo kb in su

ho usato intptr (che purtroppo accetta solo valori int..) che in realta mi ha stupito sia arrivato oltre i 16bit :confused:

(ho fatto una prova fino a 128Kb)

PS. vorrei abbandonare il puntatore managed ;)

nuovoUtente86
24-05-2010, 14:27
Se hai i permessi necessari, perchè non utilizzi l' iniezione di codice e la createremotethread/NTcreatethread

nikel
24-05-2010, 15:48
Se hai i permessi necessari, perchè non utilizzi l' iniezione di codice e la createremotethread/NTcreatethread

perchè non saprei da dove cominciare :D

seriamente è la prima volta che sento NTcreatethread a cosa serve?

nuovoUtente86
24-05-2010, 16:14
serve a creare, avendo i privileggi, un thread all 'interno di un processo remoto, avendo la possibilità di fargli eseguire una funziona precedentemente allocata nello spazio di indirizzamento del processo ospite.

nikel
24-05-2010, 17:31
interessante!! lo tengo come soluzione di riserva nel caso non trovassi niente di utile :D

grazie!

nikel
24-05-2010, 17:34
Update..

forse ho trovato.

http://www.codeproject.com/KB/cs/sojaner_memory_scanner.aspx

cosa ne pensate?