mrplaysplays

Untitled

Sep 24th, 2016
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.99 KB | None | 0 0
  1. Imports System.Runtime.InteropServices
  2. Imports Microsoft.VisualBasic
  3. Module Trainer
  4. Private Declare Function ReadMemoryByte Lib "kernel32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Byte, Optional ByVal Size As Integer = 2, Optional ByRef Bytes As Integer = 0) As Byte
  5. Private 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 Bytes As Integer = 0) As Integer
  6. Private Declare Function ReadMemoryFloat Lib "kernel32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Single, Optional ByVal Size As Integer = 4, Optional ByRef Bytes As Integer = 0) As Single
  7. Private Declare Function ReadMemoryDouble Lib "kernel32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Double, Optional ByVal Size As Integer = 8, Optional ByRef Bytes As Integer = 0) As Double
  8. Private Declare Function ReadMemoryString Lib "kernel32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As String, Optional ByVal Size As Integer = 60, Optional ByRef Bytes As Integer = 0) As String
  9. Private Declare Function WriteMemoryByte Lib "kernel32" Alias "WriteProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Byte, Optional ByVal Size As Integer = 2, Optional ByRef Bytes As Integer = 0) As Byte
  10. Private Declare Function WriteMemoryInteger Lib "kernel32" Alias "WriteProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Integer, Optional ByVal Size As Integer = 4, Optional ByRef Bytes As Integer = 0) As Integer
  11. Private Declare Function WriteMemoryFloat Lib "kernel32" Alias "WriteProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Single, Optional ByVal Size As Integer = 2, Optional ByRef Bytes As Integer = 0) As Single
  12. Private Declare Function WriteMemoryDouble Lib "kernel32" Alias "WriteProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Double, Optional ByVal Size As Integer = 2, Optional ByRef Bytes As Integer = 0) As Double
  13. Private Declare Function WriteMemoryString Lib "kernel32" Alias "writeProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As String, Optional ByVal Size As Integer = 60, Optional ByRef Bytes As Integer = 0) As String
  14.  
  15. Public Function ReadByte(ByVal EXENAME As String, ByVal Address As Integer) As Byte
  16. Dim Value As Byte
  17. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  18. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  19. If Handle <> 0 Then
  20. ReadMemoryByte(Handle, Address, Value)
  21. End If
  22. End If
  23. Return Value
  24. End Function
  25.  
  26. Public Function ReadInteger(ByVal EXENAME As String, ByVal Address As Integer) As Integer
  27. Dim Value As Integer
  28. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  29. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  30. If Handle <> 0 Then
  31. ReadMemoryInteger(Handle, Address, Value)
  32. End If
  33. End If
  34. Return Value
  35. End Function
  36.  
  37. Public Function ReadFloat(ByVal EXENAME As String, ByVal Address As Integer) As Single
  38. Dim Value As Single
  39. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  40. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  41. If Handle <> 0 Then
  42. ReadMemoryFloat(Handle, Address, Value)
  43. End If
  44. End If
  45. Return Value
  46. End Function
  47.  
  48. Public Function ReadDouble(ByVal EXENAME As String, ByVal Address As Integer) As Double
  49. Dim Value As Double
  50. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  51. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  52. If Handle <> 0 Then
  53. ReadMemoryByte(Handle, Address, Value)
  54. End If
  55. End If
  56. Return Value
  57. End Function
  58.  
  59. Public Function ReadPointerByte(ByVal EXENAME As String, ByVal Pointer As Integer, ByVal ParamArray Offset As Integer()) As Byte
  60. Dim Value As Byte
  61. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  62. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  63. If Handle <> 0 Then
  64. For Each I As Integer In Offset
  65. ReadMemoryInteger(Handle, Pointer, Pointer)
  66. Pointer += I
  67. Next
  68. ReadMemoryByte(Handle, Pointer, Value)
  69. End If
  70. End If
  71. Return Value
  72. End Function
  73.  
  74. Public Function ReadPointerInteger(ByVal EXENAME As String, ByVal Pointer As Integer, ByVal ParamArray Offset As Integer()) As Integer
  75. On Error Resume Next
  76. Dim Value As Integer
  77. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  78. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  79. If Handle <> 0 Then
  80. For Each I As Integer In Offset
  81. ReadMemoryInteger(Handle, Pointer, Pointer)
  82. Pointer += I
  83. Next
  84. ReadMemoryInteger(Handle, Pointer, Value)
  85. End If
  86. End If
  87. Return Value
  88. End Function
  89.  
  90. Public Function ReadPointerFloat(ByVal EXENAME As String, ByVal Pointer As Integer, ByVal ParamArray Offset As Integer()) As Single
  91. Dim Value As Single
  92. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  93. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  94. If Handle <> 0 Then
  95. For Each I As Integer In Offset
  96. ReadMemoryInteger(Handle, Pointer, Pointer)
  97. Pointer += I
  98. Next
  99. ReadMemoryFloat(Handle, Pointer, Value)
  100. End If
  101. End If
  102. Return Value
  103. End Function
  104.  
  105. Public Function ReadPointerDouble(ByVal EXENAME As String, ByVal Pointer As Integer, ByVal ParamArray Offset As Integer()) As Double
  106. Dim Value As Double
  107. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  108. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  109. If Handle <> 0 Then
  110. For Each I As Integer In Offset
  111. ReadMemoryInteger(Handle, Pointer, Pointer)
  112. Pointer += I
  113. Next
  114. ReadMemoryDouble(Handle, Pointer, Value)
  115. End If
  116. End If
  117. Return Value
  118. End Function
  119.  
  120. Public Sub WriteByte(ByVal EXENAME As String, ByVal Address As Integer, ByVal Value As Byte)
  121. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  122. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  123. If Handle <> 0 Then
  124. WriteMemoryByte(Handle, Address, Value)
  125. End If
  126. End If
  127. End Sub
  128.  
  129. Public Sub WriteInteger(ByVal EXENAME As String, ByVal Address As Integer, ByVal Value As Integer)
  130. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  131. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  132. If Handle <> 0 Then
  133. WriteMemoryInteger(Handle, Address, Value)
  134. End If
  135. End If
  136. End Sub
  137.  
  138. Public Sub WriteFloat(ByVal EXENAME As String, ByVal Address As Integer, ByVal Value As Single)
  139. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  140. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  141. If Handle <> 0 Then
  142. WriteMemoryFloat(Handle, Address, Value)
  143. End If
  144. End If
  145. End Sub
  146.  
  147. Public Sub WriteDouble(ByVal EXENAME As String, ByVal Address As Integer, ByVal Value As Double)
  148. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  149. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  150. If Handle <> 0 Then
  151. WriteMemoryDouble(Handle, Address, Value)
  152. End If
  153. End If
  154. End Sub
  155.  
  156. Public Sub WritePointerByte(ByVal EXENAME As String, ByVal Pointer As Integer, ByVal Value As Byte, ByVal ParamArray Offset As Integer())
  157. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  158. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  159. If Handle <> 0 Then
  160. For Each I As Integer In Offset
  161. ReadMemoryInteger(Handle, Pointer, Pointer)
  162. Pointer += I
  163. Next
  164. WriteMemoryByte(Handle, Pointer, Value)
  165. End If
  166. End If
  167. End Sub
  168.  
  169. Public Sub WritePointerInteger(ByVal EXENAME As String, ByVal Pointer As Integer, ByVal Value As Integer, ByVal ParamArray Offset As Integer())
  170. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  171. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  172. If Handle <> 0 Then
  173. For Each I As Integer In Offset
  174. ReadMemoryInteger(Handle, Pointer, Pointer)
  175. Pointer += I
  176. Next
  177. WriteMemoryInteger(Handle, Pointer, Value)
  178. End If
  179. End If
  180. End Sub
  181.  
  182. Public Sub WritePointerFloat(ByVal EXENAME As String, ByVal Pointer As Integer, ByVal Value As Single, ByVal ParamArray Offset As Integer())
  183. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  184. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  185. If Handle <> 0 Then
  186. For Each I As Integer In Offset
  187. ReadMemoryInteger(Handle, Pointer, Pointer)
  188. Pointer += I
  189. Next
  190. WriteMemoryFloat(Handle, Pointer, Value)
  191. End If
  192. End If
  193. End Sub
  194.  
  195. Public Sub WritePointerDouble(ByVal EXENAME As String, ByVal Pointer As Integer, ByVal Value As Double, ByVal ParamArray Offset As Integer())
  196. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  197. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  198. If Handle <> 0 Then
  199. For Each I As Integer In Offset
  200. ReadMemoryInteger(Handle, Pointer, Pointer)
  201. Pointer += I
  202. Next
  203. WriteMemoryDouble(Handle, Pointer, Value)
  204. End If
  205. End If
  206. End Sub
  207.  
  208. <DllImport("kernel32.dll", SetLastError:=True)> _
  209. Public Function WriteProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByVal lpBuffer As Byte(), ByVal nSize As System.UInt32, <Out()> ByRef lpNumberOfBytesWritten As Int32) As Boolean
  210. End Function
  211.  
  212. Public Function WriteString(ByVal proc As String, ByVal target As Integer, ByVal data As String) As Boolean
  213. Return WriteProcessMemory(Process.GetProcessesByName(proc)(0).Handle, New IntPtr(target), StrToByteArray(data), data.Length, 0)
  214. End Function
  215.  
  216. Public Function StrToByteArray(ByVal str As String)
  217. Dim encoding As New System.Text.UTF8Encoding()
  218. Return encoding.GetBytes(str)
  219. End Function
  220.  
  221. Public Sub WritePointerString(ByVal EXENAME As String, ByVal Pointer As Integer, ByVal Value As String, ByVal ParamArray Offset As Integer())
  222. If Process.GetProcessesByName(EXENAME).Length <> 0 Then
  223. Dim Handle As Integer = Process.GetProcessesByName(EXENAME)(0).Handle
  224. If Handle <> 0 Then
  225. For Each I As Integer In Offset
  226. ReadMemoryInteger(Handle, Pointer, Pointer)
  227. Pointer += I
  228. Next
  229. WriteString(EXENAME, Pointer, Value)
  230. End If
  231. End If
  232. End Sub
  233. End Module
Add Comment
Please, Sign In to add comment