搜索某一个进程的内存地址是否包括某一个数值

wubirong 2011-05-05 07:41:04


搜索某一个进程的内存地址包括某一个数值(4字节),readprocessmemory用得不太熟悉,

processname是进程名findvalue是要搜索的值,findprocessmemoryvalueaddress返回值是这个值所在的内存地址
Function FindProcessMemoryValueAddress(processName As String, FindValue As Long) As Long
Dim ProHandle As Long
If FindProcessHandle > 0 Then CloseHandle (FindProcessHandle)
FindProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, False, HasProName(processName))

Dim MemBf(3) As Byte
Dim i As Long, l As Long
Dim TmpBuf As Long
Dim LocalAdsIndex As Long
If FindProcessHandle = 0 Then Exit Function
For i = &H14E620 To &H7FFFF000 Step 4
If ReadProcessMemory(FindProcessHandle, ByVal i, MemBf(0), 4, ByVal 0) > 0 Then
CopyMemory TmpBuf, MemBf(3), 4
If TmpBuf = FindValue Then
FindProcessMemoryValueAddress = i
Exit For
End If
End If
Next
End Function

这样好像找不到
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 simon__sun 的回复:]

可以先用WinHex工具看能找到吧 如果能找到,然后看下内存址是多少 和你搜索的地址是否一样
[/Quote]winhex只是16进制编辑器,不是载入内存的。以前见到过一个vb搜索内存数值的代码范例的,找不到了,跟楼主的挺像。
赵4老师 2011-05-06
  • 打赏
  • 举报
回复
参考MSDN里面的例子程序pwalk
王二.麻子 2011-05-06
  • 打赏
  • 举报
回复
winhex不能在文件搜索吗?
文件搜索和内存搜索,搜到的地址有区别,但是存在就应该能搜到。搜不到是处理的不对。
比如For i = &H14E620 To &H7FFFF000 Step 4,这里,你的&H14E620这个地址是怎么来的?正确吗?是不是大了?
提权了没?
simon__sun 2011-05-05
  • 打赏
  • 举报
回复
可以先用WinHex工具看能找到吧 如果能找到,然后看下内存址是多少 和你搜索的地址是否一样

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