【发布时间】:2014-10-31 08:59:55
【问题描述】:
我正在尝试在 256x256 png 图像中找到一条秘密消息,一个字符串。它应该是“使用了一种老派的技巧来隐藏数据”,而且显然在隐写术维基百科文章中提到了这种方法。
我首先尝试了在我看来最老派的东西:LSB 隐写术。但没有运气。我知道字符串的第一个和最后一个字符(“F”和“}”),我认为它们可能混合了常见的 lsb 方法,所以我检查了图片的第一个像素和最后一个像素我。但是,没有明显的组合(例如每个像素的只有红色值)会允许正确的字符。因此我很肯定它没有使用 lsb。
在相当绝望的尝试中,我看到 Wikipedia 谈到剥离最重要的六位,只留下最不重要的两位,然后对图片进行规范化。我写了一个小脚本来做到这一点,但这里也没有运气。
我还使用identify -verbose image.png 查看了元数据。没有。该文件应在 IEND 块之后结束,因此除此之外没有任何隐藏。
我的想法不多了,所以我的问题是:
任何可能归类为老派技巧的提示,我还没有尝试过?我确定我错过了一些明显的东西。这个练习是和其他一些练习一起完成的,乍一看,它们都比实际更难。
非常感谢。 :)
【问题讨论】:
-
有无数种方法可以在 PNG 中隐藏数据——另外还有一组无数种变体。例如,您的 LSB 尝试:您是否假设这些位是从左到右、从上到下、最高有效位在前存储的?
-
我知道有无数种方法,但它应该是“老派”的事实应该会缩小很多。我希望。我确实先尝试了最高位和最低位。最重要的是首先与其他实现一起工作。我没有尝试从上到下。无论哪种方式,前三位(第一个像素)已经不适合第一个预期字符(即假设数据当然从开头开始)。
-
试试这个:按照您现在阅读的确切顺序打印出最低有效位。这应该会给你一个 3*256x256
0s 和1s 的矩阵。如果您检测到某种模式(从左到右、自上而下或任何其他顺序),请用肉眼扫描。 -
这个问题是题外话,因为这里所谓的“老派”是主观的,因为存在不止一种可能性,即使选项池很小。这也与编码问题不完全相关。 Crypto Stack Exchange site 可能与此更相关。关于您的问题,我不会这么快就排除 LSB 嵌入,因为即使该方法是标准的,您也可以通过多种方式将其混合起来,唯一的解决方法是对原始数据进行真正的处理数据并找到一些模式。
-
@Jongware 我试图避免这种情况。我真的不希望有人为我解决它。只是一些讨论和一些提示,其他方法可能意味着什么。不过今晚我会尝试打印出来,听起来很有趣^_^。
标签: png steganography