如何通过ReadProcessMemory来读取别的程序的内存中的数据? ( 积分: 50 )

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

sy0116

Unregistered / Unconfirmed
GUEST, unregistred user!
我因某种特殊原因必须用ReadProcessMemory来读取别的程序的一个字符串的值,我通过Hook&nbsp;ExtTextoutW函数来得到这个变量的地址,我的替代函数是这样写的:<br>function&nbsp;MyExt(DC:&nbsp;HDC;&nbsp;X,&nbsp;Y:&nbsp;Integer;&nbsp;Options:&nbsp;Longint;<br>Rect:&nbsp;PRect;&nbsp;Str:&nbsp;PWideChar;&nbsp;Count:&nbsp;Longint;&nbsp;Dx:&nbsp;PInteger):&nbsp;BOOL;&nbsp;stdcall;<br>var<br>crd:Cardinal;<br>begin<br>……<br>if&nbsp;Str='100'&nbsp;then<br>begin<br>&nbsp;&nbsp;SendInfo(2,True,'Addr:',Integer(str));<br>end;<br><br>……<br>end;<br>其中SendInfo是我自己写的一个函数,作用是把第3、4个参数发送给另一个用来接收数据的程序,这个接收数据的程序显示Addr:76AF72F0<br>我认为这个76AF72F0应该就是那个字符串的地址了,然后我用<br>ReadProcessMemory(processhandle,$76AF72F0,mypwidechar,3,dwsize);<br>来读取他的值(其中mypwidechar是一PwideChar变量,processhandle是正确的),但是读到的却并非我想要的内容,请问我这种取地址、读数据的方法对吗?
 
delphi世界qq群:23981160,喜欢Delphi的都进来
 
如果你是两个不同的应用程序这种方法当然不对。。因为WINDOW中所有的应用程序都在不同的地址空间。
 
通过ReadProcessMemory可以的
 
这种地址是临时变量的,不是全局变量,当然读不出来
 
多人接受答案了。
 
后退
顶部