国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【原創】VB超強游戲外掛幫助類,封裝了很多方法

2019-11-14 15:46:02
字體:
來源:轉載
供稿:網友
''' <summary>'''  a very nice file that can be used on  other access As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer    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 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    Const PROCESS_ALL_ACCESS = &H1F0FF    Public 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        Try            Dim lvl As Integer = Address            For i As Integer = 1 To Level                lvl = ReadInteger(Process, lvl, nsize) + Offsets(i - 1)            Next            WriteInteger(Process, lvl, Value, nsize)            Return True        Catch ex As Exception            Return False        End Try    End Function    Public 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        Try            Dim lvl As Integer = Address            For i As Integer = 1 To Level                lvl = ReadInteger(Process, lvl, nsize) + Offsets(i - 1)            Next            Dim vBuffer As Integer            vBuffer = ReadInteger(Process, lvl, nsize)            Return vBuffer        Catch ex As Exception        End Try    End Function    Public 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        Try            Dim lvl As Integer = Address            For i As Integer = 1 To Level                lvl = ReadInteger(Process, lvl, nsize) + Offsets(i - 1)            Next            WriteFloat(Process, lvl, Value, nsize)            Return True        Catch ex As Exception            Return False        End Try    End Function    Public 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        Try            Dim lvl As Integer = Address            For i As Integer = 1 To Level                lvl = ReadFloat(Process, lvl, nsize) + Offsets(i - 1)            Next            Dim vBuffer As Single            vBuffer = ReadFloat(Process, lvl, nsize)            Return vBuffer        Catch ex As Exception        End Try    End Function    Public 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        Try            Dim lvl As Integer = Address            For i As Integer = 1 To Level                lvl = ReadLong(Process, lvl, nsize) + Offsets(i - 1)            Next            WriteLong(Process, lvl, Value, nsize)            Return True        Catch ex As Exception            Return False        End Try    End Function    Public 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        Try            Dim lvl As Integer = Address            For i As Integer = 1 To Level                lvl = ReadLong(Process, lvl, nsize) + Offsets(i - 1)            Next            Dim vBuffer As Long            vBuffer = ReadLong(Process, lvl, nsize)            Return vBuffer        Catch ex As Exception        End Try    End Function    Public Sub WriteNOPs(ByVal ProcessName As String, ByVal Address As Long, ByVal NOPNum As Integer)        Dim C As Integer        Dim B As Integer        If ProcessName.EndsWith(".exe") Then            ProcessName = ProcessName.Replace(".exe", "")        End If        Dim MyP As Process() = Process.GetProcessesByName(ProcessName)        If MyP.Length = 0 Then            MessageBox.Show(ProcessName & " isn't open!")            Exit Sub        End If        Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)        If hProcess = IntPtr.Zero Then            MessageBox.Show("Failed to open " & ProcessName & "!")            Exit Sub        End If        B = 0        For C = 1 To NOPNum            Call WriteProcessMemory1(hProcess, Address + B, &H90, 1, 0&)            B = B + 1        Next C    End Sub    Public 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 MyP As Process() = Process.GetProcessesByName(ProcessName)        If MyP.Length = 0 Then            MessageBox.Show(ProcessName & " isn't open!")            Exit Sub        End If        Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)        If hProcess = IntPtr.Zero Then            MessageBox.Show("Failed to open " & ProcessName & "!")            Exit Sub        End If        Dim C As Integer        Dim B As Integer        Dim D As Integer        Dim V As Byte        B = 0        D = 1        For C = 1 To Math.Round((Len(Value) / 2))            V = Val("&H" & Mid$(Value, D, 2))            Call WriteProcessMemory1(hProcess, Address + B, V, 1, 0&)            B = B + 1            D = D + 2        Next C    End Sub    Public Sub WriteInteger(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Integer, Optional ByVal nsize As Integer = 4)        If ProcessName.EndsWith(".exe") Then            ProcessName = ProcessName.Replace(".exe", "")        End If        Dim MyP As Process() = Process.GetProcessesByName(ProcessName)        If MyP.Length = 0 Then            MessageBox.Show(ProcessName & " isn't open!")            Exit Sub        End If        Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)        If hProcess = IntPtr.Zero Then            MessageBox.Show("Failed to open " & ProcessName & "!")            Exit Sub        End If        Dim hAddress, vBuffer As Integer        hAddress = Address        vBuffer = Value        WriteProcessMemory1(hProcess, hAddress, CInt(vBuffer), nsize, 0)    End Sub    Public Sub WriteFloat(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Single, Optional ByVal nsize As Integer = 4)        If ProcessName.EndsWith(".exe") Then            ProcessName = ProcessName.Replace(".exe", "")        End If        Dim MyP As Process() = Process.GetProcessesByName(ProcessName)        If MyP.Length = 0 Then            MessageBox.Show(ProcessName & " isn't open!")            Exit Sub        End If        Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)        If hProcess = IntPtr.Zero Then            MessageBox.Show("Failed to open " & ProcessName & "!")            Exit Sub        End If        Dim hAddress As Integer        Dim vBuffer As Single        hAddress = Address        vBuffer = Value        WriteProcessMemory2(hProcess, hAddress, vBuffer, nsize, 0)    End Sub    Public Sub WriteLong(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Long, Optional ByVal nsize As Integer = 4)        If ProcessName.EndsWith(".exe") Then            ProcessName = ProcessName.Replace(".exe", "")        End If        Dim MyP As Process() = Process.GetProcessesByName(ProcessName)        If MyP.Length = 0 Then            MessageBox.Show(ProcessName & " isn't open!")            Exit Sub        End If        Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)        If hProcess = IntPtr.Zero Then            MessageBox.Show("Failed to open " & ProcessName & "!")            Exit Sub        End If        Dim hAddress As Integer        Dim vBuffer As Long        hAddress = Address        vBuffer = Value        WriteProcessMemory3(hProcess, hAddress, vBuffer, nsize, 0)    End Sub    Public Function ReadInteger(ByVal ProcessName As String, ByVal Address As Integer, Optional ByVal nsize As Integer = 4) As Integer        If ProcessName.EndsWith(".exe") Then            ProcessName = ProcessName.Replace(".exe", "")        End If        Dim MyP As Process() = Process.GetProcessesByName(ProcessName)        If MyP.Length = 0 Then            MessageBox.Show(ProcessName & " isn't open!")            Exit Function        End If        Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)        If hProcess = IntPtr.Zero Then            MessageBox.Show("Failed to open " & ProcessName & "!")            Exit Function        End If        Dim hAddress, vBuffer As Integer        hAddress = Address        ReadProcessMemory1(hProcess, hAddress, vBuffer, nsize, 0)        Return vBuffer    End Function    Public Function ReadFloat(ByVal ProcessName As String, ByVal Address As Integer, Optional ByVal nsize As Integer = 4) As Single        If ProcessName.EndsWith(".exe") Then            ProcessName = ProcessName.Replace(".exe", "")        End If        Dim MyP As Process() = Process.GetProcessesByName(ProcessName)        If MyP.Length = 0 Then            MessageBox.Show(ProcessName & " isn't open!")            Exit Function        End If        Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)        If hProcess = IntPtr.Zero Then            MessageBox.Show("Failed to open " & ProcessName & "!")            Exit Function        End If        Dim hAddress As Integer        Dim vBuffer As Single        hAddress = Address        ReadProcessMemory2(hProcess, hAddress, vBuffer, nsize, 0)        Return vBuffer    End Function    Public Function ReadLong(ByVal ProcessName As String, ByVal Address As Integer, Optional ByVal nsize As Integer = 4) As Long        If ProcessName.EndsWith(".exe") Then            ProcessName = ProcessName.Replace(".exe", "")        End If        Dim MyP As Process() = Process.GetProcessesByName(ProcessName)        If MyP.Length = 0 Then            MessageBox.Show(ProcessName & " isn't open!")            Exit Function        End If        Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)        If hProcess = IntPtr.Zero Then            MessageBox.Show("Failed to open " & ProcessName & "!")            Exit Function        End If        Dim hAddress As Integer        Dim vBuffer As Long        hAddress = Address        ReadProcessMemory3(hProcess, hAddress, vBuffer, nsize, 0)        Return vBuffer    End FunctionEnd Module

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙洋县| 财经| 五常市| 岑巩县| 安化县| 永德县| 井冈山市| 邯郸市| 诸城市| 五原县| 蓬安县| 宁城县| 余干县| 宜昌市| 醴陵市| 米脂县| 涞源县| 呼伦贝尔市| 新绛县| 珲春市| 南乐县| 民权县| 定安县| 曲水县| 平陆县| 兴业县| 泰兴市| 青铜峡市| 门源| 新泰市| 天气| 洪江市| 格尔木市| 泰宁县| 临武县| 武城县| 金乡县| 三河市| 灵武市| 三明市| 安多县|