从0开始学杂项 第二期:隐写分析(1) 直接附加
Misc学习(二) - 隐写分析:直接附加
在上一期,我主要谈了谈对于杂项的一些浅薄理解,这一期我们正式开始对于CTF杂项的学习,我们首先学习的是杂项中最常考察的一项——隐写分析。
这篇文章的大部分来自于我为了科学之光冬令营20号下午的讲课所准备的大纲。
一. 什么是隐写分析
有些时候,我们想把一些信息或者文件隐藏在某些文件之中,就可以利用隐写术来达到我们的目的。而针对那些有隐藏信息的文件,我们从中获取到被隐藏的信息的过程就叫做隐写分析。
隐写分析是 Misc 中最为重要的项目之一,包括文件分析、信息隐写等等,涉及巧妙的编码、隐藏数据、层层嵌套的文件中的文件等等于杂项一样,它也喜欢考察一些并非为我们所掌握的小知识,比如一些从来没听说过的乱七八糟的密码(比如与佛论禅加密、颜文字加密等等),我们需要善用自己的信息搜集能力(其实就是查百度),在这里顺便简单介绍一下信息搜集。
信息搜集
我的理解是,信息搜集就是针对某一目标,在搜集它/他/她的明显信息后,通过进一步的信息整合与分析得到他的隐蔽信息。
(此处省略500字)
“知己知彼,百战百胜。”我们学习信息搜集只是为了更好地防止自己的信息被搜集,提高自身信息安全意识,自觉保护个人信息,防止自己的隐私被窥探。
但其实,我们做隐写分析也用不到什么高深的技术,在这里我推荐使用 Bing(国内查不到还能顺手查查国外的)。当碰到自己的知识盲区时,我们需要准确地找出自己想问的问题,比如[BUUCTF]荷兰宽带数据泄露,下载后我们得到了一个 conf.bin 文件,我觉得可能大部分人都不清楚这是个什么玩意,编辑器打开一看还是堆乱码,这个时候我们就需要使用搜索引擎了。
我们首先要明确自己的问题: conf.bin 文件是什么,输入搜索框,回车,很快便能得知这是路由器的备份配置文件,要用 RouterPassView.exe 打开查看。
其它的问题大抵也是如此,只要我们准确把握问题主干,搜索引擎大多数时候都会给我们想要的结果。
二. 直接附加
本节我们需要的工具:一个十六进制编辑器(010 Editer 或者 WinHex 等等),最好有个 Kali Linux 虚拟机
我们都知道,文件的扩展名往往反映了文件的类型,但又不一定准确,因为我们可以随意地去修改它。比如我们把可以一个 jpg 图片文件改名成 xxx.png,无论我们学过学过计算机知识都应该知道 JPG 和 PNG 不是同一个东西,但是我们双击却依然可以用图片查看器查看这张图片,这说明程序有自己的方式去判断这是什么类型的文件,从而选择读取这张图片内容的方式,这就是文件头的作用。
大部分文件类型有其固定的文件结构,基本结构为:
文件头 + 文件内容(+ 文件尾) //文件尾可能有可能没有
图片查看器打开图片文件时,首先会根据文件头判断它是哪种类型的文件,然后再根据文件类型选择恰当的读取方式。一般来说,程序在读取有文件尾的文件时一般只会读到文件尾,并不会关注后面还有没有别的内容。
所以对于有文件尾的文件类型A来说,文件尾之后的内容往往不会对文件的查看有影响,增加的内容普通情况下不会被发现(拿十六进制编辑器不算普通情况)。我们可以往它的文件尾后面添加字符,数字,甚至是藏一个别的文件,这就是直接附加。
要分离出附加在文件A后面的文件,可以通过在十六进制编辑器中观察文件尾后中隐含的文件头信息来判断文件A中附加的文件类型,从而进行提取,常见文件类型文件头(尾)如下:
文件类型 |
文件头 |
文件尾 |
JPEG( jpg ) |
FF D8 FF |
FF D9 |
PNG |
89 50 4E 47 |
AE 42 60 82 |
GIF |
47 49 46 38 |
00 3B |
ZIP |
50 4B 03 04 |
50 4B |
RAR |
52 61 72 21 |
/ |
Wave(wav) |
57 41 56 45 |
/ |
类型列举不全,更详细的可以看大佬博客:https://blog.csdn.net/Ahuuua/article/details/109165473
说实话,我不推荐肉眼观察法提取(楽),一个是考验记忆力和眼力,最主要的是可能有藏比作者把一个相同类型的文件藏一个文件里,然后在前一个文件的文件尾和后一个文件的文件头之间藏东西(我是深受其害),对于我这种喜欢先拉到最后看文件尾的人很不友好。
我推荐使用 Binwalk 工具(Kali Linux自带)和 Foremost 工具(如果你的 linux 没有的话可以输入 apt-get install foremost 回车,其他工具类似)分离文件A中附加的其他文件,Binwalk 可以自动分析一个文件中包含的多个文件并将它们提取出来,Foremost 也可以分离文件而且有时候更好用一点,我们可以先用 Binwalk 进行分析,如果有隐藏文件再用 Foremost 分离,我们经常使用的一些相关使用方法如下:
binwalk [文件A] #分析文件A
binwalk -e [文件A] #分析文件A后自动提取已知的文件类型的隐藏文件
foremost [文件A] #分离文件A的隐藏文件,存到与文件A同目录的output文件夹中,同时在文件夹中生成一个日志文件
更详细的使用方法我懒得写了(笑,以后可能统一写写),不过一般也用不着
例题
找了道例题:[BUUCTF] 二维码 大家可以自己先尝试一下,如果有困难再去看下面的题解。顺便说一下,做CTF题,遇到不会的题看题解是一件非常正常的事,关键在于能不能在这道题中吸取教训,只要下次做到类似的能做对就行,这也是一个积累经验的过程(最好看完自己不会的地方再自己做,不要照抄 flag)。
题解
下载下来是一张 PNG 格式的二维码,盲猜扫出来肯定不是结果。扔到 WinHex 中(或者 010-Editor ),一眼看到 png 文件尾和 zip 文件头(看多了就能一眼盯真
从0开始学杂项 第二期:隐写分析(1) 直接附加相关推荐
- 从0开始学杂项 第一期:什么是杂项
Misc学习(一) - 什么是杂项 前言 说句实话,在写这篇博客的20天前,我甚至都不知道什么是杂项.在这十几天里,我也只是对杂项进行了一个比较初步的学习,对各种工具的应用.对各种知识的掌握也只能算掌 ...
- Deep Learning Hierarchical Representations for Image Steganalysis【Ye-Net:图像隐写分析的深度学习层次表示】
Deep Learning Hierarchical Representations for Image Steganalysis [Ye-Net:图像隐写分析的深度学习层次表示] Abstract ...
- SRM高维特征隐写分析原理与应用
一.SRM简介 SRM(Spatial Rich Model) 为基于空域富模型的隐写分析方法,由Fridrich等人[1] 提出,主要用于空域编码图像的隐写分析,在基于传统的提取手工特征的方式中 ...
- 网络语音流隐写分析全流程 (Steganalysis of VoIP Speech Streams)
欢迎访问我的个人博客:https://hi.junono.com/ AMR隐写数据集地址(Kaggle) 网络语音流隐写分析全流程 隐写分析流程介绍: 基本知识 **基于网络语音(VoIP)流的隐写术 ...
- RS(Regular Singular)隐写分析及实现
上篇博客介绍了LSB(最低有效位)算法. 这篇针对LSB算法介绍RS隐写分析的实现. 先介绍几个概念: 翻转函数为: 平滑度函数为: 掩码算子M为: 掩码算子可以取随机0,1但是一定要各占50%概率. ...
- YEDROUDJ-NET: AN EFFICIENT CNN FOR SPATIAL STEGANALYSIS【Yedroudj-Net:一个高效的空间隐写分析CNN】
YEDROUDJ-NET: AN EFFICIENT CNN FOR SPATIAL STEGANALYSIS [Yedroudj-Net:一个高效的空间隐写分析CNN] ABSTRACT 在大约10 ...
- 基于深度学习的图像隐写分析综述 阅读
背景 隐写术英文为Steganography. 现有的通信安全保障主要分为加密和信息隐藏:加密主要对秘密信息本身进行操作,但经过特殊处理后的明文更加容易受到第三方的怀疑;而信息隐藏则隐藏秘密数据的存在 ...
- 数字图像隐写术之JPEG 隐写分析
目录 问题描述 一.程序功能 1.程序功能描述(task1-task5为五个主程序,其余为辅程序) 2.程序输入 3.程序输出 二.隐写分析原理 三.程序设计 四.总结讨论及探索 五.附录代码 问题描 ...
- matlab 隐写分析,RS隐写分析.ppt
RS隐写分析,rs隐写分析matlab,rs隐写分析算法,隐写分析,图像隐写分析matlab,图像隐写分析方法,rs网络分析仪,rs分析法,rs触发器分析,rs网络分析仪怎么用 RS analysis ...
最新文章
- Elasticsearch的前后台运行与停止(rpm包方式)
- hibernate动态表名映射
- ironpython不想要可以卸载吗_使用IronPython给.Net程序
- leetcode精选
- 数据库编程起别名的3中方式
- ArcGIS实验教程——实验三十四:ArcGIS地统计分析全解(直方图、正态QQ图、趋势分析、voronoi图、半变异函数、协方差云)
- python 分布图_python数据分布型图表柱形分布图系列带误差线的柱形图
- 问题 G: 区间权值
- 操作系统(八)进程管理——进程同步
- 全渠道java b2b b2c o2o平台
- BZOJ 1191 [HNOI2006]超级英雄Hero
- 遍历enum(连续型)
- 微信微订货店:品牌支持,走在同行业的前列。代理,仅仅是寻求双赢
- Java进阶:SpringMVC中放行静态资源
- bes2300 tws配对_入门级TWS真无线耳机对比评测,看完之后你就知道怎么买了
- 2020年下半年信息系统项目管理师综合知识真题试题解析
- Java中的反射机制
- c语言实现万年历程序
- matlab已知热敏电阻数据,Matlab在热敏电阻特性测量实验中的应用
- 转载:中国经济酷似日泡沫时代:股市上涨和楼价疯涨