Как обратится к оперативной памяти, выделенной под указаный процес - VB
Формулировка задачи:
Ребята подскажите пожалуйста, как обратится к оперативной памяти, выделенной под указаный процес.
P.S.: Хочу сделать прогу типо артмани, но никак не могу найти про доступ к оперативной памяти. Буду очень благодарен за помощь.
Решение задачи: «Как обратится к оперативной памяти, выделенной под указаный процес»
textual
Листинг программы
Option Explicit Private Const PROCESS_VM_READ = &H10 Private Const PROCESS_VM_WRITE = &H20 Private Const PROCESS_VM_OPERATION = &H8 Private Const PROCESS_VM = PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE 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 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, ByVal lpBaseAddress As Long, ByVal lpBuffer As Long, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Sub Command1_Click() Dim hW As Long, PId As Long, hP As Long, buf As Long, address As Long, NewTimer As Integer 'Необходимо зппустить Сапер и начать играть hW = FindWindow("Сапер", "Сапер") ' если игра английская, то корректировать! Call GetWindowThreadProcessId(hW, PId) hP = OpenProcess(PROCESS_VM, 0&, PId) address = &H100579C ' По этому адресу у сапера время тикает Call ReadProcessMemory(hP, address, VarPtr(buf), 2, 0&) 'Считываем значение времени MsgBox buf 'после нажатия на кнопку вы увидите время игры в секундах. NewTimer = 1 'А тут сбрасываем время на 1 сек - и ты чемпион! Call WriteProcessMemory(hP, ByVal address, NewTimer, LenB(NewTimer), 0&) End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д