免费注册 查看新帖 |

Chinaunix

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

请教如何扫描所有内存页面的内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-10 17:04 |只看该作者 |倒序浏览
想做个模块,目的是扫描所有 使用中的内存页面(内核+用户),并对每个页面的内容计算hash,
请问 达到这个目的 需要怎么个思路,大概用到哪些函数或接口呢?

目前的想法,得到每个页表,一个一个察看,并计算? 不知是否可行,这样的话需要 用到哪些函数呢?
新手请教,谢谢

论坛徽章:
0
2 [报告]
发表于 2011-04-11 18:57 |只看该作者
好主意,很有趣.期待reslove

论坛徽章:
0
3 [报告]
发表于 2011-04-12 06:00 |只看该作者
我觉得把所有的页表看一遍效率不高。可以直接看物理地址啊。写个LKM, 得到 E820 MAP, 然后根据物理地址全都扫描一遍。。。。不过 E820里面有很多其他信息,比如OPTION ROM , ACPI 占用的内存空间。

论坛徽章:
0
4 [报告]
发表于 2011-04-13 10:05 |只看该作者
谢谢指点,我试试看:)

论坛徽章:
0
5 [报告]
发表于 2011-04-13 10:59 |只看该作者
还有一种方法,就是利用内核里面的buddy system,循环扫描所有节点和每个节点下面zone的所有一面,也能做到

论坛徽章:
0
6 [报告]
发表于 2011-04-13 16:55 |只看该作者
我个人感觉,只扫描slab部分会不会更有意义一些?

论坛徽章:
0
7 [报告]
发表于 2011-04-13 18:18 |只看该作者
回复 6# omycle


    slabe是基于buddy system之上的,里面只是保留了部分从buddy system得来的memeory,而不是所有的内存

论坛徽章:
0
8 [报告]
发表于 2011-04-20 12:42 |只看该作者
终于搞定了,呵呵,
本打算 用内核模块的,申请一个页面大小的虚拟地址空间,通过修改其对应的页表项 把这个空间映射到指定的物理内存页,再进行读取。

但是这样实现起来比较困难,后来在网上发现一个很简单的方法,利用/dev/mem设备文件 就可以访问所有的物理内存了。

所以用open,read,就能搞定了,用mmap映射后访问起来也很方便,于是我用mmap因映射后再访问物理页面。不过在实现的过程中来发现/dev/mem的fops中的read,mmap函数 对访问的物理地址空间有限制,很多物理地址空间不能访问。

网上搜了一下,是内核的CONFIG_X86_PAT功能和CONFIG_STRICT_DEVMEM(我用得debian这个选项是另外一个名字)功能的限制,把这个功能关掉,发现还是不行。

于是看了一下这连个功能的对应的代码,发现他们俩是或地关系,总有一个会成立,只好把这个做限制的函数注译掉,重新生成内核,终于可以正常访问了。哈哈

评分

参与人数 1可用积分 +6 收起 理由
Godbach + 6 感谢分享

查看全部评分

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
9 [报告]
发表于 2011-04-20 14:39 |只看该作者
对,可以直接读取 /dev/mem

论坛徽章:
0
10 [报告]
发表于 2011-04-21 15:09 |只看该作者
学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP