Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 10:41

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



VB.NET WriteMemory mit Multipointern ?????

Discussion on VB.NET WriteMemory mit Multipointern ????? within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
VB.NET WriteMemory mit Multipointern ?????

Hallo Com,

Ich hab ne Frage: ich versuche zum testen in Solitär ein Trainer zu basteln,
ich habe mir da den Basepointer rausgesucht und versucht den so zu benutzen, hier ein Beispiel:

PHP Code:
 Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click
        Dim p 
As Process() = Process.GetProcessesByName("Solitaire")
        If 
Not p.Length 0 Then
            Memory
.Writememory(p(0), &HFFD0AFA8 + &HE + &H32CInt(TextBox1.Text), 4)
        Else 
dabei scheisst mir aber Solitär ab..... (Mag mich nicht:face palm



Hier habe ich unten die Adresse (FFD0AFA8) ist der Basepointer
und dazu habe ich noch die 2 Offsets... 14 und 50

was mache ich falsch? Weis hier einer eine Lösung zu meinem Problem?

14 = &HE
50 = &H32

oder verstehe ich da etwas falsch?

mfg
.Scare™ is offline  
Old 10/21/2013, 20:40   #2
 
​Tension's Avatar
 
elite*gold: 110
Join Date: Jun 2013
Posts: 599
Received Thanks: 510
So funktioniert das nicht mit Pointern, dass solltest du dir nochmal durchlesen.
kannst du ja auch für VB übersetzen.
Was du machen musst:
&HFFD0AFA8 auslesen, &H32 addieren und den Wert dann auslesen und &HE addieren, dies dann erneut auslesen sprich:
Code:
ReadMemory(ReadMemory(ReadMemory(&HFFD0AFA8,4)+&H32,4)+&HE,4)
(Wobei ReadMemory halt den Buffer returnt und die 4 halt die größe zum Auslesen ist. ( 4 Bytes )
​Tension is offline  
Thanks
1 User
Old 10/21/2013, 20:56   #3
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
Lightbulb

Quote:
Originally Posted by Ten$ion View Post
So funktioniert das nicht mit Pointern, dass solltest du dir nochmal durchlesen.
kannst du ja auch für VB übersetzen.
Was du machen musst:
&HFFD0AFA8 auslesen, &H32 addieren und den Wert dann auslesen und &HE addieren, dies dann erneut auslesen sprich:
Code:
ReadMemory(ReadMemory(ReadMemory(&HFFD0AFA8,4)+&H32,4)+&HE,4)
(Wobei ReadMemory halt den Buffer returnt und die 4 halt die größe zum Auslesen ist. ( 4 Bytes )
Vielen dank für die rasche Antwort.!

Also wen ich dies nun richtig verstehe, kann ich es so machen:
BaseAdresse = ReadMemory(ReadMemory(ReadMemory(&HFFD0AFA8,4)+&H3 2,4)+&HE,4)

Und nun sollte ich auf die BaseAdresse schreiben können?

Ich verstehe c++ leider nicht so wirklich 😁😁

Nochmals danke fürs schreiben.

Mfg
.Scare™ is offline  
Old 10/21/2013, 21:50   #4
 
​Tension's Avatar
 
elite*gold: 110
Join Date: Jun 2013
Posts: 599
Received Thanks: 510
Quote:
Originally Posted by .Scare™ View Post
Vielen dank für die rasche Antwort.!

Also wen ich dies nun richtig verstehe, kann ich es so machen:
BaseAdresse = ReadMemory(ReadMemory(ReadMemory(&HFFD0AFA8,4)+&H3 2,4)+&HE,4)

Und nun sollte ich auf die BaseAdresse schreiben können?

Ich verstehe c++ leider nicht so wirklich 😁😁

Nochmals danke fürs schreiben.

Mfg
Das war ein Pseudo-Code Beispiel die API-Funktion heißt ReadProcessMemory und hat mehr Parameter.

Ich wollte dir zeigen, wie Pointer ausgelesen werden.
Zeig mir mal deine MemoryRead Funktion von der Klasse die du verwendest ( also Parameter usw. ) dann kann ich dir das Schreiben.
Jedenfalls ist das so:
Du liest die Base Adresse aus und addierst das erste Offset hinzu, danach liest du das Ergebnis davon wieder aus ( neue Adresse ) und fügst dort das zweite Offset hinzu und davon liest du auch das Ergebnis aus und dann hast du deine Dynamische Adresse. Danach kannst du deine WriteMemory Funktion aufrufen und die Adresse verwenden.
​Tension is offline  
Thanks
1 User
Old 10/21/2013, 22:05   #5
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
Danke dir, ich glaube ich habe es gepeilt, ansonsten schreibe ich hier morgen nochmals hin. Danke für deine bereitschaft mir zu helfen.

👍
.Scare™ is offline  
Old 10/21/2013, 22:10   #6


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Ganz nebenbei:
Die Offsets in CE sind bereits hexadezimal.

Der letzte Schritt ist übrigens zu viel. 14 ist bereits das letzte Offset und das Ergebnis ist die Zieladresse. Wenn du an der liest, erhälst du keine weitere Adresse, sondern den dortigen Wert (Punkte oder was auch immer du ändern willst).
MrSm!th is offline  
Thanks
2 Users
Old 10/21/2013, 22:28   #7
 
​Tension's Avatar
 
elite*gold: 110
Join Date: Jun 2013
Posts: 599
Received Thanks: 510
Oh stimmt sorry, arbeite nicht alt zu viel mit Pointern bzw. ist es lange her das ich welche verwendet habe.

@.Scare™:
gerne, falls du noch Fragen hast kannst du dich auch per PN melden, ich kann versuchen zu helfen ( kann aber kein VB könnte dich höchstens in die richtige Richtung leiten )
​Tension is offline  
Thanks
1 User
Old 10/22/2013, 18:27   #8
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
Guten Abend miteinander, so ich bin nun wider am PC =)

Also ich arbeite mit dem Modul:
(Auch von epvp gefunden)

Nu bekomm ichs aber nicht so hin das ich es so auslesen kann wie du es hier beschrieben hast :
Quote:
ReadMemory(ReadMemory(ReadMemory(&HFFD0AFA8,4)+&H3 2,4)+&HE,4)
Mfg .Scare™
.Scare™ is offline  
Old 10/22/2013, 19:00   #9
 
​Tension's Avatar
 
elite*gold: 110
Join Date: Jun 2013
Posts: 599
Received Thanks: 510
sollte so gehen:
Code:
Dim iPointer As Integer = ReadLong(Prozess, ReadLong(Prozess, &HFFD0AFA8)+&H32)) + &HE
und dann halt
Code:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
        Dim p As Process() = Process.GetProcessesByName("Solitaire") 
        If Not p.Length = 0 Then 
            Dim iPointer As Integer = ReadLong(p(0), ReadLong(p(0), &HFFD0AFA8)+&H32)) + &HE
            Memory.Writememory(p(0), iPointer, CInt(TextBox1.Text), 4) 
        Else
