首页
社区
课程
招聘
[讨论]这样验证内存是否存在是否可行?
发表于: 2012-11-27 18:13 3671

[讨论]这样验证内存是否存在是否可行?

2012-11-27 18:13
3671
学虚拟地址转物理地址时偶然发现的,
虚拟地址转物理地址时
我是这样的(开了PAE);

右移_ (虚拟地址, 12)
左移_ (虚拟地址, 12)
右移_ (虚拟地址, 9)
虚拟地址=虚拟地址+PTE_BASE          (PTE_BASE为C0000000h)

然后读入虚拟地址1个dword的内容,发现,貌似虚拟地址存在时,返回正常,如果虚拟地址
不存在,则发现读入的是0(最关键的是,居然没蓝屏~,)
,
一个大胆的想法,是否可以这样验证虚拟地址是否存在,省去了seh的麻烦...

为什么这样哦?这是因为没有初始化什么东西吗~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 31
活跃值: (48)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
右移_ (虚拟地址, 12)
左移_ (虚拟地址, 12)
右移_ (虚拟地址, 9)
楼主,这3行没看懂,求科普。
2012-11-27 23:27
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
a = 虚拟地址
a = 右移_ (a, 12)
a = 左移_ (a, 12)
a = 右移_ (a, 9)

a = a + #PTE_BASE
调试输出 (“物理地址 :  ”, 读内存_DWord_ (a))

返回 (左移_ (右移_ (读内存_DWord_ (a), 12), 12) + 位与_ (整数, 十六到十 (“FFF”)))


其实我也不懂,这样就能得到虚拟地址的物理地址
2012-11-28 09:43
0
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
就算是易语言 也得把你这个奇葩的左移_  右移_函数写出来看看吧
2012-11-29 09:51
0
游客
登录 | 注册 方可回帖
返回
//