一、图片隐写[Stegsolve、binwalk、010editor、WaterMark、BlindWaterMark、文件头尾]

工具配置

1.Stegsolve

工具地址:http://www.caesum.com/handbook/Stegsolve.jar
解释:该工具需要安装jar包后才能配合使用,下面同时会给出快速打开工具的代码,需要两个文件,启动的时候启动vbs文件

start.bat

java -jar Stegsolve.jar

start.vbs

set ws=createobject("wscript.shell")
ws.Run """start.bat""",0

2.binwalk:

  1. 下载:https://github.com/ReFirmLabs/binwalk/archive/refs/tags/v2.3.2.zip

  2. setup:python setup.py install

  3. 便捷化配置:自己写一个快速启动binwalk的py然后打包成exe然后放置于python下面的Scripts目录就能直接在cmdbinwalk xxxx执行命令

    import subprocess
    import sys
    
    # 获取命令行参数(除了脚本名称之外的部分)
    args = sys.argv[1:]
    
    # 指定 Python 解释器和 binwalk 脚本的路径
    python_path = "python"
    binwalk_script = "D:\\python\\Scripts\\binwalk"
    
    # 使用 args 中包含的参数构造命令
    command = [python_path, binwalk_script] + args
    
    # 调用 subprocess.call 来执行命令
    subprocess.call(command)
    
    pyinstaller --onefile binwalk.py
    

3. 010editor

下载:https://www.sweetscape.com/010editor/

复制16进制到左边:Ctrl+Shift+V
复制文本到右边边:Ctrl+V
插入内容:光标放至要插入内容处,然后在软件最上方一栏选择Edit然后选择插入选择Hex与大小即可
对代码进行异或操作等等:
在这里插入图片描述

4.WaterMark

解释:一款普通破解盲水印的工具(适合单图片),下载非官网,请注意
https://pan.quark.cn/s/ab1aaa012cd0#/list/share

5.BlindWaterMark

解释:一款普通破解盲水印的工具(适合多图片)
https://github.com/chishaxie/BlindWaterMark

一、LSB隐写

解释:LSB隐写即最低有效位隐写,LSB隐写就是修改RGB颜色分量的最低二进制位也就是最低有效位,写入数据,这样做的目的是人眼最难分辨出来,但是通过工具可以很容易的检测出来

知识补充:

  1. PNG图片,png图片是一种无损压缩的图片,因为无损压缩所以可以实现LSB隐写。
  2. JPG图片,jpg图片是一种有损压缩的图片,修改的数据会在压缩中损失,不可以实现LSB隐写。
  3. BMP的图片,是没有经过压缩的。BMP图片文件大小一般较大,bmp图片也可以实现LSB隐写。

Stegsolve查看red blue green三通道最低二进制位的方法:

  1. 查看
    在这里插入图片描述
  2. 导出
    在这里插入图片描述

普通情况:

  1. 选择图片在这里插入图片描述
  2. 切换不同的颜色通道在这里插入图片描述

二、Gif动图

解释:通过该工具能够一帧一帧的对Gif里面的内容进行查看

  1. 选择此功能对Gif图片进行一帧一帧查看
    在这里插入图片描述
  2. 在线网站:https://tu.sioe.cn/gj/fenjie/(对动图,特别是多张图片需要拼接在一起的很有效)

三、图片隐写

解释:指的是一个文件里面包含其它格式文件与图片,此时可以通过binwalk将它们分开,不能完全相信binwalk,这个工具有时候分辨不出来里面混杂的音频文件,建议使用010editor查看,或配合foremost,或者用010editor进行查看

1.binwalk

解释:下面这三款工具要轮流使用直到完成任务,目前看来,binwalk一般能分析对隐写的文件,但是拆分不出来,反而foremost能够拆分出来

binwalk xxxx -e自动分离图片里面的内容

2.foremost

foremost xxx

3.dd

解释:dd需要结合binwalk显示的块数,例如下图
在这里插入图片描述

dd if=hong.mp3 of=hong1.jpeg skip=138170 bs=1


if=:输入文件,即源图片。
of=:输出文件,即提取出来的数据。
skip=N:跳过输入文件的前N个字节。
bs=1:设置块大小为1字节,配合skip可以准确定位到具体的字节。
N是你想要跳过的字节数,根据隐藏信息可能出现的位置来决定。

