隐写术

article/2025/7/20 16:43:22

目录

隐写(信息隐藏,steganography)

Stegsolve

Binwalk

MP3Stego

Bftools(Brainfuck)

F5-steganography-master

S-Tools


隐写(信息隐藏,steganography)

目的:以表面正常的数字载体如静止图象、数字音频和视频信号等作为掩护,在其中隐藏秘密信息。额外数据的嵌入既不改变载体信号的视、听觉效果,也不改变计算机文件的大小和格式(包括文件头),使隐蔽信息能以不为人知的方式进行传输

隐写分析:对多媒体信号进行统计分析,判断其中是否含有隐蔽信息

而隐写领域用的最多的就是对将要隐写的信息以二进制形式写入图片中,如:

copy /b 1.jpg+1.txt 2.jpg      #将1.txt以二进制形式写入到1.jpg的末尾,形成新文件2.jpg

一些图片格式16进制常见的头部和尾部(winhex打开查看)

jpg格式

  • 头部: 4A 46 49 46     JFIF

 

png格式

  • 头部:50 4E 47   PNG

 

jfif格式

头部:JFIF

gif格式

头部:47 49 46 38 39 61  GIF89a

在分析隐写文件的时候,会用到很多的工具,比如下面这些。我们接下来会讲些这些工具的用法。

 Stegsolve

stegsolve是一款用 java 写的图像隐写工具,可以查看图片的详细信息,每一层色阶等等,功能强大。

示例:http://www.shiyanbar.com/ctf/1768

把图片下载下来,打开,发现漆黑一片。

于是乎用Stegsolve打开,点击下面的向左或者向右按钮,出来了类似于二维码的图片,可是发现扫不出来。发现这跟正常的二维码图片有点不一样,好像反了。于是保存该图片

用PS打开,ctrl+i 进行反色,得到下面的二维码。扫描,得到flag。

Binwalk

Binwalk是用于搜索给定二进制镜像文件以获取嵌入其中的文件和代码的工具。 具体来说,它被设计用于识别嵌入固件镜像内的文件和代码。 Binwalk使用libmagic库,因此它与Unix文件实用程序创建的魔数签名兼容。 Binwalk还包括一个自定义魔数签名文件,其中包含常见的诸如压缩/存档文件,固件头,Linux内核,引导加载程序,文件系统等的固件映像中常见文件的改进魔数签名。

相关文章:https://www.aliyun.com/jiaocheng/122252.html

MP3Stego

MP3Stego是在将WAV文件压缩成mp3的过程中,将水印嵌入到mp3文件中。嵌入数据先被压缩、加密,然后隐藏在mp3比特流中,默认输出的mp3格式是单声道的128bit

示例:http://www.shiyanbar.com/ctf/58

下载该图片,是个美女,哇哇哇

把它交给 binwalk 处理下,发现里面含有zip压缩文件,zip压缩文件里面包含mp3格式的文件和另一个文件

于是乎将其分离,使用 -e 参数。得到 music.mp3 和一个 txt 文件。

打开txt文件,里面出现了钥匙。

把music.mp3文件放到MP3Stego里面,运行命令

decode.exe -X -P simctf music.mp3   #-X是获取隐藏的东西 -P指定密码

得到 music.mp3.txt 文件,打开,得到base64编码的数据

解码,得到 flag

利用MP3Stego加密

encode.exe -E key.txt -P 123456  test.wav  test.mp3  #将key.txt写入test.wmv中,密码为123456,最后胜出test.mp3文件

Bftools(Brainfuck)

示例:http://www.shiyanbar.com/ctf/1821

然后将其进行Base64解码,得到flag

F5-steganography-master

示例:http://www.shiyanbar.com/ctf/1938

下载该图片 123456.jpg  ,放入F5-steganography-master文件夹中,运行该命令

java Extract 123456.jpg -p 123456   #-p指定密码

得到 output.txt文件,打开,得到 flag

S-Tools

S-tools是一个时(空)域数字水印软件,支持 WAV 格式的音频文件、GIF和BMP格式的图像文件

