1EDA70 Skrevet 15. april 2017 Del Skrevet 15. april 2017 (endret) Jeg har hatt problemer med et svært irriterende problem i det siste...Hvordan bruker jeg WriteProcessMemory funksjonen i C++ med flere Offsets? Dette bildet viser hvordan ("client.dll" + 04AF4B34) med alle offsettsa henviser til addressen ("06D1FD34") ' Så hvordan skal jeg egentlig bruke WriteProcessMemory, med så mange offsets? Mitt forslag til hvordan man gjør dette ser noe sånt ut: DWORD offset1 = 0x1C; DWORD offset2 = 0x20; DWORD offset3 = 0x568; DWORD offset4 = 0x134; DWORD base = 0x04AF3C94; DWORD pointer; DWORD pointer2; DWORD pointer3; DWORD pointer4; DWORD pointer5; ReadProcessMemory(handle, LPVOID(base), &pointer, sizeof(pointer), 0); ReadProcessMemory(handle, LPVOID(pointer + offset1), &pointer2, sizeof(pointer2), 0); ReadProcessMemory(handle, LPVOID(pointer2 + offset2), &pointer3, sizeof(pointer3), 0); ReadProcessMemory(handle, LPVOID(pointer3 + offset3), &pointer4, sizeof(pointer4), 0); ReadProcessMemory(handle, LPVOID(pointer4 + offset4), &pointer5, sizeof(pointer5), 0); int value = 500; WriteProcessMemory(handle, LPVOID(pointer5), &value, sizeof(value), 0); Som du sikkert ser, så adderer jeg hver "pointer" med en ny offset hver gang...Men dette fungerer jo ikke? Hva kan det store problemet til dette mysteriet være? Endret 15. april 2017 av 1EDA70 Lenke til kommentar
ahw_ Skrevet 15. april 2017 Del Skrevet 15. april 2017 (endret) Det kan være forskjellige ting som gjør at noe ikke fungerer som forventet. Jeg anbefaler å starte med å begrense de mulige årsakene til problemet. Lag helst den enkleste kodesnutten som reproduserer problemet og finn ut hvorfor du ikke får forventet resultat. Har du f.eks. sjekket at ReadProcessMemory ikke feiler? Du bør også sjekke verdiene/adressene du leser inn med det du ser i Cheat Engine. Du kan også ikke regne med at adressen til client.dll er den samme hver gang den lastes inn i prosessen. Er adressen base (0x04AF3C94) relativ til client.dll eller er det en «absolutt» adresse? Jeg husker ikke i farten om det er greit å bruke resultatet fra GetModuleHandle/Ex (samme som «base of image» tror jeg) for å gjøre de relative adressene du ser i Cheat Engine om til «absolutte» adresser, eller om du også må bruke «base of code» fra PE-strukturen (se ImageNtHeader og IMAGE_OPTIONAL_HEADER). Endret 20. april 2017 av ahw_ Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå