清空SWAP分区时遇到的问题

想要实现通过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=...

是我们误操作改动了前一页的数据,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值