sollte so funktionieren.
​Tension is offline  
Thanks
1 User
Old 10/22/2013, 19:57   #10
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
Hallo Ten$ion, Danke für deine Guten Ratschläge, so wie du es geschriben hast, geht es nun prima.

NUR habe ich das gefühl das ich nun etwas falsch mache mit den Pointern. wen ich das Spiel neu starte, geht die Adresse nicht mehr, obwohl ich ja eine Grüne hatte... kann das sein?

mfg

Hier mein Bild von CE & meinem Code


So geht es.. wen ich das spiel neu starte geht es nimma. Liegt das irgentwie an dem "Grünen" Pointer?

----------------------------------------------------------------------------

soo ich habe es nun halber hinbekommen.. das Tool geht, aber ich glaube das Solitär keinen wirklichen basepointer hatt, kann das sein?



Die grüne Adresse sollte ja der BasePointer sein wen ich das nicht Falsch verstehe, aber dieser verändert sich auch immer nach einem Neustart...

mfg
.Scare™ is offline  
Old 10/31/2013, 12:30   #11
 
DeinMud's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 990
Received Thanks: 127
1. Sind das Konstanten (Deklaration mit Const)
2. Integer.Parse(Textbox1.Text) & nicht Cint(Textbox1.Text)
3. ival.ToString & nicht Cstr(ival)

Hier mal was zum lesen für dich:
DeinMud is offline  
Reply


Similar Threads Similar Threads
Writememory? [VB08]
08/22/2010 - .NET Languages - 0 Replies
Wie Schreibe ich die Adressen in VB2008? 0x004DDF77 orig bytes: 0xE8, 0x44, 0x97, 0x01, 0x00 patch: 0x90, 0x90, 0x90, 0x90, 0x90 OR 0x004F76C0 orig: 0x83, 0xEC, 0x0C patch: 0xC3, 0x90, 0x90



All times are GMT +1. The time now is 10:43.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.