示例:我们现在有一个 original.bmp 的图片,我们现在要利用S-tools将一个密码文件key.txt隐藏到该图片中

打开S-tools,界面是这样的。

我们现在将图片拖进去 

然后将我们的密码文件 key.txt 也拖进去 ,此时会叫我们输入密码,我们输入密码,点击ok。这里还可以选择加密算法

然后会生成我们写入隐藏数据后的图片,右键,save as 保存名为 hidden.bmp !此时key.txt已经写入图片中了,并且图片可以正常打开,是看不到任何不一样的。

那么我们如何解密呢?把 hidden.bmp 拖入S-Tools中,右键->Reveal ,然后输入我们的密码。密码和加密算法必须和我们加密时候的一样

然后就显示我们写入的 key.txt 文件了 

我们右键,Save as就可以把我们写入的文件保存下来了!

CTF隐写术的一些思路

当我们做CTF题,拿到图片之后

  1. 第一步:先右键查看属性——>详细信息看有没有隐藏东西。如果没发现东西,
  2. 第二步:用Stegsolve打开,看图层是否隐藏了东西。如果还是没有,
  3. 第三步:则用Winhex打开图片,查看图片十六进制数据中是否隐藏了东西,有时候还需要修改图片的十六进制数据。传送门:https://www.jianshu.com/p/262397d9610b

当我们做CTF题,拿到压缩包之后

  • 先解压缩,看能不能解压缩出来
  • 拿binwalk看一下压缩包里面有没有隐藏东西

本文中的工具:链接:  https://pan.baidu.com/s/1EJW0lEDZBi94TbRCsi74CQ           提取码: zyvr 

相关文章:隐写数据


http://chatgpt.dhexx.cn/article/rsHgeHN4.shtml

相关文章

OMNET++安装教程

安装: 如果你是windows系统,那么强烈推荐你跟着B站上的教程来学习,下面是链接。 这个博主讲的特别细致,而且会捎带讲几个例子,有助于我们快速的建立起来学习的信心!!! 当时我看到…

【OMNET++】OMNET如何开启Debug调试

1.前言 OMNET作为网络仿真软件,其编译语言为NEDC和C,在学习过程中我们该如何运用debug跟踪代码呢?这一讲我们简单和大家分享一下OMNET如何开启Debug调试。 可能我们翻阅很多资料,都会提到一句话,Window下的OMNET是基于…

【OMNET++】OMNET安装卸载说明以及原理探讨

前言 我们安装OMNET,参考file:///D:/omnetpp-5.4.1-src-windows/omnetpp-5.4.1/doc/InstallGuide.pdf的官方文档,其支持的平台很多,例如window、Ubuntu 、Linux以及红帽等系统,这篇博文以window为例,简单说明其中注意…

Ubuntu18.04 安装 omnet 5.6.2

1. 下载所需的OMNet版本 下载链接: OMNeT官网下载 2. 解压下载的omnet包,找到安装教程 解压方式:可以鼠标右击,选择Extract here;也可以在终端中使用命令行解压. 安装教程在: omnetpp-5.6.2-src-linux/omnetpp-5.6.2/doc/Install…

OMNeT学习之TicToc2-7详解

OMNeT学习之TicToc2-7详解 前言 安装好OMNeT,学会新建项目之后,开始学习OMNeT提供的tictoc案例,共17个,之前的博客中已经讲解了Tictoc1,本次学习2-7。 本人学习一个tictoc工程,主要就是看它的cc文件、ned…

omnet++构架与源码分析(1)

omnet模型以及运行环境部分使用c开发,IDE以及插件使用Eclipse以及插件方式开发。其中c代码位于解压后的include与src目录; src下面分为: sim:仿真内核类的CC代码;各种头文件,都在include目录;…

linux下运行omnet,Ubuntu安装Omnet++

