MineSweeper Trainer Problem

06/18/2015 14:26 RickRolledYouAre#1
Hey Leute,
ich wollte mich mal wieder bisschen in VB einüben und dachte ich mache mal einen MineSweeper Trainer, doch das krieg ich irgendwie nicht mehr zustande ^^.

Ich benutze das Standard Modul, => [Only registered and activated users can see links. Click Here To Register...]

Habe den Static-Pointer, der wie folgt aussieht => "minesweeper.exe"+000AAA38
und die Offsets => 8 und 18.
[Only registered and activated users can see links. Click Here To Register...]

Was würdet ihr machen?

Ich habe jetzt ein Timer gemacht und in den folgendes rein geschrieben, was offensichtlich nicht funktioniert:

Code:
WriteLongPointer("minesweeper.exe" + &HAAA38, &H18, TextBox1.Text, 4)
WriteLongPointer("minesweeper.exe" + &HAAA38, &H8, TextBox1.Text, 4)

Vielen dank im Voraus

Rick
06/18/2015 18:03 hazejp#2
Quote:
Originally Posted by RickRolledYouAre View Post
Hey Leute,
ich wollte mich mal wieder bisschen in VB einüben und dachte ich mache mal einen MineSweeper Trainer, doch das krieg ich irgendwie nicht mehr zustande ^^.

Ich benutze das Standard Modul, => [Only registered and activated users can see links. Click Here To Register...]

Habe den Static-Pointer, der wie folgt aussieht => "minesweeper.exe"+000AAA38
und die Offsets => 8 und 18.
[Only registered and activated users can see links. Click Here To Register...]

Was würdet ihr machen?

Ich habe jetzt ein Timer gemacht und in den folgendes rein geschrieben, was offensichtlich nicht funktioniert:

Code:
WriteLongPointer("minesweeper.exe" + &HAAA38, &H18, TextBox1.Text, 4)
WriteLongPointer("minesweeper.exe" + &HAAA38, &H8, TextBox1.Text, 4)

Vielen dank im Voraus

Rick
Klar funktioniert das nicht, du benutzt die falschen Parameter (e.g. "minesweeper.exe").
Ich würde einfach den Rückgabewert von OpenProcess() nach Long konvertieren, dann hast du die Basisaddresse des Zielprozesses mit der du dann weiterrechnen kannst.
06/19/2015 18:32 H-Cheats#3
Maybe this source code will help you
Quote:
Private Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
Private Declare Function WriteProcessMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
Private Declare Function WriteFloatMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Single, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
Private Declare Function ReadFloat Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByRef buffer As Single, ByVal size As Int32, ByRef lpNumberOfBytesRead As Int32) As Boolean
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
Private Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Integer) As Integer
Public Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer

Public RBuff1 As Long
Public RBuff2 As Single
Public RBuff3 As Integer

'WriteMemory
Public Function WriteMemory(ByVal Address As Integer, ByVal Value As Long, ByVal Bytes As Integer)
Dim warrockLookUp As Process() = Process.GetProcessesByName("WarRock")
If warrockLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, warrockLookUp(0).Id)
WriteProcessMemory(processHandle, Address, Value, Bytes, Nothing)
CloseHandle(processHandle)
End Function

'ReadFloat
Public Function ReadFloat(ByVal Address As Single)
Dim warrockLookUp As Process() = Process.GetProcessesByName("WarRock")
If warrockLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, warrockLookUp(0).Id)
ReadProcessMemory(processHandle, Address, RBuff1, 4, Nothing)
CloseHandle(processHandle)
Return RBuff1
End Function

'WriteFloat
Public Function WriteFloat(ByVal Address As Integer, ByVal Value As Single)
Dim warrockLookUp As Process() = Process.GetProcessesByName("WarRock")
If warrockLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, warrockLookUp(0).Id)
WriteFloatMemory(processHandle, Address, Value, 4, Nothing)
CloseHandle(processHandle)
End Function

'ReadLong
Public Function ReadLong(ByVal Address As Integer)
Dim warrockLookUp As Process() = Process.GetProcessesByName("WarRock")
If warrockLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, warrockLookUp(0).Id)
ReadProcessMemory(processHandle, Address, RBuff1, 4, Nothing)
CloseHandle(processHandle)
Return RBuff1
End Function

