标签:保护模式 0000 kd 00000000 gdtAddress 2G 三环 84008933 dq
// 三环读高两G.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { int* gdtAddress = NULL; //定义个变量 getchar(); gdtAddress = (int*)0x80b95048; //复制一个高地址 *gdtAddress = 2; printf("%x,value =%x\n", gdtAddress,*gdtAddress); system("pause"); return 0; }
会出现读取失败,那么此时我们需要借助Windbg来辅助操作!
首先找到
0x80b95048地址
将他改写
0: kd> eq 80b95048 00000000`12345678 |
|
拆分
0x80b95048地址
拆分后:1000 0000 1011 1001 0101 0000 0100 1000
根据 2 9 9 12的物理页进行重组
因为结构大小为8位,如果要定义到目录还需乘它的位数
2位 :10 2*8 (0a9f4801 )
9位:00 0000 101 5*8 (00193063 )
9位:1100 1010 1 195*8 (00b95163 )
12 位:0000 0100 1000 48 (123456)这里已经到了具体指向数据了,所以它并不需要再乘位在虚拟机内运行程序,断在GETchar 然后再用Windbg接管
使用!process 0 0 来遍历所有进程 (如果需要读物理地址那么前面加个!)
填写000 则是为了防止读写属性参与运算!
0: kd> !dq beaf6220+2*8 #beaf6230 00000000`0a9f4801 00000000`0acf5801 #beaf6240 00000000`5d0ab801 00000000`5d8ac801 #beaf6250 00000000`5d8ad801 00000000`5d6ae801 #beaf6260 00000000`5c6b8801 00000000`5c4b9801 #beaf6270 00000000`5beba801 00000000`5c4bb801 #beaf6280 00000000`5dbc1801 00000000`5e0c2801 #beaf6290 00000000`5e1c3801 00000000`5e3c4801 #beaf62a0 00000000`5989e801 00000000`5919f801 0: kd> !dq 0a9f4000+5*8 # a9f4028 00000000`00193063 00000000`b6a02863 # a9f4038 00000000`00000000 00000000`001c2063 # a9f4048 00000000`001c3063 00000000`001c4063 # a9f4058 00000000`001c5063 00000000`001c6063 # a9f4068 00000000`001c7063 00000000`001c8063 # a9f4078 00000000`001c9063 00000000`001ca063 # a9f4088 00000000`001cb063 00000000`001cc063 # a9f4098 00000000`001cd063 00000000`001ce063 0: kd> !dq 00193000 + 195*8 # 193ca8 00000000`00b95163 00000000`00000000 # 193cb8 00000000`00000000 00000000`00000000 # 193cc8 00000000`00000000 00000000`00000000 # 193cd8 00000000`00000000 00000000`00000000 # 193ce8 00000000`00000000 00000000`00000000 # 193cf8 00000000`00000000 00000000`00000000 # 193d08 00000000`00000000 00000000`00000000 # 193d18 00000000`00000000 00000000`00000000 0: kd> !dq 00b95000 +48 # b95048 00000000`12345678 84008933`b0000068 # b95058 84008933`b0680068 00000000`00000000 # b95068 00000000`00000000 800092b9`500003ff # b95078 00000000`00000000 00000000`00000000 # b95088 00000000`00000000 00000000`00000000 # b95098 00000000`00000000 87008905`2f980068 # b950a8 00000000`00000000 00000000`00000000 # b950b8 00000000`00000000 00000000`00000000
原代码:
a9f4028 00000000`00193063 3拆分后是0011 属于超级用户才能访问
!ed a9f4028 00193067 7拆分后0111
把PDE第二位设置位普通用户
就是一层层的把超级权限改成用户权限!
标签:保护模式,0000,kd,00000000,gdtAddress,2G,三环,84008933,dq 来源: https://www.cnblogs.com/hanhandaren/p/11225817.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。