首页
社区
课程
招聘
vb.net中读取其它进程内存的问题
发表于: 2005-10-9 19:56 7927

vb.net中读取其它进程内存的问题

2005-10-9 19:56
7927
在vb.net下用ReadProcessMemory总是读不了内存的内容。似乎是普遍存在的一个问题,不知道大家有什么好的方法,ReadProcessMemory要怎么调用和声明,或用其它的方法了读取其它进程的内存。

我查到的关于这个问题的,有人提到
ReadProcessMemory

Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByRef lpBaseAddress As Object, ByVal

lpBuffer As Object, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Intege

其中的lpBuffer要为ByVal,我用ByRef也试过,也不行,可以返回到读到的字节,可就是没有内容。。
        Dim ph As Integer
        Dim buffer(200) As Byte
        Dim bytesRead As Integer
        ph = OpenProcess(PROCESS_ALL_ACCESS, False, 1832)
        '1832是一个正在运行的程序,403000里面有数据
        If ph Then
            h = ReadProcessMemory(ph, &H403000, buffer, buffer.Length, bytesRead)

        Else
            MessageBox.Show("false")
        End If

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 298
活跃值: (445)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
2
已经搞定,感谢freecat
ReadProcessMemory这样声明。
把lpBaseAddress声明为 ByVal:
Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByVal lpBuffer() As Byte, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer

Dim ph As Integer
Dim buffer(200) As Byte
Dim bytesRead As Integer
ReadProcessMemory(ph, &H403000, buffer, buffer.Length,bytesRead)
2005-10-9 20:17
0
游客
登录 | 注册 方可回帖
返回
//