清空SWAP分区时遇到的问题

本文介绍了在尝试清空swap分区时遇到的问题及其解决方案。通过swapoff和swapon命令无法达到清零效果,因为它们仅重置映射关系而非数据。通过dd命令跳过首页面进行填充可以实现,但在过程中可能会导致UUID丢失,需要通过mkswap和修改fstab恢复。最终成功清空swap并确保其正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值