免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5741 | 回复: 21
打印 上一主题 下一主题

linux X86 分页权限测试! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-23 14:58 |只看该作者 |倒序浏览
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>


  4. #define PAGE_SHIFT  12
  5. #define PAGE_SIZE (1u<<PAGE_SHIFT)
  6. #define PAGE_MASK ~(PAGE_SIZE-1)

  7. void test_page(char *pg_start)
  8. {
  9.     memset(pg_start, 'A', PAGE_SIZE-1);
  10.     *(pg_start+PAGE_SIZE-1) = '\0';
  11.     printf("strlen(pg_start) = %u \n", strlen(pg_start));
  12.     return;
  13. }

  14. int main()
  15. {
  16.     char *p;
  17.     char bak[PAGE_SIZE];
  18.     unsigned pg_start;

  19.     p = malloc(1);
  20.     pg_start = (unsigned)p&PAGE_MASK;
  21.     memcpy(bak, (char*)pg_start, PAGE_SIZE);
  22.     test_page((char *)pg_start);
  23.     memcpy((char*)pg_start, bak, PAGE_SIZE);
  24.     free(p);
  25.     return 0;
  26. }
复制代码
linux X86 32位机下故计应该跑不出段错误吧!跑出来的请报告!

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
2 [报告]
发表于 2010-08-23 15:03 |只看该作者
32、64跑了下都没错

论坛徽章:
0
3 [报告]
发表于 2010-08-23 15:06 |只看该作者
  64位X86 分页也是4K大小

论坛徽章:
0
4 [报告]
发表于 2010-08-23 15:17 |只看该作者
我记得分页大小可以调的,x86-64下还能调到GB级别的大小。

论坛徽章:
0
5 [报告]
发表于 2010-08-23 15:21 |只看该作者
回复 4# davelv


    linux没开PAE吧

论坛徽章:
0
6 [报告]
发表于 2010-08-23 15:38 |只看该作者
回复 5# zhangsuozhu
32位的Linux有PAE内核阿。

论坛徽章:
0
7 [报告]
发表于 2010-08-23 15:48 |只看该作者
呵呵开PAE也没问题。开PAE 页大小是2M。比4K还大。

论坛徽章:
0
8 [报告]
发表于 2010-08-23 17:21 |只看该作者
限定平台及操作系统就有的玩了。在分到的这一个页里想干啥干啥,想咋用咋用。用完恢复就行了!

论坛徽章:
0
9 [报告]
发表于 2010-08-23 17:38 |只看该作者
在堆上分配的页本来就可以读写啊?你这代码说明了什么分页权限啊?

论坛徽章:
0
10 [报告]
发表于 2010-08-23 17:39 |只看该作者
回复 8# zhangsuozhu


    在堆上分配的页本来就可以读写啊?你这代码说明了什么分页权限啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP