MISC:图片隐写的破解方法.

news2024/11/18 21:26:36

MISC:图片隐写的破解方法.

Misc即杂项,是信息隐藏又称信息伪装,就是通过减少载体的某种冗余,如空间冗余、数据冗余等,来隐藏敏感信息,达到某种特殊的目的。
信息隐藏打破了传统密码学的思维范畴,从一个全新的视角审视信息安全。与传统的加密相比,信息隐藏的隐蔽性更强,在信息隐藏中,可以把这两项技术结合起来,先将秘密信息进行加密预处理,然后再进行信息隐藏,则秘密信息的保密性和不可觉察性的效果更佳。


目录:

MISC:图片隐写的破解方法.

图片隐写的破解方法:

JPG文件格式.

(1)损坏的文件.

(2)JPG | Exif

(3)JPG | Steghide

(4)JPG | Outguess

(5)JPG | F5

(6)JPG | Jphide(Windows的工具)

PNG 文件格式.

(1)PNG | 图片高度.

(2)PNG | 图片宽度

(3)PNG | LSB

(4)PNG | 盲水印

GIF 文件格式.

(1)GIF | 空间

(2)GIF | 时间


CTF小工具下载整理:CTF小工具下载整理 - 知乎


通过观察二进制中隐含的文件头信息来判断图片中附加的文件类型,常见的文件头、文件尾分别如下:

◆ JPEG (jpg): 文件头,FF D8 FF; 文件尾,FF D9

◆ PNG (png) : 文件头,89 50 4E 47; 文件尾,AE 42 60 82

◆ GIF (gif) : 文件头,47 49 46 38; 文件尾,00 3B

◆ ZIP Archive (zip): 文件头,50 4B 03 04; 文件尾,50 4B

◆ RAR Archive (rar) ,文件头: 52 617221

◆ Wave (wav) : 文件头,57 41 5645

◆ AVI (avi) : 文件头,41 56 49 20

◆ MPEG (mpg): 文件头,00 00 01 BA

◆ MPEG (mpg): 文件头,00 00 01 B3

◆ Quicktime (mov) : 文件头,6D 6F 6F76

使用的工具:


图片隐写的破解方法:

JPG文件格式.

◆ JPEG (jpg): 文件头,FF D8 FF; 文件尾,FF D9

标记码+压缩数据:

标记码: 由两个字节构成,第一个字节是固定值OXFF,后一个字节则根据不同意义有不同数值

压缩数据:前两个字节保存整个段的长度,包括这两个字节在内,以及后面所有内容组成

(1)损坏的文件.


(2)JPG | Exif


(3)JPG | Steghide

Steghide 是一个可以将文件隐藏到图片或音频中的工具.
apt install steghide        //下载 steghide 工具.

 steghide embed -cf 图片文件载体 -ef 待隐藏文件 [-p 密码也可以不设]        //隐藏文件
 
//把 待隐藏文件 隐藏在图片文件载体中.

steghide extract -sf 图片文件载体 [-p 密码也可能不设]        //提取文件

//在 图片文件载体 中提取隐藏的文件.


(4)JPG | Outguess

Outguess 也是一个可以将文件隐藏到图片或音频中的工具.
apt install outguess        //下载 Outguess 工具.

outguess -k 秘钥 -d 隐藏文件 原始图片 加密后的图片[自己命名]         //隐藏文件

outguess -k 秘钥 -r 加密后的图片 输出文件名[自己命名]                //提取文件


(5)JPG | F5


(6)JPG | Jphide(Windows的工具)


PNG 文件格式.

◆ PNG (png) : 文件头,89 50 4E 47; 文件尾,AE 42 60 82

PNG文件格式:

PNG文件署名域+标准数据块(+辅助数据块)


(1)PNG | 图片高度.

经常会去更改一张图片的高度或者宽度使得一张图片显示不完整从而达到隐藏信息的目的.

图片正常显示,将图片拖入到 010 Editor 中,出现CRC 报错,说明图片的高度被修改了。可以简单
粗暴地将图片的高度修改为较大值.


(2)PNG | 图片宽度

图片不正常显示,色彩失调,将图片拖入到 010 Editor 中,出现 CRC 报错,说明图片的宽度被修改了
文件宽度不能任意修改,需要根据 HDR 块的 CRC 值爆破得到宽度,否则图片显示错误不能得到 flag.

