导航:首页 > 数据处理 > 不知道模块地址如何读取数据

不知道模块地址如何读取数据

发布时间:2023-01-04 06:12:48

① 请问如何读取系统内存中任意地址的数据,如0x100,用C语言实现。

首先要明确windows 的内存管理方式, (在 windows XP 非 3GB enabled)。 ring3程序也就是用户空间的进程可以用的空间地址是 virtual address 0x00000000 - 0x7FFFFFFF ,注意virual address 呵呵,而 0x80000000 以后为内核使用 都是 virtual address啊。ring3 进程不能读取 0x80000000 以后的地址。0x0000000 - 0x7FFFFFFF 也并不是都可以读取的。这个空间中会根据系统需要由系统分配一定的 region 或一系列的 regions。只有位于这些 regions 的地址是可以被ring3 进程读取的。所以比如任意地址 如 0x100 若这个地址不再任何一个 region 当中。就会出错(指定地址无内存)。实际上即是说,系统没有为 0x100 这个地址建立页表映射,也就不可读。 若你所说想要实现读取内核地址空间,也只能读取已经建立了页表映射的地址。不然同样要出错。若想要判断一个地址是否是有效的,如你所担心的,用户可能传给你一个非法地址。可以用一些api 判断合法性。如 VirtualQuery 更强大的还有VirtualQueryEx。 http://msdn.microsoft.com/en-us/library/aa366902(VS.85).aspx。 也可以用异常处理历程。 try except (c++),c也有异常处理 不过不好用。

阅读全文

与不知道模块地址如何读取数据相关的资料

热点内容
新上一个功能需采集哪些数据 浏览:702
招聘基础信息怎么填 浏览:981
刘总现在在哪个市场 浏览:429
公交车驱动程序怎么取名 浏览:268
被抽样调查的原始数据叫什么 浏览:868
人保代驾如何使用代理 浏览:667
怎么引用表格中变动的数据 浏览:152
如何评选贫困户程序 浏览:234
房子按揭期间怎么变更信息 浏览:807
如何写社保方面的信息 浏览:108
普通工是什么技术等级 浏览:464
大梅子祛斑膏如何代理 浏览:245
代售和代理有什么不同 浏览:434
原生之罪四个程序员为什么被杀 浏览:146
如何隐藏筛选的数据 浏览:201
石龙岗宠物市场在哪里 浏览:199
松岗厨房净水器代理商怎么选 浏览:770
信息机房地面采用什么装修材料 浏览:97
有哪些玩家自由交易的手游 浏览:442
obd上的总线数据有哪些 浏览:104