(19)修改PDE PTE 的RW位使物理页可读写
一、PDE PTE 结构
低12位是权限位。低2位是RW位,RW=0表示只读,RW=1表示可读可写。
二、修改常量区数据
C语言中,修改常量区的字符串是不允许的,原因是物理页不具有写权限。
// PDE_PTE_P_RW.cpp : Defines the entry point for the console application.
//#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[])
{char *str = "Hello World";int addr = (int)str;printf("线性地址:0x%08x, 4*0x%x 4*0x%x 0x%x\n", addr, addr>>22,(addr>>12)&0x000002FF,addr&0x00000FFF);getchar(); // 修改 PDE PTE 的 RW 位为1,使物理页可读可写str[4] = ' ';printf("修改后:%s\n", str);return 0;
}
我在代码里已经按10-10-12模式拆好了线性地址,现在只要在windbg中找到PDE和PTE,将低2位改成1即可。
查CR3
!process 0 0
CR3=148af000
查PDE
!dd 148af000+4
PDE=19aef067
查PTE
!dd 19aef000+4*15
PTE=00c18025
查物理地址
!db 00c18000+818
确定没找错,然后观察发现PTE的RW=0,改成1就好了:
!ed 19aef054 00c18027
执行剩下的代码:
修改成功。
(19)修改PDE PTE 的RW位使物理页可读写相关推荐
- (18)修改 PTE 实现挂物理页读写空指针
一.10-10-12二级映射 下图是101012二级映射结构: 二.读写NULL指针 正常编程中,不能读写NULL,原因是NULL指针没有对应的物理页,因此,只要我们让NULL指针最终映射到一块可读写 ...
- 内核知识第八讲,PDE,PTE,页目录表,页表的内存管理
内核知识第八讲,PDE,PTE,页目录表,页表的内存管理 一丶查看GDT表. 我们通过WinDbg + 虚拟机可以进行双机调试.调试一下看下GDT表 我们知道,GDT表中.存储的是存储段信息. 保存了 ...
- 屏幕显示密度dpi_华为mate7——修改 DPI 屏幕密度 !可使屏幕在视觉上变得更大...
本帖最后由 丶浩南丶 于 2015-6-5 18:36 编辑 7eed1eeb1ec25a2f7c2eba32caac659a8147.jpg (99.56 KB, 下载次数: 106) 2015-6 ...
- 修改nw.js的exe文件使其请求管理员权限
修改nw.js的exe文件使其请求管理员权限 默认情况下,nw.js发布的nw.exe文件请求的是普通权限,当我们的应用需要访问一些特殊目录或者注册表等,就需要程序启动的时候以管理员权限运行.那么此时 ...
- (22)通过代码修改PTE实现挂物理页
一.原理 在windbg中,我们通过CR3找到页目录表,通过页目录表找到页表,期间使用的都是物理地址,物理地址在编程中是无法使用的. 我们在之前的学习中了解到页目录表和页表的结构和对应关系,如图: 我 ...
- 用ffmpeg修改MP4文件头信息,使其支持流式加载及播放
经常有用户反映,有些网页中加载的mp4文件,有的可以加载一点就开始播放,有的就必须全部加载完才能播. 经核实,主要是头信息的数据顺序有关,用工具:mp4info.exe可以查看mp4文件的结构信息: ...
- 修改了xiaoxia的sogou代理脚本使之能在windows下bind 127.0.0.1
修改了xiaoxia的sogou代理脚本使之能在windows下bind 127.0.0.1 orz...首先要说的是 乱google了一天,和乱下载各种python反编译程序,以及各种配置环境后,才 ...
- [转帖]CR3,PDE,PTE,TLB 内存管理的简单说明
CR3,PDE,PTE,TLB Copy From https://www.cnblogs.com/zzSoftware/archive/2013/02/11/2908824.html 网上关于vir ...
- Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频
Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权 ...
最新文章
- 你必须会的 JDK 动态代理和 CGLIB 动态代理
- Kali Linux 初上手记录 初始版本1.0.9
- 力扣(LeetCode)258. 各位相加
- 【渝粤教育】国家开放大学2018年春季 0599-21T工程造价管理基础理论与相关法规 参考试题
- 二叉树相关知识及求深度的代码实现
- tos重装mysql_云服务器(腾讯云)从零开始部署记录(3)之mysql5.7安装
- 从零开始学前端:jQuery官网 --- 今天你学习了吗?(CSS:Day26)
- pycharm python3.5 神奇的导入问题
- codevs 3160 最长公共子串
- 使用安全浏览器将网页保存为pdf的方法步骤
- java计算机毕业设计疫情防控期间网上教学管理源程序+mysql+系统+lw文档+远程调试
- 如何获取a股level2数据接口?
- 2022年QQ微信内置浏览器 UA 标识, Header 获取
- 常用广告过滤规则整理
- 2017年总结--心情篇
- d3.js一个面积图的案例(包含brush与zoom)
- android 新闻功能列表,Android中通过ListView的实现简单新闻列表
- 一个屌丝程序猿的人生(四十四)
- 拿到天使投资是一种怎样的体验
- Java毕设项目门诊管理系统补录(java+VUE+Mybatis+Maven+Mysql)
热门文章
- shell怎么把负数变成正数_excel怎么计算平方根-记住简单的收藏复杂的
- 计算机网络管理考核办法,开滦医院计算机网络管理考核细则
- 成功解决SQL Server软件中出现的18456问题
- ​​​​​​​DL之ResNeXt:ResNeXt算法的架构详解
- 原生js获取css样式
- Linux流量监控工具 - iftop (最全面的iftop教程)
- 查看dll 的是32位还是64位
- iOS编程中throttle那些事
- Hibernate 之单向多对一映射及其衍生问题
- easyui中tab页中js脚本无法加载的问题及解决方法