刚刚开始学CTF,记录一下做的第一道隐写题 ~

附件下载

题目背景(我自己瞎编的):

Luyu是CPPU的校草,一直以来他的写真照被各届校友广泛流传,最近江湖上流传着拿到这些照片就能知道Luyu的QQ号的传说。有一天你拿到了两张看似一模一样但文件大小却不同的两张Luyu的照片,现在你想挖掘照片背后隐藏的信息。

在获得了两张看似一模一样且名字分别是first.png和second.png的男神图片之后,我们考虑如何同时利用这两张图片的信息。

于是我们会使用一款stegsolve的用于查看隐写图片的小工具 点我下载

由于这是java编写的软件,所以需要实现安装好jre或者jdk环境。

stegsolve功能简介:

上面是工具打开之后的界面。主要功能为analyse(分析),下面对Analyse下面几个功能键作简单介绍:

File Format:文件格式,这个主要是查看图片的具体信息

Data Extract:数据抽取,图片中隐藏数据的抽取

Frame Browser:帧浏览器,主要是对GIF之类的动图进行分解,动图变成一张张图片,便于查看

Stegdetect可以检测到通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等这些隐写工具隐藏的信息
s – 修改检测算法的敏感度,该值的默认值为1。检测结果的匹配度与检测算法的敏感度成正比,算法敏感度的值越大,检测出的可疑文件包含敏感信息的可能性越大。

d – 打印带行号的调试信息。

t – 设置要检测哪些隐写工具(默认检测jopi),可设置的选项如下:

j – 检测图像中的信息是否是用jsteg嵌入的。

o – 检测图像中的信息是否是用outguess嵌入的。

p – 检测图像中的信息是否是用jphide嵌入的。

i – 检测图像中的信息是否是用invisible secrets嵌入的。
命令:stegdetect.exe -tjopi -s10.0 xxx.jpg

————————————————————————————————————————

显然我们既然有两张图,应该使用到Image Combiner功能,于是我们在打开first.png之后使用analyse->Image Combiner选择second.png将两张图片拼接。

将图片按像素位拼接的算法有AND、OR、SUB等,我们惊喜地在SUB(R,G,B Separate)模式下找了了一张不太清晰的二维码图片,于是我们暂时保存这张图。

鉴于这张二维码图片还不能扫描,而且看起来杂乱无章,我们怀疑这张图是由多张二维码拼接而形成的,于是我们可以再次使用stegsolve加载此图并在不同色域下分析这张图。

我们分别在Red plane 0、Green plane 0、Blue plane 0 下找到了三张清晰的二维码图。

但根据常识,这三张二维码图片看起来怪怪的,我们不难推测到这是原二维码经过"反色"处理后的图片。

于是我们可以使用 Mspaint(画图)或者其他随便的图片处理软件将三张二维码再次反色,获得原二维码。

接着我们使用二维码解析/制作软件PsQREdit (点我下载) 来反编译这三张二维码图像。

于是我们得到了三组文本信息:
DES

6XaMMbM7

U2FsdGVkX18IBEATgMBe8NqjIqp65CxRjjMxXIIUxIjBnAODJQRkSLQ/+lHBsjpv1BwwEawMo1c=

我们怀疑第一行的DES为加密算法,第二行为密钥,第二行为密文

于是可以在百度上找到一个在线DES解密工具网站进行解密即可。 (点我进入

CTF入门 |“男神”背后的隐写术的更多相关文章

  1. cdoj 1131 男神的礼物 区间dp

    男神的礼物 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1131 Descr ...

  2. 寻找INTERIGHT衬衫男神! [复制链接]

    寻找INTERIGHT衬衫男神! - 公告板 - 京东内部论坛 - Powered by Discuz! 寻找INTERIGHT衬衫男神!   [复制链接]

  3. UESTC_男神的约会 2015 UESTC Training for Dynamic Programming<Problem J>

    J - 男神的约会 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit ...

  4. UESTC_男神的礼物 2015 UESTC Training for Dynamic Programming<Problem A>

    A - 男神的礼物 Time Limit: 3000/3000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit ...

  5. CTF入门指南

    转自http://www.cnblogs.com/christychang/p/6032532.html ctf入门指南 如何入门?如何组队? capture the flag 夺旗比赛 类型: We ...

  6. CTF入门指南(0基础)

    ctf入门指南 如何入门?如何组队? capture the flag 夺旗比赛 类型: Web 密码学 pwn 程序的逻辑分析,漏洞利用windows.linux.小型机等 misc 杂项,隐写,数 ...

  7. 男神女神配——alpha阶段总结

    一.需求分析 虽然公共社交网络系统能够满足大多数高校校园用户在校园网络社交的需求,但是针对校园学习.工作和文化生活等方面的支持以及学校个性化需求方面却存在不足.利用电子校务平台的数据,设计了与真实校园 ...

  8. UESTC 2015dp专题 j 男神的约会 bfs

    男神的约会 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/65 Descri ...

  9. UESTC 2015dp专题 A 男神的礼物 区间dp

    男神的礼物 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/65 Descri ...

随机推荐

  1. ClientAbortException :客户端异常终止

    ClientAbortException :客户端异常终止 java.io.IOException: 你的主机中的软件中止了一个已建立的连接. 罪魁祸首: <img src="chec ...

  2. pyHamcrest

    概念 Hamcrest是用于编写匹配器对象的框架.他提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活.Hamcrest还有很好的可扩展性,能够创建自定义的匹配器. 支持语言 ...

  3. EF--封装三层架构IOC

    为什么分层? 不分层封装的话,下面的代码就是上端直接依赖于下端,也就是UI层直接依赖于数据访问层,分层一定要依赖抽象,满足依赖倒置原则,所以我们要封装,要分层 下面这张图和传统的三层略有不同,不同之处 ...

  4. Python——捕获异常

    一.什么是异常 """异常:错误,bug处理异常:尝试执行某句可能出现异常的语句, 若出错则用正确的代码去替代. try: 可能发生错误的代码except: 如果出现异常 ...

  5. Python——模块和包

    一.概念 """模块():一个python文件,以 .py 结尾,包含python对象定义和语句.模块可以定义函数.类.变量,也可包含可执行文件 导入模块: 1.impo ...

  6. workerman离线推送方案

    方案一:目前网上比较流行的 方案二:参考腾迅IM

  7. Git操作 :从一个分支cherry-pick多个commit到其他分支

    在branch1开发,进行多个提交,这时切换到branch2,想把之前branch1分支提交的commit都[复制]过来,怎么办? 首先切换到branch1分支,然后查看提交历史记录,也可以用sour ...

  8. Blazor初体验之寻找存储client-side jwt token的方法

    https://www.cnblogs.com/chen8854/p/securing-your-blazor-apps-authentication-with-clientside-blazor-u ...

  9. 多柱汉诺塔问题“通解”——c++

    多柱汉诺塔问题 绪言 有位同学看到了我的初赛模拟卷上有一道关于汉诺塔的数学题.大概就是要求4柱20盘的最小移动次数. 他的数学很不错,找到了应该怎样推. 如果要把n个盘子移到另一个柱子上,步骤如下: ...

  10. Qt代码区字符编码转换

    在做通讯练习的时候,发现发送给小助手字符乱码,图片如下 本人Qt Creator是UTF-8,需要改成gbk,代码如下 #include<QTextCodec> // 提供字符编码转换 Q ...