chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
阅读:1684回复:6

如何手动根据线形地址得到物理地址?

楼主#
更多 发布于:2008-01-15 14:24
我想手动的根据线形地址得到物理地址,然后去看那块物理内存的属性。但我不知道页目录的地址,我看到有硬编码的,有什么通用的方法获得吗?
boly81
驱动小牛
驱动小牛
  • 注册日期2004-06-25
  • 最后登录2012-06-08
  • 粉丝0
  • 关注0
  • 积分490分
  • 威望73点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-01-15 17:09

图片:1.GIF

图片:2.GIF

wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2008-01-15 19:40
抄MmGetPhysicalAddress 的实现。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-01-19 16:55
MmGetPhysicalAddress在不用操作系统版本下就很不相同啊。2000好象是一个直接的映射,而XP SP2好象就不是。
我想把GDT的地址转化为物理地址,在内核下使用sgdt gdtr得到的地址在f********,但在用户态下获得是c**********,我就觉得郁闷了,不一样。我定义的gdtr是
typedef struct _GDTR
{

}
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-01-19 17:12
typedef struct _GDTR
{
   USHORT limit;
   ULONG base;
}GDTR,*PGDTR;
不知道对不对,然后我把得到的base传入MmGetPhysicalAddress中,得到的物理地址是0。不关是用户态还是内核态得到的base转化出的物理地址都是0。设置用户态得到地址在windbg上都看不到内容。
这简直让人不敢相信啊。
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-01-20 13:28
有没有人给我解答啊?
wedday
驱动牛犊
驱动牛犊
  • 注册日期2007-08-02
  • 最后登录2009-04-03
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望26点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-01-20 22:58
在同一个帖子里问两个问题不好
游客

返回顶部