import os
import binascii
import struct
crcbp = open("5.png", "rb").read()
for i in range(1024):
    for j in range(1024):
        data = crcbp[12:16] + struct.pack('>i',i) + struct.pack('>i',j) + crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if crc32 == 0xcbd6df8a :
            print(i,j)
            print("hex",hex(i),hex(j))


(3)PNG | LSB

◆ PNG 文件中的图像像素一般是由 RGB 三原色(红绿蓝)组成,每一种颜色占用 8 位LSB 隐写就是修改了
像数中的最低的 1 bit,而人类的眼睛不会注意到这前后的变化,每个像素最多可以携带3比特的信息.

◆ Stegsolve 通过下方的按钮可以观察每个通道的信息,查看各个通道时一定要细心捕捉异常点,抓住 LSB 
隐写的蛛丝马迹.

◆ 例如:
通过观察RGB三个通道的最低位发现上面都有模糊的信息,借助 Stegsolve-->Analyse-->
Data Extract可以指定通道进行提取。Preview 可以预览信息,Save Text保存成文本,Save Bin 
保存成二进制(保存形式由信息内容决定)
解密过程:打开 StegSolve


(4)PNG | 盲水印

盲水印是利用二维傅里叶变换,给文件添加肉眼无法直接看到的水印数据。

盲水印不仅仅用于图片,也可应用于像音频这种数据流。当出现两张看起来一模一样的图片,可以用盲水印
解密工具试一下
工具下载:
https://gitcode.net/mirrors/chishaxie/blindwatermark?utm_source=csdn_github_accelerator
安装脚本的依赖库:

pip install opencv-python

pip install matplotlib==2.1.1
 python3 bwmforpy3.py encode 原图 信息文件 盲水印图片        //合成盲水印

python3 bwmforpy3.py decode 原图 盲水印图片 信息文件        //提取盲水印


GIF 文件格式.

(1)GIF | 空间

由于 GIF 的动态特性,由一的图片构成,所以每一的图片,多图片间的结合,都成了隐藏信息的一种载体
通过 Stegsolve 工具一一分析,加载该 gif 图片 Analyse -> Frame Browser


(2)GIF | 时间

下载 Imagemagick 工具:

apt-get install imagemagick

常用指令:

convert: 转换图像格式和大小,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新
图片生成缩略图等。

identify:描述一个或较多图像文件的格式和特性.

composite:根据一个图片或多个图片组合生成图片.
identify -format "%T \n" 查看的图片 > 保存的数据.

identify -format "%T \n" 3.gif > bgxg.txt

一般只会隐藏二种:摩斯密码和二进制.

然后再用在线解密工具:
http://www.all-tool.cn/Tools/morse/?&rand=f6023065909f54a18ec7c6a3b6ba9e3e

   

   

     

学习链接:3-CTF隐写术基础_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/517235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件开发企业如何合理解决企业增值税和所得税问题?

业务是流程,财税是结果,税收问题千千万,关注《税算盘》来帮你找答案。 软件开发是根据用户的要求建造出软件系统或者系统中的软件部分的过程,软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。 与传统产业的…

实现高并发秒杀的 7 种方式

1.引言 高并发场景在现场的日常工作中很常见,特别是在互联网公司中,这篇文章就来通过秒杀商品来模拟高并发的场景。文章末尾会附上文章的所有代码、脚本和测试用例。 本文环境: SpringBoot 2.5.7 MySQL 8.0 X MybatisPlus Swagger2.9.2 …

【GPT-4理论系列篇】GPT-4核心技术探秘 | 京东云技术团队

作者:京东零售 刘岩 前言 GPT-4已经发布有一段时间了,但是出于安全性等各种原因,OpenAI并没有公布GPT-4的技术细节和代码,而是仅仅给出了一个长达100页的技术报告[1]。这个技术报告着重介绍了GPT-4的强大之处,仅仅给…

分享Python采集66个html5代码,总有一款适合您

分享Python采集66个html5代码,总有一款适合您 Python采集的66个html5代码下载链接:https://pan.baidu.com/s/1z0AsahthBcpDECA1bVg5ZA?pwd168a 提取码:168a 基于canvas的背景颜色渐变动画插件 jquery音乐播放器插件jsRapAudio HTML5 sv…

SpringBoot整合ES,ik分词器

"reason": "Failed to parse mapping: analyzer [ik_max_word] has not been configured in mappings" 这是因为没有安装ES的IK分词器 下载地址 Release v8.7.0 medcl/elasticsearch-analysis-ik GitHub ElasticSearch 内置了分词器,如标准…