'ReadFloatPointer
Public Function ReadFloatPointer(ByVal Base As Integer, ByVal Offset As Short)
Dim fullAddress As Long
Dim warrockLookUp As Process() = Process.GetProcessesByName("WarRock")
If warrockLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, warrockLookUp(0).Id)
ReadProcessMemory(processHandle, Base, RBuff1, 4, Nothing)
fullAddress = RBuff1 + Offset
ReadFloat(processHandle, fullAddress, RBuff2, 4, Nothing)
Return RBuff2
CloseHandle(processHandle)
End Function

'ReadLongPointer
Public Function ReadLongPointer(ByVal Base As Integer, ByVal Offset As Short, ByVal Bytes As Integer)
Dim fullAddress As Long
Dim warrockLookUp As Process() = Process.GetProcessesByName("WarRock")
If warrockLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, warrockLookUp(0).Id)
ReadProcessMemory(processHandle, Base, RBuff1, 4, Nothing)
fullAddress = RBuff1 + Offset
ReadProcessMemory(processHandle, fullAddress, RBuff3, Bytes, Nothing)
Return RBuff3
CloseHandle(processHandle)
End Function

'WriteFloatPointer
Public Function WriteFloatPointer(ByVal Base As Integer, ByVal Offset As Short, ByVal Value As Single)
Dim fullAddress As Long
Dim warrockLookUp As Process() = Process.GetProcessesByName("WarRock")
If warrockLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, warrockLookUp(0).Id)
ReadProcessMemory(processHandle, Base, RBuff1, 4, Nothing)
fullAddress = RBuff1 + Offset
WriteFloatMemory(processHandle, fullAddress, Value, 4, Nothing)
CloseHandle(processHandle)
End Function

'WriteLongPointer
Public Function WriteLongPointer(ByVal Base As Integer, ByVal Offset As Short, ByVal Value As Long, ByVal Bytes As Integer)
Dim fullAddress As Long
Dim warrockLookUp As Process() = Process.GetProcessesByName("WarRock")
If warrockLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, warrockLookUp(0).Id)
ReadProcessMemory(processHandle, Base, RBuff1, 4, Nothing)
fullAddress = RBuff1 + Offset
WriteProcessMemory(processHandle, fullAddress, Value, Bytes, Nothing)
CloseHandle(processHandle)
End Function

'NOP
Public Function NOP(ByVal Address As Integer, ByVal value As Integer)
Dim warrockLookUp As Process() = Process.GetProcessesByName("WarRock")
If warrockLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, warrockLookUp(0).Id)
WriteProcessMemory(processHandle, Address, value, 1, Nothing)
CloseHandle(processHandle)
End Function
06/20/2015 16:11 RickRolledYouAre#4
Quote:
Originally Posted by hazejp View Post
Klar funktioniert das nicht, du benutzt die falschen Parameter (e.g. "minesweeper.exe").
Ich würde einfach den Rückgabewert von OpenProcess() nach Long konvertieren, dann hast du die Basisaddresse des Zielprozesses mit der du dann weiterrechnen kannst.
danke für die schnelle Antwort aber irgendwie komm ich da nicht ganz klar,
schon sehr lange her das ganze, könntest du mir ein beispiel eventuell zeigen, ich bin da eher ein bildlicher Mensch?
Würde mich sehr freuen :)


Quote:
Originally Posted by H-Cheats View Post
Maybe this source code will help you
is it the "VB.Net_UMM" Modul?


LG
Rick
06/22/2015 15:38 hazejp#5
Quote:
Originally Posted by RickRolledYouAre View Post
danke für die schnelle Antwort aber irgendwie komm ich da nicht ganz klar,
schon sehr lange her das ganze, könntest du mir ein beispiel eventuell zeigen, ich bin da eher ein bildlicher Mensch?
Würde mich sehr freuen :)




is it the "VB.Net_UMM" Modul?


LG
Rick
Ich könnte dir höchstens ein Beispiel in C# geben, da ich VB eigentlich nie benutze :rolleyes: