Announcement

Collapse
No announcement yet.

ReadProcessMemory

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ReadProcessMemory

    Hi
    Ich versuche eine bestimmte Ram Adresse aus einem Programm zu lesen. Es funktioniert auch fast, aber
    ich weiss nicht in welchem Format ich die Variable setzen muss um die Adresse (zb 0x00CA9008) zuzuweisen
    ohne dass es ein Fehler gibt. Ich hab die Var dann einfach auf Long gesetzt und die Adresse in Long um-
    gerechnet, aber das geht leider auch nicht, denn ich bekomme immer ein leerer string zurück, obwohl
    auf der Adresse 100% was steht, denn mit einem anderen Proggi das ich Paralell mitlaufen lasse seh ich,
    dass da was steht. Hab aufgeschnappt, dass man einen Pointer auf die Adresse machen kann oO stimmt das?
    Hoffe, dass mir jemand helfen kann
    mfg
    Juhu

    Code verkürzt, wichtiges Fett hervorgehoben
    <b>Public lp As Long</b>
    Const SYNCHRONIZE = &H100000
    Private Sub Form1_Load()
    Dim hwnd, target_process_id As Integer
    Dim target_process_handle&
    hwnd = FindWindow(vbNullString, "Programmtitle")
    If (hwnd = 0) Then MsgBox("Starten Sie zuerst das Programm", MsgBoxStyle.Information, "Hinweis")
    target_process_id = 0
    GetWindowThreadProcessId(hwnd, target_process_id)
    If (target_process_id = 0) Then MsgBox("Prozess ID konnte nicht übermittelt werden", MsgBoxStyle.Critical, "Hinweis")
    target_process_handle = OpenProcess(SYNCHRONIZE, False, target_process_id)
    If (target_process_handle = 0) Then MsgBox("Prozess Handle konnte nicht übergeben werden", MsgBoxStyle.Critical, "Hinweis")
    <b>Dim buffer(1000) As Byte
    Dim bytesWritten As Integer
    lp = 13471752
    ReadProcessMemory(target_process_handle, lp, buffer, buffer.Length, bytesWritten)
    Dim test As String
    test = System.Text.Encoding.Default.GetString(buffer)
    text1.Text = System.Text.Encoding.Default.GetString(buffer)
    MsgBox(test)</b>
    End Sub
    End Class
    lol? wow gamecard 4 president.
Working...
X