一、图片隐写[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文件尾
PNG89 50 4e 47 0d 0a 1a 0a‰ P N GAE 42 60 82
GIF47 49 46 38G I F 800 3B
BMP42 4D 36 0C 30B M 6 0
JPGff d8 ff e0 00 10 4a 46 49 46ÿ Ø ÿ à J F I FFF D9
pyc03 F3 0D 0A ó
ZIP50 4B 03 04P K 50 4B
RAR452 61 72 21 1A 07 00R a r !C4 3D HEAD_TYPE
RAR552 61 72 21 1A 07 01 00R a r !1D 77 56 51 HEAD_SIZE HEAD_TYPE
7Z37 7A BC AF 27 1C7 z ¼ ¯ ’
Wav52 49 46 46 XX XX XX XX 57 41 56 45 66 6D 74 20RIFF ™WAVE

2.压缩文件特征

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【笔记本开热点给手机用,手机一直显示正在获取ip地址,然后连接不上的解决方法】

解决方法 控制面板\网络和 Internet\网络连接 查看是否有设备是固定ip,将其改成自动获取ip地址 如果你还没有解决,那么继续看 肯定是你装了vmware,vmware会生成vmnet1和vmnet8两个网段,这两个网段和共享的网段冲突了,所以需要将这两个网段…

4T第十四届省赛模拟2

一、Seg 温度读取: ①温度 温度读他读出来就是有精度的所以自带小数 我们读取的时候直接强制类型转换读它的各个位也不会丢失精度 ②电压 电压是你人为的/51.0了,从char->float->char所以会有精度丢失 所以要用原始数据来换算 在原始数据上多…

qt窗口的应用与pyinstaller打包APP操作

3月29日 qt打包APP操作 1 先在windows shell 中下载打包软件Pylnstaller pip install pyinstaller2 先进入py项目所在的位置,再执行以下代码(我用的qt版本是PySide6可以根据自己的情况修改) pyinstaller s02.py --noconsole --hidden-import PySide6.QtXml3 因为…

GEE22:基于目视解译的土地利用分类(随机森林监督分类)

采样点信息: 设置一下采样点参数: 代码: //设置研究区位置 var table ee.FeatureCollection("users/cduthes1991/boundry/China_province_2019"); var roi table.filter(ee.Filter.eq(provinces,beijing)); Map.centerObjec…

Machine Learning机器学习之数据可视化

目录 前言 一、 数据预处理与清洗 二、常见可视化技术 三、可视化工具和平台 博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者…

MES系统怎么解决车间生产调度难的问题?

MES系统三个层次 1、MES决定了生产什么,何时生产,也就是说它使公司保证按照订单规定日期交付准确的产品; 2、MES决定谁通过什么方式(流程)生产,即通过优化资源配置,最有效运用资源; …

PCI总线管脚定义(引脚定义)

文章目录 1: 参考资料的链接2: 图片说明3:PCI文字说明每日好图 1: 参考资料的链接 PCI bus pinout PCI三种标准引脚信号定义 PCI bus pinout 2: 图片说明 A面和B面正反 PCI Universal Card 32/64 bit ----------------------------------…

同事们希望我拥有博士学位,但资历并不是一切

罗伯特纽贝克 “你太聪明了!你为什么没有博士学位?这个熟悉的问题被当作赞美,但总感觉像是一记耳光。我已经在该组织工作了 2 周,每个人似乎都喜欢我正在做的工作、我带来的观点以及我为我的团队设想的方向。但只有一个小问题&am…

打PTA (15分)(JAVA)

目录 题目描述 输入格式: 输出格式: 输入样例: 输出样例: 题解 题目描述 传说这是集美大学的学生对话。本题要求你做一个简单的自动问答机,对任何一个问句,只要其中包含 PTA 就回答 Yes!,其…

机器学习 - 手动实现 ReLU 和 Sigmoid

直接上代码 import torch import matplotlib.pyplot as pltA torch.arange(-10, 10, 1, dtypetorch.float(32)) def relu(x):return torch.maximum(torch.tensor(0), x) plt.plot(relu(A))结果如下: import torch import matplotlib.pyplot as pltA torch.aran…

FPGA Artix7 Bootloader App Python升级

文章目录 软硬环境复现官方 srec_spi_bootloader例子简介Vivado硬件部分存储划分Vitis 嵌入式 BootVitis 嵌入式 Appelf转换srec合并boot和app得到mcs文件下载测试过程分析 基础知识BIT MCS HEX BINBit SwappingSREC 文件格式Vivado约束 串口Boot地址划分链接脚本修改Github Li…

1.Netty介绍及NIO三大组件

Netty网络编程Netty的底层是NIO(非阻塞IO),常用的多线程和线程池使用的是阻塞IO,其效率并不高。支持高并发,性能好高性能的服务端程序、客户端程序 NIO三大组件 一、Channel 读写数据的双向传输通道 常见的传输通道…

Taskflow 简单使用

Hello World #include <taskflow/taskflow.hpp>int main() {tf::Executor executor; tf::Taskflow taskflow;// 返回一个std::tuple<tf::Task, tf::Task, tf::Task, tf::Task> auto [A, B, C, D] taskflow.emplace([](){std::cout<<"A"<<s…

金三银四面试题(六):对象大小知多少

对象和数组在JVM如何在堆中布局&#xff1f;更常见地问法就是对象头都包含哪些信息 在JVM中对象和数组尽管都是连续的内存块。但在堆内存中的布局方式有些不同。 对象的组成 对象在JVM中可以分为三个部分&#xff0c;对象头&#xff08;Header&#xff09;&#xff0c;实例数…

SoC芯片的DVFS技术详解

​A72训练营很多同学问DVFS技术怎么实现的&#xff0c;这里小编就和大家掰扯掰扯SoC芯片的DVFS技术吧。 1. DVFS技术介绍 DVFS&#xff08;Dynamic Voltage and Frequency Scaling&#xff09;即动态电压频率调节技术&#xff0c;是一种高效的低功耗技术&#xff0c;它通过动态…

初始化脚手架

说明: 1 --- Vue脚手架是Vue官方提供的标准化开发工具&#xff08;开发平台&#xff09; 2 --- 最新的版本是 4.x 3 --- 文档 Vue CLI 具体步骤: 1 --- 如果下载缓慢请配置npm淘宝镜像npm config set registry http://registry.npm.taobao.org 2 --- 全局安装 vue/cli npm ins…

Apache Kafka + 矢量数据库 + LLM = 实时 GenAI

公众号&#xff1a;Halo咯咯 生成式人工智能 (GenAI) 支持先进的人工智能用例和创新&#xff0c;但也改变了企业架构的外观。大型语言模型 (LLM)、向量数据库和检索增强生成 (RAG) 需要新的数据集成模式和数据工程最佳实践。 Apache Kafka 和 Apache Flink 的数据流在大规模实时…

CIM搭建实现发送消息的效果

目录 背景过程1、下载代码2、进行配置3、直接启动项目4、打开管理界面5、启动web客户端实例项目6、发送消息 项目使用总结 背景 公司项目有许多需要发送即时消息的场景&#xff0c;之前一直采用的是传统的websocket连接&#xff0c;它会存在掉线严重&#xff0c;不可重连&…

推荐算法策略需求-rank model优化

1.pred_oobe (base) [rusxx]$ pwd /home/disk2/data/xx/icode/baidu/oxygen/rus-pipeline/pipeline-migrate/UserBaseActiveStatPipeline/his_session (base) [rusxx]$ sh test.sh 2. user_skill_history_dict_expt2包含userid [workxx]$ vim /home/work/xx/du-rus/du_rus_o…

2.2.1.3-移动平均线

跳转到根目录&#xff1a;知行合一&#xff1a;投资篇 已完成&#xff1a; 1、投资&技术   1.1.1 投资-编程基础-numpy   1.1.2 投资-编程基础-pandas   1.2 金融数据处理   1.3 金融数据可视化 2、投资方法论   2.1.1 预期年化收益率   2.1.2 一个关于yaxb的…