📄 module1.bas
字号:
Attribute VB_Name = "patchfile"
Public lngHwnd As Long '程序句柄
Public pHandle As Long '进程句柄
Public pId As Long ' 进程标志
Const PROCESS_ALL_ACCESS = 2035711
Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWND As Long, lpdwProcessId As Long) As Long
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesRead As Long) As Long
Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long
Public Const PROCESS_VM_OPERATION = &H8&
Public Const PROCESS_VM_READ = &H10&
Public Const PROCESS_VM_WRITE = &H20&
'**************************************
'从内存指定位置读取数据
'**************************************
Public Function ReadMem(MemAddress As Long) As Long
Dim lngRlt As Long
Dim l As Long
If pHandle <> 0 Then
lngRlt = ReadProcessMemory(pHandle, MemAddress, ByVal VarPtr(l), 1, 0&)
ReadMem = l
Else
ReadMem = 0
End If
End Function
'**************************************
'把数据写入内存
'**************************************
Public Sub WriteMem(MemAddress As Long, val As Long)
Dim lngRlt As Long
Dim l As Long
l = val
lngRlt = WriteProcessMemory(pHandle, MemAddress, ByVal VarPtr(l), 1, 0&)
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -