清空SWAP分区时遇到的问题
来源:互联网 发布:ktv相册制作软件 编辑:程序博客网 时间:2024/06/10 09:03
想要实现通过swap对swap out的程序进行攻击,就需要从swap分区搜索相应的二进制代码或数据。但是swap分区中只保存有换出的数据代码的内容,而没有它们与进程的对应的关系,所以很难找到它们之间的关系来进行攻击。所以我觉得要做一些准备工作,首先想到的是把swap分区清零,就是把不是用来管理的分区数据全都填充"0x00"。
网上提到的用swapoff -a和swapon -a来刷新swap分区的方法是不能奏效的,这两个操作只是把交换到swap分区的进程数据重新交换回内存,并清除了进程和swap分区数据的映射关系,而没有将swap分区的数据清零。这样做是无可厚非的,因为下次用到的时候不用关心之前是什么数据,直接去写就好了,而我们的实验由于特殊性,需要找到数据和进程的对应关系,swap分区上的残留数据会对我们的实验造成影响,所以需要将它清空。
我翻看swap分区的资料得知,在swap分区的第一页(每页4096字节)保存了swap分区信息,所以我们不可以修改这部分,把后面的内容清空就可以了
#cat /proc/swaps
可以看到我当前的swap分区是/dev/sda5
#sudo swapoff -a
把swap分区停掉,因为我们要修改其中的内容
#sudo dd if=/dev/zero of=/dev/sda5 bs=4096 seek=1
用dd对/dev/sda5做0填充,跳过前4096字节
#sudo swapon -a
再次启用swap分区时,出现了错误:
swapon: cannot find the device for UUID=...
是我们误操作改动了前一页的数据,还是除了前一页的分区信息外还有其他的分区信息?
从报错信息上来看,是找不到对应UUID的设备了,那么我们可以尝试重新制作swap分区,再修改fstab
#sudo mkswap -L SW-sda5 /dev/sda5
重新制作swap分区,并将分区卷标设置成SW-sda5
#sudo vim /etc/fstab
修改分区信息表,将swap分区那行记录修改为
/dev/sda5 swap swap defaults 0 0
保存退出,再次
#sudo swapon -a
没有报错
#free
看下内存使用信息
swap分区正常了
我们重新执行最开始的对swap分区的填零操作
#sudo swapoff -a
#sudo dd if=/dev/zero of=/dev/sda5 bs=4096 seek=1
#sudo swapon -a
- 清空SWAP分区时遇到的问题
- Linux释放内存后。清空swap分区
- 清空绑定字典 清空combobox 遇到一些问题
- 清空 ntfs 分区的 recycler
- stringstream的清空问题
- Jtable 清空的问题
- 学习PHP遇到的session不能删除、清空的问题,手贱啊手贱
- DBUnit清空数据库遇到外键约束问题的解决方法
- 利用Truncate清空Oracle各个分区的资料
- Sql Server分区表,清空单个分区的快捷方法
- 大数据量订正数据时,清空cache的问题
- 用memset清空数组时要注意的问题
- Linux系统清空swap脚本
- Jtable 排序,清空的问题
- Jtable 排序,清空的问题
- 【c语言】清空缓存 的问题
- 【c语言】清空缓存 的问题
- 关于stringstream流的清空问题
- 8
- Android开发笔记:运行程序
- MAC 10.8.2 上使用gedit(带命令行)
- error: failed to attach to process ID 0
- 怎么退出整个框架
- 清空SWAP分区时遇到的问题
- hibernate简单列子
- ubuntu 12.10 下载 Android 4.2 源码
- hdu1829A Bug's Life【并差集】
- 我们为什么要拆分用户故事
- 内存屏障
- Hibernate Dialect must be explicitly set 错误信息解决方法 .
- build ubuntu from source
- hbase的安装与配置(zookeeper3.4.3,hbase0.94.1,hadoop1.03)