按键精灵 写一个函数,使用内存插件读取指定窗口地址为&H400FF的32位数值。

按键精灵 写一个函数,使用内存插件读取指定窗口地址为&H400FF的32位数值。,第1张

Function read(Hwnd)

Val = PluginMemoryRead32Bit(Hwnd, &H400FF)

read = Val

End Function

Attribute VB_Name = "API"

Option Explicit

Public Declare Function GetDesktopWindow Lib "User32DLL" () As Long

Public Declare Function FindWindow Lib "User32DLL" Alias "FindWindowA" (ByVal ClassName As String, ByVal Caption As String) As Long

Public Declare Function GetWindow Lib "User32DLL" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

Public Declare Function GetWindowText Lib "User32DLL" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Public Const GW_CHILD = (5)

Public Const GW_HWNDNEXT = (2)

Public Declare Function GetWindowThreadProcessId Lib "User32DLL" (ByVal hwnd As Long, ProcessId As Long) As Long

'取找线程ID(句柄,返回的线程ID)

Public Declare Function OpenProcess Lib "Kernel32DLL" (ByVal *** 作权限 As Long, ByVal 继承句柄 As Long, ByVal 线程ID As Long) As Long

Public Declare Function ReadProcessMemory Lib "Kernel32DLL" (ByVal 进程柄 As Long, ByVal 内存位置 As Long, 缓冲区 As Any, ByVal 长度 As Long, lpNumberOfBytesWritten As Long) As Long

'读取进程(进程句柄,ByVal 内存区地址,读取来的数据存放处,要读取的长度,已经读取的长度[0])

Public Declare Function WriteProcessMemory Lib "Kernel32DLL" (ByVal 进程柄 As Long, 内存位置 As Any, 缓冲区 As Any, ByVal 长度 As Long, lpNumberOfBytesWritten As Long) As Long

'写内存(进程句柄,ByVal 内存区地址,数据,总长度,已经完成长度[0])

Public Declare Function CloseHandle Lib "Kernel32DLL" (ByVal 进程柄 As Long) As Long

'释放(进程句柄)'不释放会出错

Public Const STANDARD_RIGHTS_REQUIRED = &HF0000

Public Const SYNCHRONIZE = &H100000

Public Const RRAD_WRITE = &H1F0FFF

Public Const PROCESS_VM_OPERATION = &H8&

Public Const 读取 = &H10&

Public Const 写入 = &H20&

'---------变量转换API

Public Declare Sub MOV Lib "Kernel32DLL" Alias "RtlMoveMemory" (变量1 As Any, 变量2 As Any, ByVal 长度 As Long)

'---------内存保护分配释放

Public Declare Function VPE Lib "Kernel32DLL" Alias "VirtualProtectEx" (ByVal 进程柄 As Long, 地址 As Any, ByVal 长度 As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long

Public Declare Function VAE Lib "Kernel32DLL" Alias "VirtualAllocEx" (ByVal 进程柄 As Long, ByVal 地址 As Long, ByVal 长度 As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long

'内存分配(进程柄,地址[好像只要丢个0进去就行],长度,权限1[MEM_COMMIT],权限2[PAGE_READWRITE])返回:分配到的内存起始地址

Public Declare Function VFE Lib "Kernel32DLL" Alias "VirtualFreeEx" (ByVal 进程柄 As Long, ByVal 地址 As Long, ByVal 长度 As Long, ByVal 释放类型 As Long) As Long

Public Const MEM_COMMIT = &H1000

Public Const PAGE_READWRITE = &H4

Public Const STILL_ACTIVE = &H103&

Public Const INFINITE = &HFFFF

'---------取模块函数位置API

Public Declare Function GetModuleHandle Lib "Kernel32DLL" Alias "GetModuleHandleA" (ByVal ModuleName As String) As Long

Public Declare Function LoadLibrary Lib "Kernel32DLL" Alias "LoadLibraryA" (ByVal ModuleName As String) As Long

Public Declare Function GetProcAddress Lib "Kernel32DLL" (ByVal hModule As Long, ByVal ProcName As String) As Long

Public Declare Function CreateRemoteThread Lib "Kernel32DLL" (ByVal 进程柄 As Long, lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long

Public Declare Function GetTickCount Lib "kernel32" () As Long

易语言,按键精灵,Visual Basic 专业游戏外挂辅助作者解答

所有的程序都要调入到内存运行的,包括运行中临时的数据之类也在内存,所以要想知道程序里的数据就要读内存。内存一般都是用8位16进制编号,有时会加偏移值,推荐先用CHEATENGINE找找内存试试。

以上就是关于按键精灵 写一个函数,使用内存插件读取指定窗口地址为&H400FF的32位数值。全部的内容,包括:按键精灵 写一个函数,使用内存插件读取指定窗口地址为&H400FF的32位数值。、按键精灵的读内存基址格式怎么写、按键精灵读内存是什么意思请高手具体讲解下原理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9704940.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存