Advertisement
Guest User

Jorndel's MemoryClass

a guest
Mar 5th, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Region "Basic Stuff"
  2.     <DllImport("kernel32.dll")> _
  3.     Private Shared Function ReadProcessMemory(hProcess As IntPtr, lpBaseAddress As IntPtr, <[In](), Out()> buffer As Byte(), size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Int32
  4.     End Function
  5.     <DllImport("kernel32.dll")> _
  6.     Private Shared Function WriteProcessMemory(hProcess As IntPtr, lpBaseAddress As IntPtr, <[In](), Out()> buffer As Byte(), size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Int32
  7.     End Function
  8.     <DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> _
  9.     Public Shared Function GetKeyState(ByVal virtualKeyCode As Keys) As Short
  10.     End Function
  11.     Private pHandel As IntPtr
  12.     Public Function Process_Handle(ProcessName As String) As Boolean
  13.         Try
  14.             Dim ProcList As Process() = Process.GetProcessesByName(ProcessName)
  15.             If ProcList.Length = 0 Then
  16.                 Return False
  17.             Else
  18.                 pHandel = ProcList(0).Handle
  19.                 Return True
  20.             End If
  21.         Catch ex As Exception
  22.             Console.Beep()
  23.             Console.WriteLine("Process_Handle - " + ex.Message)
  24.             Return False
  25.         End Try
  26.     End Function
  27.     Private Function Read(Address As Integer, Length As Integer) As Byte()
  28.         Dim Buffer As Byte() = New Byte(Length - 1) {}
  29.         Dim Zero As IntPtr = IntPtr.Zero
  30.         ReadProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
  31.         Return Buffer
  32.     End Function
  33.     Private Sub Write(Address As Integer, Value As Integer)
  34.         Dim Buffer As Byte() = BitConverter.GetBytes(Value)
  35.         Dim Zero As IntPtr = IntPtr.Zero
  36.         WriteProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
  37.     End Sub
  38. #End Region
  39.  
  40.     'This is the part you want to edit
  41. #Region "Write Functions (Integer & String)"
  42.     Public Sub WriteInteger(Address As Integer, Value As Integer)
  43.         Write(Address, Value)
  44.     End Sub
  45.     Public Sub WriteString(Address As Integer, Text As String)
  46.         Dim Buffer As Byte() = New ASCIIEncoding().GetBytes(Text)
  47.         Dim Zero As IntPtr = IntPtr.Zero
  48.         WriteProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
  49.     End Sub
  50.     Public Sub WriteBytes(Address As Integer, Bytes As Byte())
  51.         Dim Zero As IntPtr = IntPtr.Zero
  52.         WriteProcessMemory(pHandel, New IntPtr(Address), Bytes, CUInt(Bytes.Length), Zero)
  53.     End Sub
  54.     Public Sub WriteNOP(Address As Integer)
  55.         Dim Buffer As Byte() = New Byte() {&H90, &H90, &H90, &H90, &H90}
  56.         Dim Zero As IntPtr = IntPtr.Zero
  57.         WriteProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
  58.     End Sub
  59.  
  60.  
  61. #End Region
  62. #Region "Read Functions (Integer & String)"
  63.     Public Function ReadInteger(Address As Integer, Optional Length As Integer = 4) As Integer
  64.         Return BitConverter.ToInt32(Read(Address, Length), 0)
  65.     End Function
  66.     Public Function ReadString(Address As Integer, Optional Length As Integer = 4) As String
  67.         Return New ASCIIEncoding().GetString(Read(Address, Length))
  68.     End Function
  69.     Public Function ReadBytes(Address As Integer, Length As Integer) As Byte()
  70.         Return Read(Address, Length)
  71.     End Function
  72. #End Region
  73. #Region "Extra"
  74.     Public Function HotKey(Key As Keys) As Boolean
  75.         Return Convert.ToBoolean(GetKeyState(Key))
  76.     End Function
  77.     Private Check_res As Boolean = True
  78.     Public Function Check_Value(Value As String) As Integer
  79.         For Each a As Char In Value
  80.             If Char.IsNumber(a, 0) Then
  81.                 Check_res = True
  82.             Else
  83.                 Check_res = False
  84.                 Return 0
  85.                 Exit For
  86.             End If
  87.         Next
  88.         Return Convert.ToInt32(Value)
  89.     End Function
  90. #End Region
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement