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

article/2025/7/20 16:55:04

CTF学习之MISC之图片隐写

隐写术概述

  • 图片隐写技术
  • 图片EXIF信息隐写
  • 图片LSB低位隐写

隐写术(Stega)

隐写术(Steganography,简写Stega)

一门关于信息隐藏的技巧与科学
信息隐藏:不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容
与密码学(Cryptography)不同

隐写题目类型

  • 图片隐写
    • 图片EXIF信息隐写
    • 图片高度缩减隐写
    • 图片LSB低位隐写
  • 文档隐写
    • 文本隐写
    • 压缩包隐写
    • 其他文档格式(word、pdf、html文件)
    • 音频、视频隐写
    • 其他形式隐写

解题工具

  • 图片隐写的解题工具
    • Strings,文本隐写分析工具
    • Binwalk,dd,foremost,图片分离工具
    • Winhex,ultraeditor,文件16 进制编辑器
    • Stegsolve.jar,图层分析工具-…
  • 平台
    • kali系统自带strings,binwalk, dd, foremost等命令
    • windows平台下有Winhex,Stegsolve.jar等工具

图片EXIF信息隐写

  • Exif(Exchangeable image file format)
    • 可交换图像文件格式。
    • 专门为数码相机的照片设定的,记录照片的属性信息和拍摄数据(曝光时间,拍摄时间,gps定位数据,相机品牌型号)。
  • 支持的图片格式:JPEG、TIFF、XMP等等。
  • 查看工具
    - 类Unix系统:exiftool
    - Windows系统:图片-右键-属性–详情

图片EXIF信息隐写

在这里插入图片描述

图片LSB隐写

  • LSB(Least Significant Bit),最低有效位。
  • 图片像素一般是由RGB三原色(即红绿蓝)组成的,每一种颜色占用8位,0x00~0xFF,即有256种值,一像素点共包含了256^3种的颜色;
  • 人的肉眼能区分的只有其中一小部分;
  • 修改RGB颜色分量中最低的二进制位,人眼无法区分。

在这里插入图片描述

  • 例如:将字符“a”隐藏进图片LSB,即把“a”的二进制ascii码“01100001”,写到LSB通道的最低位。

在这里插入图片描述

  • 解题思路

    • 图片分析
    • 图层分离,查看LSB
  • 工具-可视化图层分析工具:

    • Stegsolve.jar
    • python脚本,PIL.Image库
  • 解题工具:Stegsolve

    • 需要java环境;
    • 界面简单,协助分析图片图层、LSB信息。
  • 主要功能:analyse

    • File Format: 文件格式,查看图片的具体信息
    • Data Extract: 数据抽取,抽取图片中隐藏数据
    • Frame Browser: 帧浏览器,对GIF动图进行分离
    • Image Combiner: 图片融合

在这里插入图片描述

图片隐写技术(进阶)

  • 图片高度缩减隐写
  • 图片结尾隐写

png图片格式

在这里插入图片描述

  • png图片基本数据单元
    • png图片以数据块(chunk)为数据单元存储在计算机中。
    • 每个数据块包含以下4个部分:

在这里插入图片描述

  • IHDR数据块
    在这里插入图片描述
    在线CRC校验:http://www.ip33.com/crc.html

图片高度缩减隐写

  • 通过修改PNG图片的高度值,来对部分信息进行隐藏的。

在这里插入图片描述

  • 解题思路
    • 分析题目提示;
    • 查看图片内容;
    • 计算校验和。(熟悉图片格式、crc校验、进制转换)

图片结尾隐写

  • png图片结尾隐写
    • 在IEND数据块(49 45 4E 44 AE 42 60 82)之后附加额外数据内容,该数据不会被图片查看器加载、解析,从而达到隐藏信息的目的。
    • 图片结尾隐写解题工具
      • windows平台:Winhex,UltraEditor
      • Kali环境:binwalk,dd,foremost指令
    • 任何文件,都可以在文件尾附加隐写信息

Winhex的使用

  • Winhex 实用技巧
    • 查找文本:Ctrl+F
    • 查找16进制:Alt+Ctrl+F-搜索下一个:F3
    • 快速选择大数据块:
      - 上下左右方向键移动光标
      - alt+1 选定要修改的数据块的起始字节;
      - 再使用alt+2选定结束字节;
    • 保存数据块到新文件:
      - 右键–edit –copy block –into new file

Binwalk分离图片

在这里插入图片描述

Binwalk的使用

  • Windows下binwalk的安装和使用
    • 下载
      • http://binwalk.org/
      • https://github.com/ReFirmLabs/binwalk
    • 安装
      • pip install setup.py / python setup.py install
    • 使用
      • python scripts\binwalk [filename]
      • 查找文本:Ctrl+F
      • 查找16进制:Alt+Ctrl+F
      • 搜索下一个:F3

文档结尾隐写

  • 在文件的结尾标志符之后附加隐藏信息,而不破坏源文件

    • 文本信息
    • 其他文档
  • 一般,隐写内容都是附加在源文件的结尾

    • 如果附加在头部,破坏了文件头,可能导致文件无法识别\
    • 如果附加在中间,有可能破坏了源文件的信息
  • 常见文件格式的文件头、文件尾
    在这里插入图片描述

  • 解题工具

    • strings命令:查找可打印字符串
    • binwalk命令:分析文件隐写内容
    • dd、foremost命令:分离文件
  • 流程

    • binwalk [filename] # 也可以添加“-e”参数直接分离
    • foremost [filename] # 生成一个output的文件夹
    • dd if=源文件.jpg of=目标文件.jpg skip=偏移量 bs=1

strings 用法

  • strings命令
    • 在对象文件或二进制文件中查找可打印的字符串
  • 选项
    • -a --all:扫描整个文件而不是只扫描目标文件初始化和装载段
    • -f –print-file-name:在显示字符串前先显示文件名-t --radix={o,d,x} :输出字符的位置,基于八进制,十进制或者十六进制
    • -e --encoding={s,S,b,l,B,L} :选择字符大小和排列顺序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
  • Tips-我们使用strings + [filename] 命令即可

在这里插入图片描述

更多资料

  • 在线工具
    • 进制转换-在线工具 https://tool.lu/hexconvert/
    • CRC在线计算 http://www.ip33.com/crc.html
    • 在线工具——开源中国社区http://tool.oschina.net/
    • 工具大全(各种解密工具)http://tool.bugku.com/
  • 练习平台:
    • i春秋,免费视频教程。https://www.ichunqiu.com/courses/ctf
    • 实验吧,在线实验环境、题库。http://www.shiyanbar.com/ctf/practice
    • 博客学习-CTF从入门到进(fang)阶(qi)之MISC -知乎 https://zhuanlan.zhihu.com/p/27598087
    • CTF入门指南(0基础) Angel_Kitty -博客园 https://www.cnblogs.com/ECJTUACM-873284962/p/6691817.html
    • Introduction | CTF Resources https://ctfs.github.io/resources/

参考于北理工大学慕课信息安全课程


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

相关文章

隐写术

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

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://…