回覆列表
  • 1 # 使用者834195712159

    程式碼示例:

    Option Explicit

    Private Const STANDARD_RIGHTS_REQUIRED = &HF0000

    Private Const SYNCHRONIZE = &H100000

    Private Const PROCESS_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)

    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

    Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

    Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long

    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSrc As Any, ByVal ByteLen As Long)

    Private Sub Command1_Click()

    Dim strP As String

    Dim lngStartAdd As Long "程序記憶體起始地址

    Dim lngWindowHwnd As Long "程序控制代碼

    Dim lngPID As Long

    Dim lngP As Long

    Dim lngProcessHwnd As Long

    Dim strValue As String * 20

    On Error GoTo errSub

    lngStartAdd = LoadLibrary("c:\windows\system32\calc.exe") "讀取軟體記憶體起始地址

    lngWindowHwnd = FindWindow(vbNullString, "計算器") "找到視窗控制代碼

    lngP = GetWindowThreadProcessId(lngWindowHwnd, lngPID) "取得程序PID

    lngProcessHwnd = OpenProcess(PROCESS_ALL_ACCESS, False, lngPID) "讀取程序控制代碼

    lngP = ReadProcessMemory(lngProcessHwnd, lngStartAdd, strValue, 20, ByVal 0)

    Exit Sub

    errSub:

    End Sub

  • 中秋節和大豐收的關聯?
  • 怎樣才能讓又幹又柴的雞胸肉成為搶手貨?