C++ Memorywrite = crash

08/20/2014 15:21 Terrat#1
Hallo,
habe in meiner DLL eine Funktion die in der Memory den Wert einer Adresse ändern soll...
Hier wie es aussieht aber ohne Adresse :D
Ps: Es funktioniert wen es vor den D3D Hook aufrufe
Code:
int address;
int * p;
address = 0xFFFFFFFF;//Nicht die echte Adresse
p = (int*)address;
*p=3918565441;
Hier drauf crasht der Prozess einfach.

Mit CE klappt es aber sprich es liegt nicht an der Adresse oder der Value.
08/20/2014 16:17 snow#2
Bist du dir sicher, dass du die entsprechenden Rechte hast, um in die .text Sektion zu schreiben / die op codes zu überschreiben?
Welches Resultat bekommst du, wenn du VirtualProtect verwendest?
08/20/2014 16:50 Terrat#3
Jetzt bin ich verwird nicht von dir.
Es ist ein d3d.
Er ruft die Funktion Hack() auf wen ein item true ist.
Wen ich es beim Start aufrufe sprich vor den Thread dan funktioniert es :/
08/21/2014 10:35 buFFy!#4
Woher sollen wir das denn wissen ohne weiteren Code oder Crashdumps? Du sagst uns ja nichtmal mit welcher Exception dein Programm crasht.
Dein Code von oben geht btw. auch einfacher ->

Code:
*(int*)0xDEADBEEF = 3918565441;
08/23/2014 00:01 Terrat#5
Quote:
Originally Posted by buFFy! View Post
Woher sollen wir das denn wissen ohne weiteren Code oder Crashdumps? Du sagst uns ja nichtmal mit welcher Exception dein Programm crasht.
Dein Code von oben geht btw. auch einfacher ->

Code:
*(int*)0xDEADBEEF = 3918565441;
Da Memorywrite auch nach den d3d hook funkt und wen ich es so aufrufe crasht es abee nur nach deb hook vor her gehts :) nana nutze jetzt Memorywrite
08/23/2014 00:28 ​Tension#6
Dann verwendet Memorywrite anscheinend VirtualProtect um die Region von READONLY ( vermute ich mal ) auf READWRITE zu setzen. Das kannst du mit VirtualQuery überprüfen ( soweit ich weiß macht CE das auch? ).
08/23/2014 09:39 Terrat#7
Quote:
Originally Posted by ​Tension View Post
Dann verwendet Memorywrite anscheinend VirtualProtect um die Region von READONLY ( vermute ich mal ) auf READWRITE zu setzen. Das kannst du mit VirtualQuery überprüfen ( soweit ich weiß macht CE das auch? ).
Habe den text so wie diesen vom Handy geschrieben.
Memorywrite klapt allgemein ohne virtual protect :) das meinte ich.
08/23/2014 12:45 Padmak#8
Ja, und er meinte, dass MemoryWrite offensichtlich VirtualProtect aufruft. Wenn du das machst, sollte es auch nicht mehr crashen, also probiers ruhig mal aus
Sonst brauchst du ja gar keine DLL injecten, dann kannst dus auch von außen machen

Padmak
08/23/2014 14:04 buFFy!#9
WriteProcessMemory ändert die page protection mit NtProtectVirtualMemory.
Wie gesagt, häng halt wirklich einfach mal OllyDBG an den Prozess und führ erst dann deinen Code aus, dann siehst du warum es crasht.
08/23/2014 16:54 Terrat#10
Quote:
Originally Posted by buFFy! View Post
WriteProcessMemory ändert die page protection mit NtProtectVirtualMemory.
Wie gesagt, häng halt wirklich einfach mal OllyDBG an den Prozess und führ erst dann deinen Code aus, dann siehst du warum es crasht.
Mhh ok hat mal jemand den msdn link davon finde den gerade net am handy.
08/23/2014 17:00 buFFy!#11
Quote:
Originally Posted by Dreamsläps View Post
Mhh ok hat mal jemand den msdn link davon finde den gerade net am handy.
Die meisten Nt Funktionen sind undokumentiert. [Only registered and activated users can see links. Click Here To Register...]
Das interne Äquivalent ist VirtualProtect, das ruft übrigens auch nur NtProtectVirtualMemory mit GetCurrentProcess auf.