Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 15:21

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

Advertisement



Probleme Visual Basic unter Vista64Bit mit ReadProcessMemory und WriteProcessMemory

Discussion on Probleme Visual Basic unter Vista64Bit mit ReadProcessMemory und WriteProcessMemory within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2009
Posts: 12
Received Thanks: 5
Probleme Visual Basic unter Vista64Bit mit ReadProcessMemory und WriteProcessMemory

Hallo Ihrs
Ich hoffe ihr könnt mir vllt vieleicht weiterhelfen, ich befasse mich schon seit einigen Tagen mit ReadProcessMemory und WriteProcessMemory
aber irgendwie will das ganze nicht unter Vista 64 Bit nicht funktionieren. Nachfolgender Code tut zb den Puktestand in Solitaire auslesen und in einer Textbox anzeigen. (Ist ja nur ein Beispiel) unter XP funktioniert das ganze ohne Probleme, aber unter Vista bekomme ich immer den Wert 0 zurück. Mir ist klar das die Speicheradresse unter Vista anders ist, und auch der ProcessName ist unter Vista "Solitaire" und nicht wie bei XP "Sol" die Speicheradressen habe ich voher mittels Cheat-Engine ausglesen und sind auch richtig. Trotzdem geht das unter Vista 64 Bit einfach nicht. Was muss ich ändern oder andres machen damit das ganze auch unter Vista64 läuft, es kann doch eigentlich nicht sein das man unter Vista den Speicher nicht lesen kann, oder? das mit "WriteProcessMemory"
habe ich noch garnicht getestet, Weil wenn ich nicht lesen kann brauche ich auch nicht schreiben versuchen. Bin mittlerweile echt am verzweifeln. Wäre schön wenn sich einer meiner Sache mal animmt

Hier mal das Beispiel ,das so wie es ist unter XP ohne Probleme läuft:
Code:
  Visual Basic Quellcode 

 Public Class Form1
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
    Private Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Dim ExeName As String = "sol"  '!!Ohne ".exe"!!
    Dim Prozess1 As Process
    Public RBuff As Long

    Dim pList() As System.Diagnostics.Process = System.Diagnostics.Process.GetProcesses 'liste aller activen Processe

    Public Function ReadLong(ByVal ProcessName As Process, ByVal Address As Integer)
        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, Address, RBuff, 4, Nothing)
        CloseHandle(processHandle)
        Return RBuff
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        pList = System.Diagnostics.Process.GetProcesses
        For Each proc As System.Diagnostics.Process In pList
            'Dim Name As String = proc.ProcessName
            'ListBox1.Items.Add(Name)
            If proc.ProcessName = ExeName Then
                Prozess1 = proc
                Label1.ForeColor = Color.Green
                Label1.Text = "Spiel gefunden"
                TextBox1.Text = ReadLong(Prozess1, "&H000AA830")'Punktestand               
                Exit Sub
            End If
            Label1.ForeColor = Color.Red
            Label1.Text = "Game not found!"
            TextBox1.Text = Nothing
        Next
    End Sub
End Class
Wild-Life78 is offline  
Old 04/23/2012, 21:03   #2
 
qickly's Avatar
 
elite*gold: 0
Join Date: Apr 2011
Posts: 351
Received Thanks: 57
Das geht nicht mehr ab Windows Vista, also Windows 7+8 können das auch nicht mehr. Wenn die trotzdem Werte ablesen willst musst du zu anderen Programmiersprachen wechslen. Es gibt ab Win Vista keine Möglichkeit mehr ReadProcessMemory einzusetzen,WriteProcessMemory klappt dennoch noch immer.
qickly is offline  
Old 04/24/2012, 21:21   #3
 
hellfire1470's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 263
Received Thanks: 191
Sicher? meiner meinung nach habe ich das auch unter Win 7 hinbekommen...
mom ich durchsuche mal meine projekte


Das funktioniert bei mir wunderbar.


Dazu kommen noch diese beiden Deklarationen...
Bei mir werden Bytes ausgelesen und in diesem Fall wieder in einen Text zusammengesetzt.
Teste es einfach aus...
Du kannst auch bei Vb bleiben
hellfire1470 is offline  
Reply


Similar Threads Similar Threads
visual basic key gen?
06/25/2010 - Main - 5 Replies
hey, Hat einer einen KeyGen für visual basic 2010 Express?
Visual C++ (C++), Visual Basic, oder AutoIT?
06/24/2010 - .NET Languages - 11 Replies
Hallo Zusammen Ich würde gerne mit dem Programmieren anfangen. Meine Vorstellungen: Es müsste möglich sein, eigene Programme zu schreiben wie z. B. MSN, Emule oder ähnliches. Natürlich nie in dieser Grösse nur als Beispiel. Als weiteres sollte mit der gleichen Programmiersprache auch die Möglichkeit bestehen einen WoW Bot zu schreiben. Habe gehört die meisten Bots sind in Auto IT geschrieben. Gibt es unterschiede wegen des Warden schutzes oder kommt es nicht darauf an?



All times are GMT +2. The time now is 15:21.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.