4.strings

解释:对于隐写而言,strings命令往往能看到图片里面写着的字符串,对于CTF而言,很可能就是出题人给的暗示

strings 1.png

四、图片高宽隐藏

解释:因为图片给的高度或宽度很小,当更改图片高或宽时,隐藏的内容就能看到了,可以使用工具TweakPNG,通过Stegsolve的File Format对比CRC,如果CRC与计算出来的有出入可能就是高度修改了,或者使用pngcheck工具查看CRCapt install pngcheck

五、图片模糊

解释:给的图片特别模糊看不清里面的内容,可以通过SmartDeblur进行调整对比度来看尝试让图片清晰一点

六、识别码

解释:有二维码、条形码等等,可能普通的扫码器扫描不出来,可以在在线网址上进行扫码https://online-barcode-reader.inliteresearch.com/

七、双图结合

解释:当题目中给出双图时,可能要用到Stegsolve的Image Combiner功能,先打开一张图再点击Image Combiner然后切换打开新图的色道有时候会出现二维码
在这里插入图片描述

八、盲水印(单图)

解释:我们遇到一些题可能暗藏着盲水印,需要我们来解决,
使用文章开头提到的WaterMark软件

九、盲水印(多图)

解释:适合于多张图片最后合成一个图片的使用BlindWaterMark脚本

安装依赖:

pip install opencv-python
pip install matplotlib

合成

python bwm.py encode hui.png wm.png hui_with_wm.png
python bwm.py encode A图 B图 生成的图片路径

python2版本使用bwm.py文件
python3版本把bwm.py改为bwmforpy3.py

提取

python bwm.py decode hui.png hui_with_wm.png wm_from_hui.png
python bwm.py decode A图 B图 生成的图片路径

python2版本使用bwm.py文件
python3版本把bwm.py改为bwmforpy3.py

补充

1.文件头尾

文件 文件头hex 文件头ascii 文件尾
PNG 89 50 4e 47 0d 0a 1a 0a ‰ P N G AE 42 60 82
GIF 47 49 46 38 G I F 8 00 3B
BMP 42 4D 36 0C 30 B M 6 0
JPG ff d8 ff e0 00 10 4a 46 49 46 ÿ Ø ÿ à J F I F FF D9
pyc 03 F3 0D 0A ó
ZIP 50 4B 03 04 P K 50 4B
RAR4 52 61 72 21 1A 07 00 R a r ! C4 3D HEAD_TYPE
RAR5 52 61 72 21 1A 07 01 00 R a r ! 1D 77 56 51 HEAD_SIZE HEAD_TYPE
7Z 37 7A BC AF 27 1C 7 z ¼ ¯ ’
Wav 52 49 46 46 XX XX XX XX 57 41 56 45 66 6D 74 20 RIFF ™WAVE

2.压缩文件特征

解释:用010editor打开压缩文件,如果看到里面出现文件名或其它文本数据,很有可能其就是压缩文件,一般可以尝试ziprar两种

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 04:22:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 04:22:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 04:22:01       82 阅读
  4. Python语言-面向对象

    2024-03-30 04:22:01       91 阅读

热门阅读

  1. 什么是对冲?

    2024-03-30 04:22:01       46 阅读
  2. (vue)判断是否为字符串/数组

    2024-03-30 04:22:01       33 阅读
  3. Mojo官方例子|可直接notebook运行

    2024-03-30 04:22:01       47 阅读
  4. 皮卡丘python写leetcode

    2024-03-30 04:22:01       36 阅读
  5. pathlib标准库

    2024-03-30 04:22:01       43 阅读
  6. C/C++ 一些使用网站收集...

    2024-03-30 04:22:01       42 阅读
  7. 【openGL4.x手册09】转换反馈

    2024-03-30 04:22:01       33 阅读
  8. 任务记录.

    2024-03-30 04:22:01       38 阅读
  9. 2024年最新github排行前100名项目

    2024-03-30 04:22:01       42 阅读
  10. for in 和 for of的区别

    2024-03-30 04:22:01       41 阅读
  11. 中台理念下的多应用场景平台构建与实践

    2024-03-30 04:22:01       42 阅读