kevinch 发表于 2011-12-27 10:23:58

如果想读取某一程序的全部内存,dllstructcreate应该创建个什么类型的结构呢?

如题,我尝试用程序去读取另一程序的内存内容,但一般论坛里提到的都是读取某一个内存地址的内容,尝试修改成下面方式读取却不成功$mem=_MemoryOpen($pid,0x1F0FFF,1)
$stats=ProcessGetStats($pid)
$size="long["&Hex($stats)&"]"
$vol=DllStructCreate($size)
If $vol=0 Then
        MsgBox(0,"",@error)
        Exit 0
EndIf
$str=_MemoryRead(0x00000000,$mem,$vol);这个起始地址是否也有问题?
_MemFree($mem)
$arr=DllStructGetData($str,0)
_ArrayDisplay($arr)以上问题,望高手不吝赐教,谢谢!

kevinch 发表于 2011-12-27 19:22:01

自己顶一下,希望得到帮助。

kevinch 发表于 2011-12-28 18:09:51

再顶起来,继续尝试

seniors 发表于 2011-12-29 06:06:22

我没有读过内存
$mem=_MemoryOpen($pid,0x1F0FFF,1);0x1F0FF是什么?
$str=_MemoryRead(0x00000000,$mem,$vol) ;程序内存分配不是从0x00000000开始的吧
帮不了你,我看还是要补补基础

kevinch 发表于 2011-12-29 08:03:25

回复 4# seniors
是噢,应该是从0x00000001开始,竟然糊涂到这地步了

kevinch 发表于 2011-12-29 08:07:18

不过现在就是在dllstructcreate这步出错,难道不应该用Long?

kevinch 发表于 2011-12-30 20:15:29

再试一次,大家能帮忙开拓下思路也行啊

xms77 发表于 2011-12-31 10:38:48

不懂,帮顶。
页: [1]
查看完整版本: 如果想读取某一程序的全部内存,dllstructcreate应该创建个什么类型的结构呢?