begin process at 2008 05 16 04:39:09
1 173 215 membres
57 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : conversion adresse mémoire [ Système / Mémoire ] (PHIL63)

conversion adresse mémoire le 24/09/2007 13:22:05

PHIL63
Membre Club
Bonjour à tous,

J'ai une question peut être bête mais après avoir bien cherché je ne trouve rien qui me mette sur la voie... donc...

j'ai une adresse mémoire sous la forme 0x008EF660
comment l'intégrer dans VirtualProtectEx() ?

Car comme ceci
VirtualProtectEx(HRBRWindow, 0x008EF660,4,PAGE_READWRITE,OldProtect);
j'ai bien évidemment une erreur

Philippe DROUET

Re : conversion adresse mémoire le 24/09/2007 16:33:41

f0xi
Membre Club
(Admin CS)
Réponse acceptée !


0x... c'est le format des nombres hexadecimaux en C/C++ et autre langages C like mais pas en Delphi.

en Delphi, un nombre hexadecimal se note : $xxxxxxxxx

exemple avec ton code :

var MA : DWORD;
begin
  MA := $008EF660;
  VirtualProtectEx(HRBRWindow, MA, 4, PAGE_READWRITE, OldProtect);
...
end;



deefsign.gif

Re : conversion adresse mémoire le 24/09/2007 16:56:43

PHIL63
Membre Club
Merci beaucoup f0xi.

Philippe DROUET

Re : conversion adresse mémoire le 24/09/2007 17:38:50

PHIL63
Membre Club

f0xi s'il te plais, pourrais tu encore me donner un petit coup de pouce ?

en fait j'ai ça en C/C++ :

DWORD OldProtect = 0;
DWORD damageBlockAddress = 0;
VirtualProtectEx(HRBRWindow,(LPVOID)0x008EF660,4,PAGE_READWRITE,&OldProtect);
ReadProcessMemory(HRBRWindow,(LPCVOID)0x008EF660, &damageBlockAddress, 4, NULL);
damageBlockAddress += 0x620;
VirtualProtectEx(HRBRWindow,(LPVOID)damageBlockAddress,4,PAGE_READWRITE,&OldProtect);
ReadProcessMemory(HRBRWindow,(LPCVOID)damageBlockAddress, &damageBlockAddress, 4, NULL);
.....
DWORD value = 0;
DWORD bytesWritten = 0;
DWORD leftDoorOffset = damageBlockAddress + 0x36C;
VirtualProtectEx(hProcess,(LPVOID)leftDoorOffset,4,PAGE_READWRITE,&OldProtect);
WriteProcessMemory(hProcess, (LPVOID)leftDoorOffset, &value, 4, &bytesWritten);


et j'aurais besoin de le traduire en delphi....
Avec les renseignements que tu m'as fourni, jusqu'au premier VirtualProtectEx j'arrive à compiler mais au niveau du ReadProcessMemory j'ai une erreur me disant que les paramètres var originaux et formels doivent être identiques !!
J'ai ça comme déclarations :
-    HRBRWindow : THandle;
-    dwProcessId, OldProtect, damageBlockAddress: dword;
et j'ai tenté de comiler ça :

OldProtect := 0;
damageBlockAddress := 0;
MA := $008EF660;
VirtualProtectEx(HRBRWindow, Ptr(MA),4,PAGE_READWRITE,OldProtect);
ReadProcessMemory(HRBRWindow, Ptr(MA), Ptr(damageBlockAddress), 4, nil);
...

merci en tout cas pour ta première réponse.



Philippe DROUET


Classé sous : conversion, adresse, mémoire, virtualprotectex

Participer à cet échange

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS