Imports System.Runtime.InteropServices
Public Class ReadWritingMemory
<DllImport("kernel32.dll")> _
Public Shared Function OpenProcess(ByVal dwDesiredAccess As UInt32, ByVal bInheritHandle As Int32, ByVal dwProcessId As UInt32) As IntPtr
End Function
<DllImport("kernel32.dll")> _
Public Shared Function CloseHandle(ByVal hObject As IntPtr) As Int32
End Function
<DllImport("kernel32.dll")> _
Public Shared Function ReadProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, <[In](), Out()> ByVal buffer As Byte(), ByVal size As UInt32, ByRef lpNumberOfBytesRead As IntPtr) As Int32
End Function
<DllImport("kernel32.dll")> _
Public Shared Function WriteProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, <[In](), Out()> ByVal buffer As Byte(), ByVal size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Int32
End Function
Private Declare Function ReadProcessMemory1 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 ReadProcessMemory2 Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Single, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Single
Private Declare Function ReadProcessMemory3 Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Long, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Long
Private Declare Function WriteProcessMemory1 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 WriteProcessMemory2 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 Single
Private Declare Function WriteProcessMemory3 Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Long, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Long
Private Const PROCESS_ALL_ACCESS As Integer = 127231
Public Shared Function ReadFloat(ByVal ProcessName As String, ByVal Address As Integer, ByVal nsize As Integer) As Single
Dim num2 As Single
Dim num3 As Single
If ProcessName.EndsWith(".exe") Then
ProcessName = ProcessName.Replace(".exe", "")
End If
Dim processesByName() As Process = Process.GetProcessesByName(ProcessName)
If (processesByName.Length = 0) Then
MessageBox.Show((ProcessName + " n'est pas ouvert !"))
Return num2
End If
Dim ptr As IntPtr = CType(OpenProcess(127231, 0, processesByName(0).Id), IntPtr)
If (ptr = IntPtr.Zero) Then
MessageBox.Show(("Ouverture rat\x00e9e de : " _
+ (ProcessName + "!")))
Return num2
End If
Dim lpBaseAddress As Integer = Address
Dim lpNumberOfBytesWritten As Integer = 0
ReadProcessMemory2(CType(ptr, Integer), lpBaseAddress, num3, nsize, lpNumberOfBytesWritten)
Return num3
End Function
Public Shared Function ReadInteger(ByVal ProcessName As String, ByVal Address As Integer, ByVal nsize As Integer) As Integer
Dim num2 As Integer
Dim num3 As Integer
If ProcessName.EndsWith(".exe") Then
ProcessName = ProcessName.Replace(".exe", "")
End If
Dim processesByName() As Process = Process.GetProcessesByName(ProcessName)
If (processesByName.Length = 0) Then
MessageBox.Show((ProcessName + " n'est pas ouvert !"))
Return num2
End If
Dim ptr As IntPtr = CType(OpenProcess(127231, 0, processesByName(0).Id), IntPtr)
If (ptr = IntPtr.Zero) Then
MessageBox.Show(("Ouverture rat\x00e9e de : " _
+ (ProcessName + "!")))
Return num2
End If
Dim lpBaseAddress As Integer = Address
Dim lpNumberOfBytesWritten As Integer = 0
ReadProcessMemory1(CType(ptr, Integer), lpBaseAddress, num3, nsize, lpNumberOfBytesWritten)
Return num3
End Function
Public Shared Function ReadLong(ByVal ProcessName As String, ByVal Address As Integer, ByVal nsize As Integer) As Long
Dim num2 As Long
Dim num3 As Long
If ProcessName.EndsWith(".exe") Then
ProcessName = ProcessName.Replace(".exe", "")
End If
Dim processesByName() As Process = Process.GetProcessesByName(ProcessName)
If (processesByName.Length = 0) Then
MessageBox.Show((ProcessName + " n'est pas ouvert !"))
Return num2
End If
Dim ptr As IntPtr = CType(OpenProcess(127231, 0, processesByName(0).Id), IntPtr)
If (ptr = IntPtr.Zero) Then
MessageBox.Show(("Ouverture rat\x00e9e de : " _
+ (ProcessName + "!")))
Return num2
End If
Dim lpBaseAddress As Integer = Address
Dim lpNumberOfBytesWritten As Integer = 0
ReadProcessMemory3(CType(ptr, Integer), lpBaseAddress, num3, nsize, lpNumberOfBytesWritten)
Return num3
End Function
Public Shared Sub WriteLong(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Long, ByVal nsize As Integer)
If ProcessName.EndsWith(".exe") Then
ProcessName = ProcessName.Replace(".exe", "")
End If
Dim processesByName() As Process = Process.GetProcessesByName(ProcessName)
If (processesByName.Length = 0) Then
MessageBox.Show((ProcessName + " n'est pas ouvert !"))
Else
Dim ptr As IntPtr = CType(OpenProcess(127231, 0, processesByName(0).Id), IntPtr)
If (ptr = IntPtr.Zero) Then
MessageBox.Show(("Ouverture rat\x00e9e de : " _
+ (ProcessName + "!")))
Else
Dim lpBaseAddress As Integer = Address
Dim lpBuffer As Long = Value
Dim lpNumberOfBytesWritten As Integer = 0
WriteProcessMemory3(CType(ptr, Integer), lpBaseAddress, lpBuffer, nsize, lpNumberOfBytesWritten)
End If
End If
End Sub
Public Shared Sub WriteFloat(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Single, ByVal nsize As Integer)
If ProcessName.EndsWith(".exe") Then
ProcessName = ProcessName.Replace(".exe", "")
End If
Dim processesByName() As Process = Process.GetProcessesByName(ProcessName)
If (processesByName.Length = 0) Then
MessageBox.Show((ProcessName + " n'est pas ouvert !"))
Else
Dim ptr As IntPtr = CType(OpenProcess(127231, 0, processesByName(0).Id), IntPtr)
If (ptr = IntPtr.Zero) Then
MessageBox.Show(("Ouverture rat\x00e9e de : " _
+ (ProcessName + "!")))
Else
Dim lpBaseAddress As Integer = Address
Dim lpBuffer As Single = Value
Dim lpNumberOfBytesWritten As Integer = 0
WriteProcessMemory2(CType(ptr, Integer), lpBaseAddress, lpBuffer, nsize, lpNumberOfBytesWritten)
End If
End If
End Sub
Public Shared Sub WriteInteger(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Integer, ByVal nsize As Integer)
If ProcessName.EndsWith(".exe") Then
ProcessName = ProcessName.Replace(".exe", "")
End If
Dim processesByName() As Process = Process.GetProcessesByName(ProcessName)
If (processesByName.Length = 0) Then
MessageBox.Show((ProcessName + " n'est pas ouvert !"))
Else
Dim ptr As IntPtr = CType(OpenProcess(127231, 0, processesByName(0).Id), IntPtr)
If (ptr = IntPtr.Zero) Then
MessageBox.Show(("Ouverture rat\x00e9e de : " _
+ (ProcessName + "!")))
Else
Dim lpBaseAddress As Integer = Address
Dim lpBuffer As Integer = Value
Dim lpNumberOfBytesWritten As Integer = 0
WriteProcessMemory1(CType(ptr, Integer), lpBaseAddress, lpBuffer, nsize, lpNumberOfBytesWritten)
End If
End If
End Sub
Public Shared Function WriteDMAFloat(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Value As Single, ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Boolean
Dim flag As Boolean
Try
Dim num As Integer = Address
Dim num1 As Integer = Level
Dim num2 As Integer = 1
Do
num = CInt(Math.Round(CDbl((CSng((ReadWritingMemory.ReadFloat(Process, num, nsize) + CSng(Offsets(num2 - 1))))))))
num2 = num2 + 1
Loop While num2 <= num1
ReadWritingMemory.WriteFloat(Process, num, Value, nsize)
flag = True
Catch ex As System.Exception
MsgBox(ex)
flag = False
End Try
Return flag
End Function
Public Shared Function WriteDMAInteger(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Value As Integer, ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Boolean
Dim flag As Boolean
Try
Dim num As Integer = Address
Dim num1 As Integer = Level
Dim num2 As Integer = 1
Do
num = ReadWritingMemory.ReadInteger(Process, num, nsize) + Offsets(num2 - 1)
num2 = num2 + 1
Loop While num2 <= num1
ReadWritingMemory.WriteInteger(Process, num, Value, nsize)
flag = True
Catch ex As System.Exception
MsgBox(ex)
flag = False
End Try
Return flag
End Function
Public Shared Function WriteDMALong(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Value As Long, ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Boolean
Dim flag As Boolean
Try
Dim num As Integer = Address
Dim num1 As Integer = Level
Dim num2 As Integer = 1
Do
num = CInt((ReadWritingMemory.ReadLong(Process, num, nsize) + CLng(Offsets(num2 - 1))))
num2 = num2 + 1
Loop While num2 <= num1
ReadWritingMemory.WriteLong(Process, num, Value, nsize)
flag = True
Catch ex As System.Exception
MsgBox(ex)
flag = False
End Try
Return flag
End Function
Public Shared Function ReadDMAFloat(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Single
Dim [single] As Single = 0.0!
Dim flag As Boolean = False
Try
Dim num As Integer = Address
Dim num1 As Integer = Level
Dim num2 As Integer = 1
Do
num = CInt(Math.Round(CDbl((CSng((ReadWritingMemory.ReadFloat(Process, num, nsize) + CSng(Offsets(num2 - 1))))))))
num2 = num2 + 1
Loop While num2 <= num1
[single] = ReadWritingMemory.ReadFloat(Process, num, nsize)
flag = True
Catch ex As System.Exception
MsgBox(ex)
End Try
flag = False
Return [single]
End Function
Public Shared Function ReadDMAInteger(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Integer
Dim num As Integer = 0
Dim flag As Boolean = False
Try
Dim num1 As Integer = Address
Dim num2 As Integer = Level
Dim num3 As Integer = 1
Do
num1 = ReadWritingMemory.ReadInteger(Process, num1, nsize) + Offsets(num3 - 1)
num3 = num3 + 1
Loop While num3 <= num2
num = ReadWritingMemory.ReadInteger(Process, num1, nsize)
flag = True
Catch ex As System.Exception
MsgBox(ex)
End Try
flag = False
Return num
End Function
Public Shared Function ReadDMALong(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Long
Dim num As Long = 0L
Dim flag As Boolean = False
Try
Dim num1 As Integer = Address
Dim num2 As Integer = Level
Dim num3 As Integer = 1
Do
num1 = CInt((ReadWritingMemory.ReadLong(Process, num1, nsize) + CLng(Offsets(num3 - 1))))
num3 = num3 + 1
Loop While num3 <= num2
num = ReadWritingMemory.ReadLong(Process, num1, nsize)
flag = True
Catch ex As System.Exception
MsgBox(ex)
End Try
flag = False
Return num
End Function
Public Shared Sub WriteXBytes(ByVal ProcessName As String, ByVal Address As Long, ByVal Value As String)
If ProcessName.EndsWith(".exe") Then
ProcessName = ProcessName.Replace(".exe", "")
End If
Dim processesByName() As Process = Process.GetProcessesByName(ProcessName)
If (CType(processesByName.Length, Integer) <> 0) Then
Dim intPtr As IntPtr = CType(ReadWritingMemory.OpenProcess(127231, 0, processesByName(0).Id), IntPtr)
If (intPtr <> intPtr.Zero) Then
Dim num As Integer = 0
Dim num1 As Integer = 1
Dim num2 As Integer = CType(Math.Round(Math.Round((CType(Strings.Len(Value), Double) / 2))), Integer)
Dim i As Integer = 1
Do While (i <= num2)
Dim num3 As Byte = CType(Math.Round(Conversion.Val(String.Concat("&H", Strings.Mid(Value, num1, 2)))), Byte)
Dim num4 As Integer = num3
Dim num5 As Integer = 0
ReadWritingMemory.WriteProcessMemory1(CType(intPtr, Integer), CType((Address + CType(num, Long)), Integer), num4, 1, num5)
num3 = CType(num4, Byte)
num = (num + 1)
num1 = (num1 + 2)
i = (i + 1)
Loop
Else
MessageBox.Show(String.Concat("Ouverture rat�e de : ", ProcessName, "!"))
End If
Else
MessageBox.Show(String.Concat(ProcessName, " n'est pas ouvert !"))
End If
End Sub
End Class
Trainer Maker Kit und Pointer 10/26/2010 - General Coding - 1 Replies Hallo
Ich habe mir mit Cheat Engine einen Trainer gebastelt mit Pointer und was halt dazugehört der Trainer funktioniert einwandfrei!
Jetzt wollte ich aber einen Trainer mit TMK erstellen habe also alles soweit fertig und habe auch die Pointeradresse verwendet aber sobald ich Aktiviere stürzt das Spiel ab warum ? der CE Trainer funktioniert doch auch. Kann es sein das TMK nicht mit Pointer zurecht kommt? Oder muss ich da etwas beachten??
mfg
trainer maker 05/06/2006 - Conquer Online 2 - 3 Replies This is a program that you can make bots with by urself, download freom here----->http://www.phuzion.com/14/?p=download s look for trainer maker kit.
Read the tutorial here ------->http://www.phuzion.com/14/?p=tutorials& amp;tid=13 any questions, comments, kind words, karma plz feel free to give. :D :D :D :D :D