Fork me on GitHub

简单隐写术基本原理

0X01 简单四则

  • word中隐藏数据
  • 图像元数据(picase)
  • 安卓数据隐藏(Hide it pro)
  • RAR压缩包数据隐藏

    0X02 数字信息隐藏原理

  • 替换
    LSB修改方式
  • 插入
    1、追加插入:在JPEG末尾(FF D9)追加数据;
    2、前置插入:在FF E0和FF C0之间插入数据。
    JPEG文件格式:

//正常的png图片的文件头的十六进制数据(89 50 4e 47 0d 0a 1a 0a)
gif的文件头是GIF89a

0x03 图片

PNG格式图片
  • png十六进制格式(89 50 4E 47 0D 0A 1A 0A)

  • IHDR十六进制格式(49 48 44 52)

1、包含有PNG文件中存储的图像数据的基本信息,并要作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。

2、4字节图片宽度+4字节图片高度+1字节颜色深度+1字节颜色类型+1字节压缩方法+1字节滤波器方法+1字节隔行扫描方法:

//常见CTF考点是找到IHDR位置,更改图片的高度,得到隐藏在图片下方的flag。

  • IEND
    标记PNG文件或者数据流已经结束,并且必须要放在文件的尾部。PNG文件的结尾12个字符看起来总应该是这样的:00 00 00 00 49 45 4E 44 AE 42 60 82
  • 4字节IEND数据块长度(00 00 00 00)+4字节IEND数据块标识(49 45 4E 44)+4字节图片的CRC32码(AE 42 60 82)*

//常见的CTF考点是会在IEND后面藏一段base64编码或是其他unicode,查看图片时需要注意。