找回密码
 加入
搜索
查看: 2497|回复: 4

[系统综合] 为什么读不出内存中的数值,请高手指教

  [复制链接]
发表于 2013-1-1 14:55:38 | 显示全部楼层 |阅读模式
本帖最后由 pchome2000 于 2013-1-1 20:50 编辑

代码错在那里,为什么读不出内存中的数值,图片右边的值 5% - for windows

$CurProcID = "2728"  ;进程ID
        $Handle = _MemoryOpen($CurProcID) ;获取内存读写句柄
        $Base=0X005bbb30
$MEM = _MemoryRead($Base, $Handle)

Func _MemoryOpen($iv_Pid, $iv_DesiredAccess = 0x1F0FFF, $if_InheritHandle = 1)
        If Not ProcessExists($iv_Pid) Then
                SetError(1)
                Return 0
        EndIf
        Local $ah_Handle[2] = [DllOpen('kernel32.dll') ]
        If @error Then
                SetError(2)
                Return 0
        EndIf
    Local $av_OpenProcess = DllCall($ah_Handle[0], 'int', 'OpenProcess', 'int', $iv_DesiredAccess, 'int', $if_InheritHandle, 'int', $iv_Pid)
        If @error Then
                DllClose($ah_Handle[0])
                SetError(3)
                Return 0
        EndIf
        $ah_Handle[1] = $av_OpenProcess[0]
        Return $ah_Handle
        EndFunc  ;==>_MemoryOpen
       
Func _MemoryRead($iv_Address, $ah_Handle, $sv_Type = 'dword')
        If Not IsArray($ah_Handle) Then
                SetError(1)
                Return 0
        EndIf
        Local $v_Buffer = DllStructCreate($sv_Type)
        If @error Then
                SetError(@error + 1)
                Return 0
        EndIf
        DllCall("kernel32.dll", 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
        If Not @error Then
                Local $v_Value = DllStructGetData($v_Buffer, 1)
                Return $v_Value
        Else
                SetError(6)
                Return 0
        EndIf
        EndFunc  ;==>_MemoryRead
发表于 2013-1-2 07:58:42 | 显示全部楼层
你确定PID是对的??
发表于 2013-1-2 10:01:18 | 显示全部楼层
同楼上,感觉进程ID用 “2728”表示有问题
 楼主| 发表于 2013-1-2 13:55:32 | 显示全部楼层
pid值,是从任务管理器获取,所以不会有错。
发表于 2013-1-3 07:46:19 | 显示全部楼层
内存地址是如何找到的?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-25 02:08 , Processed in 0.075883 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表