如何取得游戏的动态内存地址???
例如腾讯的《QQ幻想》游戏。
我先用金山游侠找到了人物 HP 的内存地址。然后再用以下程序加以修改~
但每次进入游戏,HP的内存地址都会变动,例如第一次进去找到HP地址是 00 12 39 C8 ,第二次
有可能就是 00 54 01 6C (无任何规律可言)。
这样一来,如果想程序编译.exe外挂来锁定HP的值,就行不通了。
请问手们,如果才能取得动态内存的地址? 该如何写程序!请赐教,谢谢了。
******************* 以下是我的程序 ************************
Private Sub Timer1_Timer()
'声明一些需要的变量(这里就是注解)
Dim hwnd As Long ' 储存 FindWindow 函数返回的句柄
Dim pid As Long ' 储存进程标识符( Process Id )
Dim pHandle As Long ' 储存进程句柄
'首先取得目标窗口的句柄
hwnd = FindWindow(vbNullString, "QQ幻想1.33")
If (hwnd = 0) Then
MsgBox "请进入游戏后再运行外挂"
End
Exit Sub
End If
'取得进程标识符
GetWindowThreadProcessId hwnd, pid
' 使用进程标识符取得进程句柄
pHandle = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, 0, pid)
If (pHandle = 0) Then
MsgBox "获取进程句柄失败"
Exit Sub
End If
Dim a As Integer
a = 100
' 写入内存地址
WriteProcessMemory pHandle, &H1239C8, "&HFFFFFF", 4, 0&
WriteProcessMemory pHandle, &H54016C, "&HFFFFFF", 4, 0&
WriteProcessMemory pHandle, &HF723144, "&HFFFFFF", 4, 0&
WriteProcessMemory pHandle, &H1A0FE9B8, "&HFFFFFF", 4, 0&
'以上4个就是用金上找到的HP内存地址,但每次进入游戏都不同,该怎么办?
Text1.Text = "运行状态" & pHandle
' 关闭进程句柄
End Sub