Daten aus Prozessen auslesen?

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von EiPott.

    Daten aus Prozessen auslesen?

    Wie kann ich Daten von Spielen auslessen?
    Als Beispiel hab ich World of Warcraft, will da meinen Goldbestand auslessen und z.B. als Variable in meiner Form speichern.

    Hab über das Programm ArtMoney die Adresse zum Goldbestand herausgefunden: 252E82E8

    Kann man daraus jetzt irgendwie das ganze als Variable speichern?
    Freue mich sehr über jede Hilfe :D

    MfG Safloc08

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Safloc08“ ()

    das ist ein sehr schöner Link muss ich schon sagen...und du bist dir sicher, dass du diesen sooft durchgelesen hast, dass du ihn verstehst? Und hast du ihn auch nicht nur kopiert, sondern auf dein Beispiel angepasst? Und das ganze in weniger als 45 minuten?

    Es heißt nicht andere Vorschläge, sondern was funktioniert "nicht so ganz"?
    Wie sieht dein Code aus?
    usw...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    das ist um im Speicher zu lesen, also liest du wohl an der falschen Stelle...und wir können dir keinen Fehler sagen, ohne deinen "angepassten" Code...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Ok hier ist mein Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
    3. Private Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Byte, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    4. Private Function GetValue(ByVal Adress As Integer, ByVal Processname As String)
    5. Dim Proc() As Process = Process.GetProcessesByName(Processname)
    6. If Proc.Length > 0 Then
    7. Dim Handle As IntPtr = OpenProcess(&H1F0FFF, False, Proc(0).Id)
    8. Dim Länge As Integer = 0
    9. Dim Output(32) As Byte
    10. ReadProcessMemory(Handle, Adress, Output(0), Output.Length, Länge)
    11. Return System.Text.Encoding.Default.GetString(Output).Replace(vbNullChar, Nothing)
    12. End If
    13. Return ""
    14. End Function
    15. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    16. TextBox1.Text = GetValue(&H256EAF48, "WoW")
    17. End Sub
    18. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    19. TextBox1.Text = GetValue(&H256EAF48, "WoW")
    20. End Sub
    21. End Class


    Ich vermure nur das die Adresse die ich mit meinem oben genannten Programm erfasst habe, nichts mit der Adresse die ich brauche zu tun hat

    MfG Safloc08
    und du weißt woher, welche Speicheradresse du verwenden musst? Und die Länge von 32 zeichen muss natürlich auch stimmen...Edit:und das Encoding^^
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    Safloc08 schrieb:

    Hab über das Programm ArtMoney die Adresse zum Goldbestand herausgefunden: 252E82E8
    Von dort hat er es scheinbar...



    @Threadsteller
    Anscheinend hast du den Thread aber nicht fertig gelesen, denn dort steht, dass du beim Prozessname ".exe" auch angeben solltest.

    Und vielleicht könnte ein Moderator dieses Thema ins Hauptforum verschieben, denn meiner Meinung nach übersteigt das die Grundlagen.


    Gruss
    Pascal
    die Adresse wird ganz einfach nicht Stimmen, ich kenne mich jetzt nicht mit ArtMoney und Co. nicht aus, aber steht dort nicht noch irgendetwas anderes?
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    1.) Ist eigentlich kein Cheatprogramm, aber man kann es auch dafür verwenden
    2.) Hab ich nicht gecheatet, sondern wollte nur die eine Adresse herausfinden
    3.) Bleib beim Thema und poste nicht irgendeinen *Müll*

    @jvbsl: leider nein, steht nur die Adresse und der Wert

    MfG Safloc08