隐写术——计算机中数据隐藏的艺术

本贴最后更新于 1057 天前,其中的信息可能已经沧海桑田

dog.png

当你看到上面这张图片时,你认为这是一张普通不过的图片。你使用肉眼读出了图片本身的信息,但诚然,它还隐藏着你看不到的信息。

将该图片使用 StegSolve 打开,将红绿蓝任一通道调整至 0 时,惊奇的一幕出现了,图片左上方多了一个二维码。

202208221403.gif

使用微信或其他扫码工具查看得到了如下内容。

image.png

其实该图片是通过将原图像素值的 n 个最低有效位替换为与二维码图片像素值相同数量的最高有效位所得到的。该方法也称为 LSB 隐写(最低有效位隐写),该兴趣的朋友可以自行科普这方面的具体知识。


当你听到上面这段音频时,你认为这只是一段普通不过的曲子。仅凭耳朵你只能听到声音表面的信息,其实它的信息远不止这些。

将该音频拖入 SilentEye 中,使用 Decode 尝试解码,我们得到了一串由 1、0 和\组成的字符串。

image.png

显然这串字符串还有更深层的含义。正当你没了头绪的时候,突然想到了可以用“—”代表 1,“.”代表 0,这样就组成了一串 摩斯电码

转换之如下所示:

---.-.--.-.----/---..-.--....-./--..--....-----/--..---...-----/-.-.--.--.--.--/-..----.--...../--....---....-./---.--.-....-..

此时使用在线摩斯电码转换器或其他工具,你惊奇地还原出了一句地球人都懂的暗语。

image.png

上述隐藏数据的方法原理类似于图片的 LSB 隐写。当然,音频还能通过波形来隐藏数据,但或许听着会有些刺耳。音频 + 摩斯码的组合也曾被用于谍战中。


info.zip

当你打开上面的这个压缩包时,你变得比先前更为谨慎,虽然其中只有一个文档,但你却仔细观察文档的每一个角落,生怕会错过任何重要的信息。

image.png

文中只有一行字,但你 Ctrl+A 全选文档后,似乎在中间选中了什么,恭喜你发现了信息之外的信息,这是一行隐藏的文字。

image.png

通过打开 Word 选项并勾选“隐藏文字”后,方可查看到被隐藏的信息。

image.png

image.png

但这真的就结束了吗?

显然没有这么简单,问题并不出在这个文档上,而是蕴藏在这个压缩包上。

image.png

将其拖进 winhex 查看其十六进制,可以看到底部有一部分数据较其他数据完全不同,它十分的工整有序。

image.png

这里不卖关子了,其实这是一串通过 Base64 加密的字符串,通过在线的解密软件即可获得最终的信息。

image.png

上述数据隐藏的方法是通过将两个文件合并到达的,你也可以通过文件分离工具将其分离。


本文只是浅显的讲述了隐写术的奥秘,除了上面所提到的数据隐写的方法,还有数不胜数的方法。

如果你也和博主一样对隐写术感兴趣的话,推荐学习和阅读书籍 《数据隐藏技术揭秘》,如果你想进一步学习隐写术,你可以通过练习 CTF 杂项,解出难题后你一定会惊呼玄妙。

文章编写与素材制作不易,忘转载时附上文章来源,谢谢!

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Excel
    31 引用 • 28 回帖 • 1 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 642 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 522 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    188 引用 • 1057 回帖
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    85 引用 • 324 回帖
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 734 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    500 引用 • 1396 回帖 • 253 关注
  • CodeMirror
    2 引用 • 17 回帖 • 173 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    92 引用 • 752 回帖 • 2 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    37 引用 • 157 回帖 • 1 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    5 引用 • 16 回帖 • 1 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 77 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 1 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 826 关注
  • danl
    180 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 253 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1444 引用 • 10083 回帖 • 508 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 657 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    125 引用 • 74 回帖
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    10 引用 • 15 回帖
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 2 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    59 引用 • 25 回帖 • 3 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    336 引用 • 324 回帖 • 2 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖 • 2 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    186 引用 • 1021 回帖
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 2 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    76 引用 • 258 回帖 • 624 关注