分享Python采集240个jQuery代码,总有一款适合您

分享Python采集240个jQuery代码,总有一款适合您 Python采集的240个jQuery代码下载链接:https://pan.baidu.com/s/1S_lV6aoXOtohc3zk3r3uxA?pwd2h4r 提取码:2h4r jQuery实时搜索插件-HideSeek ps样式的jQuery颜色选择插件 colpick-jQuer…

蓝桥杯青少组python:第十三届省赛第一场

选择题 1、下列二进制中最大数是() A 110 B 1010 C 1100 D 1001 2、以下方法,不是对文件读操作的是() A readline() B readlines() C readtext() D read() 3、以下对turtle库中函数描述正确的是() A goto()函数设置当前画笔移动到原点位置…

抢先看~详细、全面的文档处理控件Aspose.words 功能一览

Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。(技术交流q群:761297826) Aspose API…

三.Android系统的启动流程

Android系统总体启动流程 Boot ROM (启动只读存储器,Loader层) 当电源按下时,引导芯片代码会从预定义的地方(固化在ROM中,Read Only Memory)开始执行,加载引导程序BootLoader到RAM(Random Access Memory),然后执行 Boot Loader (启动加载器,类似于Windows的bios系统,Loader层)…

C++:C++PrimerPlus第六版:Chapter9:内存模型和名称空间

Chapter9:内存模型和名称空间 1. C源文件组织策略我们先看下面程序清单: coordin.hmain.cppCoordin.cpp 2. 内存存储方案2.1 自动存储持续性2.2 静态存储持续变量2.3 存储方案和动态分配 本章节从三个大方面做总结 C多个源文件组织方式C存储方案C名称空间…

案例告诉你 ChatGPT 最有可能取代哪些职业

ChatGPT 的应用场景ChatGPT 最可能取代哪些职业?写在最后 ChatGPT 的应用场景 ChatGPT 的应用场景大体上可以归类为三大模块。 第一类是 代码相关 的任务场景。包含程序语言之间的相互转换(如 python 转 java)、程序命令的生成、代码 bug 的…

考虑多能负荷不确定性的区域综合能源系统鲁棒规划(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

单链表OJ题:LeetCode--21.合并两个有序链表

朋友们、伙计们,我们又见面了,今天给大家带来的是LeetCode中876题:链表的中间结点 数 据 结 构:数据结构专栏 作 者:stackY、 C 语 言 :C语言专栏 LeetCode :LeetCode刷题训练营 L…

5月16日,亚马逊云科技邀你一起探索游戏的无限可能

游戏精品化趋势越发明显,如何才能让技术帮助创意更好地实现?游戏出海如火如荼,如何才能在全球市场分一杯羹?生成式AI横空出世,如何才能充分利用,实现降本增效、利润提升?相信每个游戏人&#xf…

Word控件Spire.Doc 【文本框】教程(3):如何在 Word 中插入或删除文本框

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

基于VC + MSSQL实现的县级医院医学影像PACS

一、概述: 基于VC MSSQL实现的一套三甲医院医学影像PACS源码,集成3D后处理功能,包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。 二、医学影像PACS实现功能: 1、…

漏洞分析丨CVE-2012-1873

一、漏洞简述 cve-2012-1873同样是一个著名的堆溢出漏洞,他是IE6-8中MSHTL.dll中的CTableLayout::CalculateMinMax函数里,程序在执行时会以HTML代码中的元素span属性作为循环控制次数向堆中写入数据。第一次会优先根据span申请堆空间,当我们…

【企业信息化】第3集 免费开源ERP: Odoo 16 POS终端管理系统

文章目录 前言一、概览二、硬件三、使用功能 前言 世界排名第一的免费开源ERP: Odoo 16 POS终端管理系统。几分钟内完成设置,几秒内完成销售。 一、概览 Odoo POS 基于智能界面,任何零售公司均可毫不费力地使用 因为其极具灵活性,您可配置 …

2023最全 Java 高频面试合集,掌握这些你也能进大厂!

进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,对于 Java 后端的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很…

版本控制器git

目录 一、版本控制系统 二、工作流程和使用命令 (1)工作流程 (2)一次完整流程的相关命令 1.初始化1个空的本地仓库 2.克隆方式1个远程仓库到本地仓库 3.新文件添加到暂存区 4.查看仓库状态,显示有变更的文件 5…