Binwalk
是一款快速、易用,用于分析,逆向工程和提取固件映像的工具。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还重要一点的是可以轻松地扩展。
该工具可以发现文件中嵌入的其他文件
┌──(jtz㉿JTZ)-[~/Desktop/Temp/T] # 查看是否存在嵌入的其他文件
└─$ binwalk meme.jpg
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 JPEG image data, JFIF standard 1.01
30 0x1E TIFF image data, big-endian, offset of first image directory: 8
74407 0x122A7 RAR archive data, version 5.x
74478 0x122EE PNG image, 147 x 37, 8-bit/color RGBA, non-interlaced
74629 0x12385 Zlib compressed data, default compression
┌──(jtz㉿JTZ)-[~/Desktop/Temp/T] # 提取到 _meme.jpg.extracted 文件中
└─$ binwalk meme.jpg -e
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 JPEG image data, JFIF standard 1.01
30 0x1E TIFF image data, big-endian, offset of first image directory: 8
74407 0x122A7 RAR archive data, version 5.x
74478 0x122EE PNG image, 147 x 37, 8-bit/color RGBA, non-interlaced
74629 0x12385 Zlib compressed data, default compression
┌──(jtz㉿JTZ)-[~/Desktop/Temp/T]
└─$ ls
meme.jpg _meme.jpg.extracted
使用 strings 可以查看文件中可以访问的字符串
LSB也就是最低有效位 (Least Significant Bit)。原理就是图片中的像数一般是由三种颜色组成,即三原色,由这三种原色可以组成其他各种颜色,例如在PNG图片的储存中,每个颜色会有8bit,LSB隐写就是修改了像数中的最低的1bit,在人眼看来是看不出来区别的,也把信息隐藏起来了。譬如我们想把’A’隐藏进来的话,如下图,就可以把A转成16进制的0x61再转成二进制的01100001,再修改为红色通道的最低位为这些二进制串。