请教WriteProcessMemory写内存的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 linshl
  • 开始时间 开始时间
L

linshl

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好,我写内存时依次用了下面几个函数<br>hWnd:&nbsp;=FindWindow(&quot;CRHClass&quot;,NULL);<br>GetWindowThreadProcessId(hWnd,&amp;hProcId);<br>nOK:&nbsp;=OpenProcess(PROCESS_ALL_ACCESS,FALSE,hProcId);<br>WriteProcessMemory(nOK,Pointer($004B75DF),@newdata,NewDatasize&nbsp;,BytesRead);<br>通过调试代码,在WriteProcessMemory的地方提示写不成功。<br>把OpenProcess(PROCESS_ALL_ACCESS,FALSE,hProcId);改成<br>OpenProcess(PROCESS_ALL_ACCESS|PROCESS_TERMINATE|PROCESS_VM_OPERATION|PROCESS_VM_READ|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROCESS_VM_WRITE,FALSE,hProcId)<br>却在OpenProcess处提示不成功,不知道为什么?<br>听说virtualallocex可以提升权限,但不知道怎么用,麻烦知道的朋友帮一下忙<br>代码不在身边,所以只写了几个函数,希望见谅。
 
WriteProcessMemory(nOK,Pointer($004B75DF),@newdata,NewDatasize&nbsp;,BytesRead);<br>通过调试代码,在WriteProcessMemory的地方提示写不成功。<br><br>改写保护后再试试.$004B75DF这个地址应是代码段.<br><br>var<br>&nbsp;OldValue:dword;&nbsp;//原来的保护<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//6个字节<br>if&nbsp;windows.VirtualProtect($004B75DF,6,PAGE_EXECUTE_WRITECOPY,&nbsp;OldValue)=false&nbsp;then&nbsp;exit;&nbsp;//无法改写保护则退出
 
后退
顶部