首页 公开文件分享 音乐分享 游戏分享 工具分享 其它文件分享 文章 随笔 聊天大厅 小工具 小游戏 关于我们 登录 注册


简单的图片隐写方法和解密

作者:hhcgchpspk                发布时间:2026-07-05

图片隐写被用于加密重要文件,在ctf比赛的misc方向中也是必考点,在这里我分享一些隐写和解密方法

隐写:

一、文本追加:这是最简单的隐写方法,也是最容易被发现的

with open('1.png','ab') as f:#1.png为要隐写的图片 f.write(b'flag{gc}')

二、修改尺寸:通过修改图片宽高隐藏信息 这里我们首先看目标图片的分辨率(360x314)

转换为十六进制360->168,314->13a 然后我们用winhex看,一般png图片的宽高都在第二行

现在把高度改为250(十六进制为fa)

原图片与现图片对比(信息隐藏在了下面)

三、LSB隐写:常见的隐写术,通过改变RGB最低二进制位来隐写信息(详细可以自己查,这里篇幅有限--其实我也一知半解)

这里可以用在线工具,也可以用脚本,我这里用stegano库写一个python脚本:

#pip install stegano from stegano import lsb secret=lsb.hide('1.png','flag{gc}') secret.save('output.png') ##好简单啊这脚本,还是用专门的第三方库方便

运行即可

四、文件拼接/附加型隐写,这种一般是在文件中间或末尾附加另一个文件数据 示例:

with open('1.png','rb') as f: img=f.read() with open('n.png','rb') as f: flag=f.read() with open('output.png','wb') as f: f.write(img) f.write(flag)

现在output.png存在了两个图片(看着只有一个)

解密:(与上面的隐写方法对应)

一.直接用winhex打开,在尾部找到隐写内容

二.用winhex找到图片高度的位置,改回原来的高度即可

信息出来了

三.这里推荐使用StegSolve工具 下载地址:http://www.caesum.com/handbook/Stegsolve.jar

下载后打开,使用Data Extract模式

把Red、Green、Blue三个颜色的0通道勾选上,点Preview

隐藏的信息出来了,点Save Bin可以保存隐写信息

四.利用各种工具分离出目标图片

打开kali,那里的破解工具多 用binwalk -e output.png不起效果,但可以读出确有两个图片

binwalk不行就用foremost:

foremost output.png

获得两个图片,打开后的确有隐藏信息

参考文献:https://blog.csdn.net/qq_45894840/article/details/128346180