?? module1.bas
字號:
Attribute VB_Name = "patchfile"
Public lngHwnd As Long '程序句柄
Public pHandle As Long '進(jìn)程句柄
Public pId As Long ' 進(jìn)程標(biāo)志
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&
'**************************************
'從內(nèi)存指定位置讀取數(shù)據(jù)
'**************************************
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
'**************************************
'把數(shù)據(jù)寫入內(nèi)存
'**************************************
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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -