搜索内存中的字符串(1000分)(300分)

  • 主题发起人 主题发起人 我要学
  • 开始时间 开始时间

我要学

Unregistered / Unconfirmed
GUEST, unregistred user!
这里有两百,另开贴给分<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=3383573<br><br>游戏中的动态地址
 
没有人来啊,可怜<br><br>下雨啊,人少啊,
 
进来的人说说话,好把贴子结了
 
看来知道的人不多
 
&lt;&lt;时间有限 , 抛砖引玉&gt;&gt;<br>用函数ReadProcessMemory 读另一个进程的内存,原形如下:<br>BOOL ReadProcessMemory(<br>HANDLE hProcess, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// 被读取进程的句柄;<br>LPCVOID lpBaseAddress, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// 读的起始地址;<br>LPVOID lpBuffer, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// 存放读取数据缓冲区;<br>DWORD nSize, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// 一次读取的字节数;<br>LPDWORD lpNumberOfBytesRead &nbsp; &nbsp; // 实际读取的字节数;<br>);<br>////////////////////////////////////////<br>type <br> &nbsp;lpREC=^lREC; <br> &nbsp;lREC=record <br> &nbsp;ls:array[0..20000] of LongWord <br>end; <br> &nbsp;Value1:=$44; <br> &nbsp;ReadProcessMemory(Application.Handle,Pointer(i),lpWord,80000,iRead); <br> &nbsp;For i:=0 to 2000 do<br> &nbsp;if lpWord.ls=Value1 then <br> &nbsp; &nbsp;ListBox1.Items.Add(inttohex(lpWord.ls,8)); <br> &nbsp;<br>上 面 的 范 例 可 以 一 次 读 取 20000个 LongWord然 后 进 行 比 较 然 后 在 ListBox1中 显 示 。
 
在nt,2000,xp下要想访问内存还必须取得权限,并不简单。
 
不用了,我找到个例子不错
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部