当前位置:  开发笔记 > 编程语言 > 正文

如何在地址空间找到漏洞?

如何解决《如何在地址空间找到漏洞?》经验,为你挑选了1个好方法。

我有一组文件,其长度都是我操作系统(FreeBSD 10)页面大小的倍数.我想将mmap()这些文件连接到RAM的连续页面,这使我能够将一组文件视为一个大型数据.

最好使用便携式功能,如何找到一个足够大的未映射地址空间区域,这样我才能确定mmap()对该区域的一系列调用是否会成功?



1> chqrlie..:

跟着这些步骤:

    首先计算枚举文件并总结其大小所需的总大小.

    映射此大小的单个匿名内存区域mmap.如果失败了,你输了.

    保存指针和unmap区域(实际上,unmap如果mmap具有固定地址的系统隐式取消映射任何先前的重叠区域,则可能不需要).

    使用适当的MAP_FIXED标志映射此地址的第一个文件.

    按文件大小增加地址.

    循环到步骤4,直到所有文件都已映射.

这应该可以完全移植到任何POSIX系统,但是某些操作系统可能会有一些阻止这种方法的怪癖.试试吧.


哦,是的,你甚至不需要取消映射区域 - 就我所关心的问题而言,`mmap`会很快地用'MAP_FIXED`映射到它上面.
推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有