WriteProcessMemory

07/11/2012 18:07 Deledt#1
HeyHo,

Ich wollte ein Autoit Script in C++ umwandeln doch leider klappt das nicht so
wie ich will ...

Autoit Code ::

Code:
$Adresse = 0x00477786 
$Prozess = _memoryopen(ProcessExists("NostaleX.dat")) 
_MemoryWrite($Adresse,$Prozess,0xD9,'byte') 
_MemoryWrite($Adresse+1,$Prozess,0x05,'byte') 
_MemoryWrite($Adresse+2,$Prozess,0x9C,'byte') 
_MemoryWrite($Adresse+3,$Prozess,0x77,'byte') 
_MemoryWrite($Adresse+4,$Prozess,0x47,'byte') 
_MemoryWrite($Adresse+5,$Prozess,0x00,'byte') 
MsgBox(64,"Info","Done.")

Mein Code ::
Code:
 DWORD Addr    = {0x00477786};
    DWORD Offset  = 0xD9;
    DWORD Offset1 = 0x05;
    DWORD Offset2 = 0x9C;
    DWORD Offset3 = 0x77;
    DWORD Offset4 = 0x47;
    DWORD Offset5 = 0x00;

    WriteProcessMemory(Handle, (BYTE*) Addr, &Offset,  sizeof(int), NULL);
    WriteProcessMemory(Handle, (BYTE*) Addr, &Offset1, sizeof(int), NULL);
    WriteProcessMemory(Handle, (BYTE*) Addr, &Offset2, sizeof(int), NULL);
    WriteProcessMemory(Handle, (BYTE*) Addr, &Offset3, sizeof(int), NULL);
    WriteProcessMemory(Handle, (BYTE*) Addr, &Offset4, sizeof(int), NULL);
    WriteProcessMemory(Handle, (BYTE*) Addr, &Offset5, sizeof(int), NULL);
Vlt kann mir jemand helfen ;)
07/11/2012 18:24 yihaaa#2
sizeof(int) muss zu sizeof(unsigned char) oder gleich zu 1.

MfG
07/11/2012 18:57 Lazeboy#3
ich würde es einfach zusammenfassen xD

Code:
DWORD Addr    = 0x00477786;
BYTE Offset[] = {0xD9, 0x05, 0x9C, 0x77, 0x47,0x00};

WriteProcessMemory(Handle, (BYTE*) Addr, &Offset,  sizeof(Offset), NULL);
07/11/2012 19:37 Deledt#4
Danke an euch beiden :) ,

Habe es schon gelöst aber danke für die antworten :)


#Kann Geschlossen werden
07/11/2012 19:50 MrSm!th#5
Quote:
Code:
_MemoryWrite($Adresse,
_MemoryWrite($Adresse+1
_MemoryWrite($Adresse+2
_MemoryWrite($Adresse+3
_MemoryWrite($Adresse+4
_MemoryWrite($Adresse+5
Code:
    WriteProcessMemory(Handle, (BYTE*) Addr
    WriteProcessMemory(Handle, (BYTE*) Addr
    WriteProcessMemory(Handle, (BYTE*) Addr
    WriteProcessMemory(Handle, (BYTE*) Addr
    WriteProcessMemory(Handle, (BYTE*) Addr
    WriteProcessMemory(Handle, (BYTE*) Addr
Merkste was?

#closed