使用 Unix 和 Linux FS,我的目标是写入如下数据:
10011010 11101001 01011011 10110110 01100011 01111110 00010001 11100101 10011101 01110000 11111110 11111111 10000001 10011100 11011100 10011111
进入一个文件(进入文件“位序列”......快速地说),但是:
- 不在文件内容中,
- 也不在元数据(ext.attributes)中
这只是可能吗?又不破坏文件完整性?
答案1
由于这对于评论来说太大了,我将其作为答案发布......
如果您想要的是将信息写入磁盘上文件之外的信息,而不会被文件系统解释(这样它就不会显示它并在不覆盖它的情况下忽略它),那么您将不得不深入研究 FS 内部并查看怎么做对于特定的 FS您可能需要欺骗它,让它认为文件比实际文件大,这样它就不会删除您的信息(如果您只是在磁盘上写入数据,FS 会将其视为可用空间,并且有一天它可能会使用它)。您还需要使文件实际上更短,以允许将额外字节写入文件外部并直接写入磁盘上。您很可能需要编写自己的程序来做到这一点,您可以直接写入磁盘,但dd
要确定需要写入的正确位置,最好制作一个真正的程序,而不是脚本或简单的echo
命令。
您可以创建一个小分区并直接在其中写入您的信息,但它很容易被发现(小分区或没有 FS 的分区可能会很可疑)。
如果您想在不会启动的硬盘上隐藏您的信息,您可以使用启动代码所在的 MBR 部分来安全地存储您的信息(这意味着它不会被任何人覆盖 - 除非您编写一个新的 MBR - 并不是说它看不到,因为dd if=/dev/sdb of=your_file bs=512 count=1
如果您没有加密信息,任何人都可以读取 MBR)。
最后但并非最不重要的一点是,正如我在评论中所说,您可以使用隐写术来隐藏您的信息,效果很好,但如果您也想要安全性,您可以首先对信息进行加密,然后使用隐写术来隐藏它。从安全角度来看,信息进入文件内部或信息进入文件外部这一事实并不重要,因为如果信息被窃取,肉眼将无法看到。您可以将其与通过默默无闻实现的安全性进行比较,最终,这根本就不是安全性。
正如我在评论中所述,您可以使用隐写术将信息隐藏在 jpg、mp3 或您想要的任何类型的文件中。您甚至可以使用文本文件并使用在消息中隐藏消息的旧方法(每个 X 个单词都是新消息的一部分,因此如果您不知道,您将阅读该消息而不会注意到其他消息)。