![]() |
|
Simple Game Hacking Write/Read Memory Class - Printable Version +- Sinisterly (https://sinister.li) +-- Forum: Coding (https://sinister.li/Forum-Coding) +--- Forum: Visual Basic & .NET Framework (https://sinister.li/Forum-Visual-Basic-NET-Framework) +--- Thread: Simple Game Hacking Write/Read Memory Class (/Thread-Simple-Game-Hacking-Write-Read-Memory-Class) |
Simple Game Hacking Write/Read Memory Class - Killpot - 02-08-2016 Yo. So I was toying around with some things and figured you'd all enjoy this if you're looking to get into this kind of stuff. [hide] Code: Module ReadWriteMem
Private Declare Function WriteProcessMemory Lib "KERNEL32" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Long, ByVal Size As Integer, ByRef BystesWritten As Integer) As Long
Private Declare Function ReadProcessMemory Lib "KERNEL32" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Long, ByVal Size As Integer, ByRef BystesWritten As Integer) As Long
Public Declare Function ReadMemoryByte Lib "KERNEL32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Byte, Optional ByVal Size As Integer = 1, Optional ByRef BytesRead As Integer = 0) As Byte
Public Declare Function ReadMemoryShort Lib "KERNEL32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Byte, Optional ByVal Size As Integer = 1, Optional ByRef BytesRead As Integer = 0) As Short
Public Declare Function ReadMemoryInteger Lib "KERNEL32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Integer, Optional ByVal Size As Integer = 4, Optional ByRef BytesRead As Integer = 0) As Integer
Public Declare Function ReadMemoryLong Lib "KERNEL32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Byte, Optional ByVal Size As Integer = 1, Optional ByRef BytesRead As Integer = 0) As Long
Public Declare Function ReadMemoryFloat Lib "KERNEL32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Byte, Optional ByVal Size As Integer = 1, Optional ByRef BytesRead As Integer = 0) As Single
Public Declare Function ReadMemoryDouble Lib "KERNEL32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Byte, Optional ByVal Size As Integer = 1, Optional ByRef BytesRead As Integer = 0) As Double
Public Sub WriteMemoryByte(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Byte)
Dim Open = Process.GetProcessesByName(ProcessName)
If Open.Length = 0 Then
Exit Sub
End If
WriteProcessMemory(Open(0).Handle, Address, Value, 1, 0)
End Sub
Public Sub WriteMemoryShort(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Short)
Dim Open = Process.GetProcessesByName(ProcessName)
If Open.Length = 0 Then
Exit Sub
End If
WriteProcessMemory(Open(0).Handle, Address, Value, 2, 0)
End Sub
Public Sub WriteMemoryInteger(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Integer)
Dim Open = Process.GetProcessesByName(ProcessName)
If Open.Length = 0 Then
Exit Sub
End If
WriteProcessMemory(Open(0).Handle, Address, Value, 4, 0)
End Sub
Public Sub WriteMemoryLong(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Long)
Dim Open = Process.GetProcessesByName(ProcessName)
If Open.Length = 0 Then
Exit Sub
End If
WriteProcessMemory(Open(0).Handle, Address, Value, 8, 0)
End Sub
Public Sub WriteMemoryFloat(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Single)
Dim Open = Process.GetProcessesByName(ProcessName)
If Open.Length = 0 Then
Exit Sub
End If
WriteProcessMemory(Open(0).Handle, Address, Value, 8, 0)
End Sub
Public Sub WriteMemoryDouble(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Double)
Dim Open = Process.GetProcessesByName(ProcessName)
If Open.Length = 0 Then
Exit Sub
End If
WriteProcessMemory(Open(0).Handle, Address, Value, 8, 0)
End Sub
Public Sub WriteMemoryASM(ByVal ProcessName As String, ByVal Address As Integer, ByVal Array As Byte())
Dim Open = Process.GetProcessesByName(ProcessName)
If Open.Length = 0 Then
Exit Sub
End If
For Value As Byte = LBound(Array) To UBound(Array)
WriteProcessMemory(Open(0).Handle, Address + Value, Array(Value), 1, 0)
Next
End Sub
Public Sub WriteMemoryPointer(ByVal ProcessName As String, ByVal Pointer As Integer, ByVal Value As Integer, ByVal ParamArray OFFSet As Integer())
Dim Open = Process.GetProcessesByName(ProcessName)
If Open.Length = 0 Then
Exit Sub
End If
Dim Handle As Integer = Process.GetProcessesByName(ProcessName)(0).Handle
For Each I As Integer In OFFSet
ReadMemoryInteger(Handle, Pointer, Pointer)
Pointer += I
Next
WriteProcessMemory(Open(0).Handle, Pointer, Value, 4, 0)
End Sub
Public Sub ReadMemoryPointer(ByVal ProcessName As String, ByVal Pointer As Integer, ByRef Value As Integer, ByVal ParamArray OFFSet As Integer())
If Process.GetProcessesByName(ProcessName).Length = 0 Then
Exit Sub
End If
Dim Handle As Integer = Process.GetProcessesByName(ProcessName)(0).Handle
For Each I As Integer In OFFSet
ReadMemoryInteger(Handle, Pointer, Pointer)
Pointer += I
Next
ReadMemoryInteger(Handle, Pointer, Value)
End Sub
End Module[/hide] |