VB6找到指针指向的内存地址 30

例如:指针基地址为:00513578偏移量:F43FC就是说查看指针指向的内存地址用VB6实现。... 例如:指针基地址为:00513578 偏移量:F43FC 就是说查看指针指向的内存地址
用VB6实现。
展开
 我来答
深海_蓝鱼
2013-07-12 · TA获得超过423个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:237万
展开全部
#include <stdio.h>
#include <iostream>
int main(int argc, char* argv[])
{
int *p;
int address=0x400000;//比如你要把地址值0x400000赋给整型指针p
memcpy(&p,&address,4);
std::cout<<*p;//输出p指向的地址的整型值
//注意:这很可能会报内存访问错误,因为内存分配是由操作系统干预的,用户不能想在哪个地址读写就在哪个地址读写
}

 至于基址偏址也是一样的原理,只不过address值通过计算获得

 

VB要完成这个任务真新很麻烦。

指针变量 p,在c++中可以简单的用 *p 来访问,那在 vb 中怎么访问呢?

在 vb 中,我们可以使用 copymemory函数别名。

declare sub vbgettarget lb "kernel32" alias "rtlmovememory"(target as any,byval lpoint as long,byval cbcopy as long)

例子:
dim pointer as long
dim target as integer
dim i as integer
i=128
pointer=varptr(i) '获得指针
vbgettarget target,pointer,lenb(target)
debug.print target

追问
看不懂,还是非常谢谢你,我是得到一个游戏的指针地址,因为游戏每次重新启动,其他的内存地址都改变了,只有这个指针地址没改变。而且它指向的内存数据也是正确的,但是就是不知道如何用VB操作它。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq122755189
2013-07-16
知道答主
回答量:7
采纳率:0%
帮助的人:1万
展开全部
首先获取窗口句柄 可以用FindWindow
然后获取进程PID 可以用GetWindowThreadProcessId
当然也可以通过进程名取ID
然后打开进程返回对象句柄 OpenProcess
最后读写内存 WriteProcessMemory
追问
能详细些吗?是查看指针,不是查看内存地址啊
追答
加我说吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式