vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Windows API
WriteProcessMemory 
Autor: psyK***er
Datum: 01.11.09 18:07

Hi zusammen,
ich versuche gerade mit WriteProcessMemory eine Speicherzelle in nem Spiel zu ändern..

Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As _
  Integer, ByVal lpBaseAddress As Integer, ByVal lpBuffer As Long, ByVal nSize _
  As Integer, ByVal lpNumberOfBytesWritten As Integer) As Long
 
 Public Function SetValue(ByVal Address As Long, ByVal Value As Single)
        Dim hproc As IntPtr
        Dim bytes_written, return_value As Long
        If True Then
 
            hproc = OpenProcess(Process_VMOperation Or Process_VMWrite, False, _
              MainForm.Test_Process.Id)
            return_value = WriteProcessMemory(hproc, Address, Value, 4, _
            bytes_written)
            MainForm.Debug("write handle: " & hproc.ToString)
            MainForm.Debug("Return value:" & return_value)
            MainForm.Debug("Bytes written: " & bytes_written)
            CloseHandle(hproc)
            Return 1
        Else
            Return 0
        End If
    End Function
Die Speicheradresse stimmt, auslesen kann ich den Wert.
Beim Versuch zu schreiben passiert nix..
Handle und Rückgabewert von WriteProcessMemory sind <>0 wird also meines wissens fehlerfrei ausgeführt, aber bytes_written = 0 und der Wert im Speicher ändert sich nicht.

Vllt. hat jemand eine Idee was ich falsch mache, thnx
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WriteProcessMemory 
Autor: ModeratorMartoeng (Moderator)
Datum: 01.11.09 18:56

Ich würde mal vermuten, die Definition der API-Funktion ist falsch.

<DllImport("kernel32.dll", SetLastError=true)> _
Public Function WriteProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByVal lpBuffer As Byte(), ByVal nSize As System.UInt32, <Out()> ByRef lpNumberOfBytesWritten As Int32) As Boolean
End Function


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WriteProcessMemory 
Autor: icetea123
Datum: 01.11.09 19:33

Darf man fragen welches Spiel du da manipulierst und woher du weißt, an welcher Adresse du schreiben musst? Interessiert mich auch mal.

MfG,
icetea

-----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WriteProcessMemory 
Autor: psyK***er
Datum: 01.11.09 20:49

Du hast Recht, klappt.
Das hat man von copy&paste..ein Blick auf pinvoke hätte gereicht x.x

Danke vielmals
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WriteProcessMemory 
Autor: psyK***er
Datum: 01.11.09 20:53

Hi Icetea,
das ganze wird ein kleiner Bot für ein MMO.

Gibt verschiedene Tools um an die Speicheradressen zu kommen.
Ich nehm da CheatEngine, du kannst nach diversen Kriterien suchen..
z.B. Wert der Zelle, ob geändert oder nicht..etc..
Ist auch sehr bequem da die Pointer zu finden.

Google dir einfach mal ein Tutorial

Cheers, Andreas
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WriteProcessMemory 
Autor: icetea123
Datum: 01.11.09 22:18

vielen dank für die infos

MfG,
icetea

-----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WriteProcessMemory 
Autor: Dirge
Datum: 15.01.10 03:20

CheatEngine wird von vielen AntiCheat-Systemen (z.B. im Battle.net) erkannt -> passt also auf was ihr da macht!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WriteProcessMemory 
Autor: icetea123
Datum: 15.01.10 12:39

hat mich halt mal interessiert, aber wirklich gemacht habe ich nichts damit.

-----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WriteProcessMemory 
Autor: Benutzername
Datum: 18.01.10 19:56

Nunja, CheatEngine muss man nicht zwingend benutzen ;)
Gibt genügend Alternativen; "T-Search" ist auch nicht so schlecht
Oder wenn man ganz Hardcore ist: "Olly DGB", aber dafür muss/sollte man ASM könnten oO...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel