zoukankan      html  css  js  c++  java
  • 10_PAE_非PAE

    前置知识:

    在 windows 中 保护模式 有两种模式: 段保护 和 页保护

    段保护 主要体现在 段选择子上;但是数据段、代码段、栈段等采用的都是4GB平坦模式,段的特征并没有那样展现。所以具体的保护机制 采用的是页保护。

    PAE和 非PAE:

    页保护 有两种:

    • 非 PAE

    • PAE

    开启 PAE:

    在 boot.ini 中 设置:为 noexcute -- 即不可执行 ;激活 DEP 的功能 -在这个时候 使用的是 PAE(因为早期的非PAE 并不支持数据执行保护);

    1570358466469

    选择 为 execute -optin 后 这里的 数据执行保护 是灰色的 根本就不能设置。这时候 就是 非 PAE 模式下。相反 就是 PAE 模式下。

    1570358224227

    图解 非 PAE:

    1570362243698

    图解 PAE:

    1570362601680

    注意: 内核地址中 专门有一块却与用来存放 pte表、pde 表的 非pae 是 4MB , pae 由于每项是8byte 所以变为 8MB;

    这里 假设一个虚拟地址 0x403018 则:

    1570368509955

    手动模拟 解析 PAE地址:

    1. 获取测试进程的cr3

      > !process 0 0 // 获取当前进程列表,找到测试进程的 dirbase = cr3

      1570362758693

    2. 解析虚拟地址 0x403018

      > .formats 0x403018 // 查看二进制

      1570362901121

      然后手动分解 pdpte pde pte offset :

      ---// 00 000000010 000000011 000000011000

      ---// 0 2 3 18

    3. 结合windbg 找对应的物理地址:

      1. 找 pdpte 中的项 pde 的地址

        cr3 + 8*0

      2. 找 pde 中的项 pte 的地址

        pde + 2*8

      3. 找 pte 中 页的地址

        pte + 3*8

      4. 页的 地址 + offset 即 是 目标物理地址

        p + 18

    4. 如图:

      1570363455610

      1570363577341

    /i 进程调度的时候 切换 进程到指定进程:

    g 运行起来 激活 调度;以至于到目标进程的时候停下来

    1570367794662

    查看 当前进程 的 cr3

    1570367942197

    使用 db 查看这时候进程空间 虚拟地址 数据

    1570368037573

    使用 windbg 解析 虚拟地址对应的物理地址:

    !vtop 有两个参数

    第一个对应的是 cr3

    第二个参数 是 对应进程的虚拟地址。

    1570368115379

    使用 !pte 0xaddr 查看对应addr 中的页属性(前提:必须切换到当前进程,cr3也需要切换到,即 !process 0 0; .process /i xxxxx;g;)

    通过下面这两个公式 解析出所在的 pde 、pte

    1570369364940

    1570369450390

    修改pte 属性,关闭dep

    1570369215249


  • 相关阅读:
    Data type
    Backup &recovery备份和还原
    spring AOP Capability and Goals
    CDI services--Scope(生命周期)&&EL.(Sp El)
    CDI services--Event(事件)
    CDI services--interceptors(拦截器)
    CDI services--Decorators(装饰器)
    javaEE Design Patter(2)设计模式
    Http协议详解
    PRESCAN_DISCTANCE_ROBOT_INOUT_TOO_BIG
  • 原文地址:https://www.cnblogs.com/leibso-cy/p/11719191.html
Copyright © 2011-2022 走看看