zoukankan      html  css  js  c++  java
  • [原]线性地址到物理地址转换后记

    之前想手动查找线性地址对应的物理地址,以更好的理解操作系统的分页机制,cr3的值和指定进程的EPROCESS的值总是对不上。

     
    今天突然灵光一闪,想起来张老师说过的关于CR3的相关知识,CR3是操作系统在切换进程的时候才会更新的,我们用.process /p 指定
    特定进程的时候,CR3的值是中断到调试器那一刻正在运行的进程的页目录基址(PDB),而不是我们指定的进程的页目录基址,所以不一样是很正常的。换句话说.process /p只指定此刻我们想操作哪个进程,比如下断点啊什么的,都是针对我们指定的进程。
     
    如果我们想让CR3和EPROCESS值一样,我们可以这样。
    .process /p notepad_eprocess
    .reload /user
    bp API
    g
    一会当notepad调用指定的api时就会中断到调试器,此时CR3的值就是notepad的页目录基址,我们可以放心用CR3进行转换啦。
     
    后来转念一想,虚拟地址到物理地址的转换不就是根据页目录指针么,可以通过CR3获取,也可以直接从进程获取。
    !process命令就给出了baseDir的值,直接通过此值进行转换就OK了,经测试效果很好,妈妈再也不用担心物理地址找不到了。
     





  • 相关阅读:
    jQuery之五:CheckBox控制
    WinServer2003 设置之:xp风格
    ASP.net: cookie
    ASP.NET之:URL重写(转载)
    jQuery 之二:Ajax加载Json数据
    jQuery 之一:对象插件
    Asp.net:Form
    jQuery之四:Table过滤
    jQuery之三:Tab控制
    Opera 9.01 Build 8543
  • 原文地址:https://www.cnblogs.com/bianchengnan/p/6231588.html
Copyright © 2011-2022 走看看