问一下关于内存偏移量的问题,谢谢 ( 积分: 30 )

  • 主题发起人 主题发起人 新手在线
  • 开始时间 开始时间

新手在线

Unregistered / Unconfirmed
GUEST, unregistred user!
var&nbsp;<br>mNum,tmpNum,temp,paddr:dwoRD;&nbsp;<br><br>begin&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;paddr:=$0783FBA4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//已知的基址;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReadProcessMemory(hwnd,&nbsp;&nbsp;&nbsp;Pointer(paddr),&nbsp;&nbsp;&nbsp;Pointer(@mNum),sizeof(mNum),tmpNum);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读到该到基址的值&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;接下来,我想把读到的值作为一个新的基址值,并再加+偏移量$724,重新再读出其值,但是总是错误&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;ddr:=mnum+$724址;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReadProcessMemory(hwnd,&nbsp;&nbsp;&nbsp;Pointer(paddr),&nbsp;&nbsp;&nbsp;Pointer(@mNum),sizeof(mNum),tmpNum);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读到该到基址的值&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;应该是以上两句出问题,谁能帮我看一下,谢谢
 
一个人也没有回知道啊。。<br><br>&nbsp;&nbsp;&nbsp;是不是新的地址=基础+偏移量,不用用在readprocessmemory中,进行读取,前面<br>&nbsp;&nbsp;&nbsp;paddr:=$0783FBA4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//已知的基址;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;ReadProcessMemory(hwnd,&nbsp;&nbsp;&nbsp;Pointer(paddr),&nbsp;&nbsp;&nbsp;Pointer(@mNum),sizeof(mNum),tmpNum);&nbsp;&nbsp;<br>读取到的值是正确的,再把这个读取的值+偏移量做为新的基础进行读取就出错了,熟悉这方面的说一下好吗?
 
ReadProcessMemory(hwnd,&nbsp;&nbsp;&nbsp;Pointer(paddr),&nbsp;&nbsp;&nbsp;Pointer(@mNum),sizeof(mNum),tmpNum);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读到该到基址的值&nbsp;<br><br>看下MSDN的帮助.<br><br>mNum是本地的地址,&nbsp;它的值是一个合法的远程进程地址吗?<br>.paddr是远程进程的地址.这两个相加成了什么啊?<br><br>一般情况..<br>如果它的合法的,那么这个地址再偏移XX..得到的地址是否又是合法的?如果是合法的,远程进程是否有加以保护,如果没有加以保护,那么是可以的.
 
后退
顶部