1.官网下载Omnet++压缩包(https://omnetpp.org/),解压到安装文件夹 tar -zxvf omnetpp-5.1.1-src-linux.tgz /opt 2.运行./configure 报错configure: error: Bison not found, needed to build OMNeT++/OMNEST – please install it! 解决办法:安装bison,安装完成后会提示还…

OMNeT学习之新建工程

OMNeT学习之新建工程 前言 之前学习了OMNeT的安装与运行官方的实例代码,这篇文章记录一下,OMNeT如何创建一个新的项目。 本人为初学者,如有错误望批评指正! 本文原创,创作不易,转载请注明! …

omnet++ 之aloha示例 的动画效果分析

void Host::refreshDisplay() const {cCanvas *canvas getParentModule()->getCanvas();const int numCircles 20;const double circleLineWidth 10;// 第一次使用时候创建:如果没有传输波形图,则创建一个圆环内部填色,创建20个圆环&am…

【OMNeT+INET】详解OMNeT开源库INET(一)

1、前言 在我看来,网络模拟器是用于评估目标系统性能和能力的方便工具,不同的设计方案,在不同的配置下不同的操作条件和运行场景下,可以用于帮助理解系统并获得与性能相关的参数(例如吞吐量、延迟、稳定性、健壮性和可…

omnet结果分析anf文件

运行omnet项目,在result文件夹里生成vec 和sca 文件。这两个文件是模拟的统计信息。 我们下面来进行结果分析,首先要新建一个.anf 的分析文件。(直接双击vec文件系统会提示新建一个anf文件,finish)Finish 之后,把左侧result 文件夹里面所有的.sca、.vec 文件拖到Input fi…

一些OMNET使用心得

一些菜鸡学习心得,如果有错的话希望大佬能帮忙指出,感激不尽!! (底层组织结构是大佬帮忙写的,感谢大佬带入门) 项目组织 \prj \prjname \simulation \results package.ned omnet.ini n…

OMNET的安装说明

1.安装MingGW GCC编译环境的安装程序 1.下载安装包: http://www.mingw.org/download/installer 2.自动弹出一个窗口 3.选择下载  左栏选中basic Setup,右栏选中GCC和G,选择的方式右键 Mark for Installation 4.下载成功  点击菜单栏的In…

2022-04-21 Omnet学习笔记(一)

Omnet学习笔记(一) 前言 1、本机为Inspiron 5005,为64位,所用操作系统为Windos 10。所使用软件为Omnet-5.2.1。 2、推荐Omnet入门教程系列 实验现象 在网络Tictoc1中创建两个节点,分别命名为"tic"和"t…

OMNeT++学习(概述+框架)一

中文手册地址 之前一直学习的是mininet,但是所做的方向有一个开源的代码,和我需要的框架一样,它用的仿真器是Omnetpp-5.4.1。 概述 omnet是开源的基于组件的模块化的开放网络仿真平台。是离散事件仿真器,具备强大完善的图形界面…

OMNeT学习之OMNeT安装与运行

OMNeT学习之OMNeT安装与运行 前言 本文原创,创作不易,转载请注明!!! 本人为OMNet初学者,如有错误,请不吝请教! 最近学WSN(无线传感器网络),做传感器实验,老…

omnet++ 快速入门 | 计算机网络仿真 | omnet++ 入门教程

文章目录 omnet1 网络仿真软件综述01 wsn仿真软件02 为什么使用omnet03 学习资料04 目标 2 omnet介绍1 omnet安装与启动2 使用omnet仿真的一般步骤3 新建项目 3 定义仿真网络的拓扑结构01 新建一个空的 network02 Module的概念01-Module的概念02-Module Type的定义步骤1. ned文…

无图无真相!设计模式概览

设计模式太多,最近没有更新,最后想想还是看一点更新一点吧。

Mac系统Safari浏览器启动无图模式

有的时候我们用热点上网,图片的出现会消耗大量的流量,这时候就需要启动无图模式不加载图片。 步骤:启动Safari浏览器->偏好设置->高级->勾选“在菜单栏中显示“开发”菜单”->点击开发菜单->勾选“停用图像” 转载于:https://…

无图无真相!工厂模式结构

抽象类工厂模式结构图: 接口类工厂模式结构图: 工厂模式示例代码 工厂静态方法说明