Home of Gamehacking - Archiv

Normale Version: Pointer Schreiben?
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6
Moin Moin,

Wie kann ich eigentlich am besten ein Pointer in VB Schreiben?
Im Trainermodul habe ich nichts passendes gefunden.
z.b. für Adresse vom Poitner 1969AC8 Offset 10
Ich überarbeite derweil das Trainermodul und füge eine PointerFunktion hinzu,
dauert allerdings noch ein bisschen.
Hey,
sollte so funktionieren:
[code=vb]
Public Function WritePointer(ByVal Pointer As Int32, ByVal Buffer As Int32, ByVal OffSet() As Int32)
For Each I As Integer In OffSet
ReadProcessMemory(pHandle, Pointer, Pointer)
Pointer += I
Next
WriteProcessMemory(pHandle, Pointer, Buffer, 4, 0)
Return 0
End Function
[/code]
Hmm
könntest du mit zeigen wo ich das Offset und die P Adresse rein Schreinen muss?
bekomme bei mir nur Fehler -.-
(13.03.2011, 20:26)chesar schrieb: [ -> ]Hmm
könntest du mit zeigen wo ich das Offset und die P Adresse rein Schreinen muss?
bekomme bei mir nur Fehler -.-

Hey,
du musst einfach nur die Funktion mit den richtigen Parametern aufrufen. Pointer und Buffer sind normale Variablen vom Typ Integer und OffSet ist ein Array vom Typ Integer.
Versteh das alles nicht so richtig -.-

Hab hier noch was anderes gefunden.

Code:
Public Function WriteFloatPointer(ByVal ProcessName As Process, ByVal Base As Integer, ByVal Offset As Short, ByVal Value As Single)

        Dim fullAddress As Long

        Dim GameLookUp As Process() = Process.GetProcessesByName(ProcessName.ProcessName)

        If GameLookUp.Length = 0 Then

            End

        End If

        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, GameLookUp(0).Id)

        ReadProcessMemory(processHandle, Base, RBuff, 4, Nothing)

        fullAddress = RBuff + Offset

        WriteFloatMemory(processHandle, fullAddress, Value, 4, Nothing)

        CloseHandle(processHandle)

    End Function


Wie kann ich das Schreiben?

Hey,
du weisst schon das in deinem Codeschnipsel lediglich gecheckt wird ob das Spiel schon gestartet wurde?

Also musst du jetzt, nachdem du das ProcessHandle via Process.GetProcessesByName bekommen hast, in den Prozess via WriteProcessMemory deinen Wert schreiben. Wenn du also einen Pointer hast dann musst du nach folgendem Schema vorgehen:

Code:
ReadProcessMemory(pHandle, StaticAddress, Buffer) ;pHandle == ProcessHandle und StaticAddress == die statische Adresse, Buffer == Variable in der das Gelesene gespeichert wird

Add Buffer, Offset_X
ReadProcessMemory(pHandle, Buffer, Buffer)
Add Buffer, Offset_X+1
ReadProcessMemory(pHandle, Buffer, Buffer)
u.s.w

und dann haste iwan deine Adresse und schreibst dann via WriteProcessMemory deinen Wert dahin.

Um mit dem jetztigen VB.Net TrainerModul nen Pointer + Offset (1969AC8 + 10) auszulesen,
gehst du folgendermaßen vor...


[code=VB]
Dim pointer As Int32
Dim value As Int32

pointer = Read_Long(&H1969AC8)
value = Read_Long(pointer + &H10)[/code]


~DNA
Und um ein Pointer zu schreiben?

Write_Long geht leider net :(
Um wieder etwas zu schreiben folgendes:

[code=VB]
Dim pointer As Int32

pointer = Read_Long(&H1969AC8)
Write_Long(pointer + &H10, WERT)[/code]

wobei WERT natürlich zu ersetzen ist.
Seiten: 1 2 3 4 5 6