关于ReadProcessMemory函数。(200分)

  • 主题发起人 主题发起人 skuk22
  • 开始时间 开始时间
S

skuk22

Unregistered / Unconfirmed
GUEST, unregistred user!
var<br> &nbsp;Window: HWND;<br> &nbsp;Num: cardinal;<br> &nbsp;PHND: THandle;<br> &nbsp;PID, mft: Integer;<br>begin<br> &nbsp;Window := GetBWHwnd;//此为窗口句炳<br> &nbsp;GetWindowThreadProcessId(Window, @PID);<br> &nbsp;PHND := OpenProcess(PROCESS_VM_READ, False, PID);<br> &nbsp;if PHND &lt;&gt; 0 then <br> &nbsp;ReadProcessMemory(PHND, Pointer($3DEF90), @mft, 4, Num)<br> &nbsp;label1.caption:=inttostr(mft);<br>end;<br>end.<br>为什么label1.caption得到的不是我想要的呢?<br>我就是想得到$3DEF90中的内容。谢谢高手解答。
 
ReadProcessMemory(PHND, Pointer($3DEF90), @mft, 4, Num) = False;<br>GetLastError = 299;<br>Only part of a ReadProcessMemoty or WriteProcessMemory request was completed. <br>感觉是这个地址$3DEF90不允许读,试着读了一下$12f584没问题
 
这是个游戏的内存地址,不可能不让读的。。
 
你要判断这个地址是否能读取<br>是否能写
 
大家帮帮忙啊。
 
1、3DEF90这样的地址是属于内存动态地址,在你的机器上是这个地址 在别的机器上地址会变的<br>2、如果不让读,可以事先设置3DEF90所在区段的属性为可读写或者是全权限
 
后退
顶部