Fireworks
使用winhex打开文件看到文件头部包含firework标识,通过firework可以找到隐藏图片
使用场景:查看隐写的图片文件
Exif
图片右键属性,查看exif或查看详细信息
Linux:exiftool exif.jpg
Stegsolve
两张图片外观、大小、像素都基本相同,可以考虑结合分析,即将两个文件的像素RGB值进行XOR、ADD、SUB等操作,看能否得到有用的信息。
使用场景:两张图片信息基本相同
方法:
打开第一张图片,点击analyse->Image combiner
在弹出的窗口中点击左右按钮选择处理方式,点击save保存有价值的结果
LSB(最低有效位Least Significant Bit)
基本思想:用嵌入的秘密信息取代载体图像的最低比特位,原来的7个高位平面与替代秘密信息的最低位平面组合成含隐藏信息的新图形
- 像素三原色(RGB)
- 通过修改像素中最低位的1bit来达到隐藏的效果
- 工具:stegsolve、zsteg、wbstego4、python脚本
Stegsolve
- 打开文件>>Analyse>>Data Extract
- 调整Bit Planes, Bit Order, Bit Plane Order
Zsteg工具(比Stegsolve更方便)
适用PNG&BMP
kali系统下安装:gem install zsteg
检测LSB隐写:zsteg xxx.png
Wbstego4
解密通过lsb加密的图片,主要针对.bmp/.pdf/.txt/.html等文件
可以通过“画图”转化图片格式
生成的文件用notepad++或010editor打开
Python脚本
#coding:utf-8
import PIL.Image
def foo():
im = PIL.Image.open('01.bmp')
im2 = im.copy()
pix = im2.load()
width,height = im2.size
for x in xrange(0,width):
for y in xrange(0,height):
if pix[x,y]&0x1 == 0:
pix[x,y] = 0
else:
pix[x,y] = 255
im2.show()
pass
if __name__ == '__main__':
foo()
print 'ok.'
pass
修改文件名,kali运行:python LSB.py
TweakPNG
允许查看和修改一些PNG图像文件的元信息存储
使用场景:文件头正常却无法打开文件,利用TweakPNG修改CRC
例:
#coding:utf-8
import os
import binascii
import struct
crcbp = open("xxx.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 == 0x08ec7edb: #此处填上CRC值
print i,j
print "hex",hex(i),hex(j)
Bftools
使用场景:cmd,对加密过的图片文件进行解密,将文件放入软件目录下
格式:
bftools.exe decode braincopter 要解密的图片名称 -o 输出文件名
bftools.exe run 上一步输出的文件
示例:
SilentEye
解密隐藏到图片的文字或文件,windows环境
例:
JPG图像加密
Stegdetect工具探测加密方式
分析JPEG文件,可以检测到通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等隐写工具隐藏的信息
stegdetect xxx.jpg
stegdetect -s 敏感度 xxx.jpg
Jphide
基于最低有效位LSB的JPEG格式图像隐写算法
例:
Outguess
Linux下C语言文件,需先编译:./configure && make && make install
格式:outguess -r 要解密的文件名 输出结果文件名
F5
进入F5-steganography_F5目录,将图片文件拷贝至该目录下,从CMD进入该目录
格式:Java Extract 要解密的文件名 -p 密码
二维码处理
反色:画图工具-图像-选择-右击图片-反色