07.10.2011, 23:40
(07.10.2011, 23:32)chesar schrieb: Geht leider nicht, oder wie würdet hier so ein Pointer schreiben?Hey,
ich würde das folgendermaßen machen (Ist nur ein Konzept, Syntax u.s.w musst du natürlich anpassen):
ReadProcessMemory, BaseAddress, EndAddress (also die erste Adresse - in deinem Beispiel 0x01E7604C)
Das ganze wird dann in EndAddress gespeichert.
Dann addierst du auf die EndAddress dein erstes Offset und machst wieder das gleiche.
ReadProcessMemory, EndAddress, EndAddress
Dann wieder add EndAddress, offset2
und ReadProcessMemory, EndAddress, EndAddress u.s.w bis du das letzte Offset auch durch hast.
In MASM sieht das so:
[code=ASM]
invoke ReadProcessMemory, hProcess, lpAddress, addr Buffer, 4, 0
mov eax, offset Buffer
mov eax, [eax]
add eax, nOffset1
invoke ReadProcessMemory, hProcess, eax, addr Buffer, 4, 0
mov eax, offset Buffer
mov eax, [eax]
add eax, nOffset2
invoke ReadProcessMemory, hProcess, eax, addr Buffer, 4, 0
mov eax, offset Buffer
mov eax, [eax]
add eax, nOffset3
invoke ReadProcessMemory, hProcess, eax, addr Buffer, 4, 0
mov eax, offset Buffer
mov eax, [eax]
add eax, nOffset4
invoke ReadProcessMemory, hProcess, eax, addr Buffer, 4, 0
mov eax, offset Buffer
mov eax, [eax]
add eax, nOffset5
mov lpAddress, eax
[/code]
"Auf dieser Welt gibt es mehr Scheisse als auf Festivalklos"
![[Bild: hoglogo_smalpxga.jpg]](http://h-2.abload.de/img/hoglogo_smalpxga.jpg)