隐写术技术深入分析

article/2025/7/20 16:45:59

文章目录

  • 0x01 隐写术概要
  • 0x02 特征
  • 0x03 隐写术应用
  • 0x04 题目解析思路

0x01 隐写术概要

首先看一下官方定义,“隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。”

简单说就是将一种东西隐藏在另一种东西中,在现实中例如图片版权问题,就可以看似运用隐写技术将所有者的id或身份验证添加到图片中,也可以应用于核实身份

在CTF的Misc中,经常会看到关于隐写的题目

0x02 特征

  1. 鲁棒性((robustness)
    鲁棒来自于“Robust”,也可以理解为健壮性,指不因某种改动而导致隐藏信息丢失的能力。比如传输时的噪音或滤波操作、重采样、有损编码压缩等

  2. 不可检测性(undetectability)
    指隐蔽载体与原始载体具有一致的特性,如具有一致的统计噪声分布等,以便使非法拦截者无法判断是否有隐蔽信息

  3. 透明性(invisibility)
    利用人类视觉系统或人类听觉系统属性,经过一系列隐藏处理,使目标数据没有明显的降质现象,而隐藏的数据却无法人为地看见或听见

  4. 安全性(security)
    指隐藏算法有较强的抗攻击能力,即它必须能够承受一定程度的人为攻击,而使隐藏信息不会被破坏

0x03 隐写术应用

  1. 可以隐藏互联网上涉及敏感信息的交谈内容
  2. 在发送方发送的内容中添加水印等识别所有者的信息,属于不可抵赖性
  3. 可以在数据传输中保证数据的完整性

0x04 题目解析思路

使用binwalk的话,使用kali,“binwalk 图片名”

binwalk中的参数
-e, --extract 自动提取已知的文件类型
-D, --dd=<type[:ext[:cmd]]> 提取签名(正则表达式),给文件一个扩展名,然后执行
-M, --matryoshka 递归扫描提取的文件
-d, --depth= 限制matyoshka递归深度(默认值:8级深度)
-C, --directory= 解压文件/文件夹到自定义目录(默认:当前工作目录)
-j, --size= 限制每个提取文件的大小
-n, --count= 限制提取文件的数量
-r, --rm 解压后删除刻录的文件
-z, --carve 从文件中提取数据,但不要执行提取实用程序
-V, --subdirs 提取到由偏移量命名的子目录中

图片类隐型经常会将一部分数据隐藏在一张图片中,判断思路可以,Jpg格式的文件在16进制中的表示是以 ff d9 两个字节结尾,可以通过判断末尾来判断是否为真正的图片文件,有时也可以通过文件的大小稍加判断

在这里插入图片描述

import binascii
filename = 'LIzOKZIuElF1WHKA.png'
with open(filename, 'rb') as f:content = f.read()
print(binascii.hexlify(content).upper())

也可以使用最低有效为
最低有效位 (Least Significant Bit)
我们常说的三原色是红、黄、蓝

LSB隐写就是修改了像数中的最低的1bit,png图片是一种无损压缩的位图片形格式,png图片中的图像像数一般是由RGB三原色(红绿蓝)组成,每一种颜色占用8位,取值范围为0x00~0xFF,即有256种颜色,一共包含了256的3次方的颜色,即16777216种颜色。而人类的眼睛可以区分约1000万种不同的颜色,这就意味着人类的眼睛无法区分余下的颜色大约有6777216种

在这里插入图片描述

十进制的235表示的是绿色,我们修改了在二进制中的最低位,但是颜色看起来依旧没有变化,我们就可以修改最低位中的信息,实现信息的隐写

在这里插入图片描述

题目意思:
这是一个非常简单但非常壮观的技巧。
你能看到隐藏的解决方案吗?
注意:解决方案与您的会话 ID 绑定,由十二个字母组成。
隐藏提示:http://wechall.blogspot.com/2007/11/steganabara-explained.html

点开链接提示了工具
在这里插入图片描述

不过有一个更好用的被大家公认的工具
在这里插入图片描述

找到答案
在这里插入图片描述

这是另一道其他思路的题
在这里插入图片描述

题目意思:
找出隐藏在我身上的那句话,否则我将不得不摧毁你。
“在为自由服务的过程中,任何牺牲都不算大。”

既然从根本开始做,那就假设我不知道这是谁,既然是饮用那就是他说出的话,搜索一下
在这里插入图片描述

我们知道原来它叫 Optimus Prime
第一眼竟然认成了 Option Prime

分析一定与素数有关,并且是红色为底色,之前有一道题是提图片的HSB,既然是红色,那就分析像素的R为素数尝试一下

在搜索代码的时候发现已经有大佬写出了这个代码
地址:https://www.tuziang.com/index.php/combat/1985.html

from PIL import Image
from math import sqrtdef is_prime(n):if n==1:return Falsefor i in range(2, int(sqrt(n) + 1)):if n % i == 0:return Falsereturn True
img = Image.open("op.png")
width = img.size[0]
height = img.size[1]for x in range(width):for y in range(height):r,g,b = img.getpixel((x,y))if is_prime(r):continueelse:img.putpixel((x,y),(255,255,255))img.show()

在这里插入图片描述
在这里插入图片描述

参考文章
https://zhuanlan.zhihu.com/p/301815967
https://blog.csdn.net/superdont/article/details/1396172?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164605916216780271951936%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164605916216780271951936&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_ulrmf~default~default-3-1396172.pc_search_insert_ulrmf&utm_term=%E4%BF%A1%E6%81%AF%E9%9A%90%E8%97%8F&spm=1018.2226.3001.4187
https://blog.csdn.net/weixin_34075268/article/details/88744599

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

相关文章

隐写术基础

目录 前言 一. 隐写系统模型 二. 隐写分析系统模型 三. 对比隐写技术与密码技术 四. 隐写术的基本术语与概念 4.1 不可感知性 4.2 安全性 4.3 隐蔽性 4.4 鲁棒性 4.5 隐藏容量 4.7 检测粒度 总结 前言 隐写术是一门关于信息隐藏的技巧与科学&#xff0c;所谓信息隐…

CTF学习之MISC之图片隐写与文档隐写

CTF学习之MISC之图片隐写 隐写术概述 图片隐写技术图片EXIF信息隐写图片LSB低位隐写 隐写术&#xff08;Stega&#xff09; 隐写术&#xff08;Steganography&#xff0c;简写Stega&#xff09; 一门关于信息隐藏的技巧与科学 信息隐藏&#xff1a;不让除预期的接收者之外的…

隐写术

目录 隐写(信息隐藏&#xff0c;steganography) Stegsolve Binwalk MP3Stego Bftools(Brainfuck) F5-steganography-master S-Tools 隐写(信息隐藏&#xff0c;steganography) 目的&#xff1a;以表面正常的数字载体如静止图象、数字音频和视频信号等作为掩护&#xff…

OMNET++安装教程

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

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

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

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

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

Ubuntu18.04 安装 omnet 5.6.2

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

OMNeT学习之TicToc2-7详解

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

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

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

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的安装与运行官方的实例代码&#xff0c;这篇文章记录一下&#xff0c;OMNeT如何创建一个新的项目。 本人为初学者&#xff0c;如有错误望批评指正&#xff01; 本文原创&#xff0c;创作不易&#xff0c;转载请注明&#xff01; …

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

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

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

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

omnet结果分析anf文件

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

一些OMNET使用心得

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

OMNET的安装说明

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

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

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

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

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

OMNeT学习之OMNeT安装与运行

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

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文…