C# WriteProcessMemory brauche dringend hilfe

06/21/2011 21:55 dosenbier255#1
Hey, also dies ist mein erstes Thema hier bei elitepvpers und ich verfolge schon seit langdem viele Themen.

Ich hoffe mein Thema passt hier irgendwo rein und wenn es hier falsch ist, entschuldgige ich mich dafür ;)

Also nun gut wie der Titel schon sagt habe ich ein Problem...

Ich weis wie ich die Pointer ( mit cheat engine ) finde und auch auslese

HTML Code:
Memory mem = new Memory("inkball");
            
            int rekord = mem.ReadPointer(0x002F5FBC);

            Console.WriteLine("Rekord: {0}", rekord);
so in der Art mit dem Beispiel an "Inkball"...

Jetzt ist die Frage, wie kann ich das dauerthaft in einer Konsolenanwendung aktualisieren also sodass es immer auf dem neuesten Stand ist und wie ( die große Frage... ) kann ich die Werte von den Pointern ändern?

habe schon viel google benutz ( und ja ich kenne die seite [Only registered and activated users can see links. Click Here To Register...] ) und sehr viel interesantes gefunden wie

HTML Code:
Process[] proc = Process.GetProcessesByName("1602"); 

            if (proc.Length == 0) 
            { 
                MessageBox.Show("No Processes found."); 
                return; 
            } 

            Process po; 

            po = proc[0]; 

            IntPtr rhdl = OpenProcess(0x10, false, (uint)po.Id); //ReadAccess 
            IntPtr whdl = OpenProcess(0x20, false, (uint)po.Id); //WriteAccess 
            if (rhdl == null) 
            { 
                MessageBox.Show("Readhandle nicht erstellt.", "Fehler!"); 
                return; 
            } 
            if (whdl == null) 
            { 
                MessageBox.Show("Writehandle nicht erstellt.", "Fehler!"); 
                return; 
            } 
            byte[] bytes = new byte[4]; 
            uint adress = 0x560264; 
            uint size = sizeof(int); 
            uint rw = 0; 
            bool read; 
            read = ReadProcessMemory(rhdl, (IntPtr)adress, bytes, (UIntPtr)size, ref rw); 
            if (!read) 
            { 
                MessageBox.Show("Fehlschlag beim Lesen."); 
                return; 
            } 
            else 
            { 
                MessageBox.Show(BitConverter.ToInt32(bytes, 0).ToString(), "Anzahl Geld:"); 
            } 
            int money = BitConverter.ToInt32(bytes, 0); 
            money = money + 10000; 
            byte[] bytes2 = new byte[4]; 
            bytes2 = BitConverter.GetBytes(money); 
            bool write; 
            write = WriteProcessMemory(whdl, (IntPtr)adress, bytes2, (UIntPtr)size, ref rw); 
            if (write) 
                MessageBox.Show("Write erfolgreich!"); 
            else if (!write) 
            { 
                int error = Marshal.GetLastWin32Error();               
                MessageBox.Show(" Write Fehlgeschlagen. Errorcode: " + error.ToString(), "Fehler!"); 
                return; 
            } 
Das hilft mir zwar etwas hab auch damit einiges Probiert doch C# streicht die hälfte rot an wenn ich was daraus mache :D
06/21/2011 22:07 lolkenschlol#2
bei welchem spiel ? zumindest ich hab ka
06/21/2011 23:25 Shqiptare#3
Is ja voll hilfreich deine Antwort lolkenschlol ^^

Poste dies mal in die e*pvp Coder sektion die gibt es hier nämlich,
dort kennen sich die Leute besser aus.
06/22/2011 09:38 lolkenschlol#4
shqiptare gib mir doch einfach ein thanks
das geht erstens auf dauer und zweitens geb ich dir eins back :awesome:
und es spart nervige post
also
[Only registered and activated users can see links. Click Here To Register...]