CTF---图片的隐写

一、查看图片的基本信息

1、查看基本属性

2、查看图片十六进制源码信息

推荐工具:notepad++、winhex(主推)

(1)jpg图片源码

文件头:FF D8 FF
文件尾:03 FF D9

(2)png图片源码

文件头:89 50 4E 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52(十六进制)
文件尾:00 00 00 00 49 45 4e 44 AE 42 60 82(十六进制)

(3)GIF图片源码

文件头:47 49 46 38

(4)拓展

zip的文件头:十六进制50 4B 03 04,一般以PK表示
zip的文件尾:

二、图片色道通道方式隐藏

利用工具stegsolve打开图片,左右查找即可

三、改变图片文件的高度

1、对于png文件,其第二行第六列是高度位,改这一位即可;

2、对于其他格式图片,可以先看看图片的属性,得到宽高值,转成16进制数,搜索该16进制值就能找到标志位了

#四、文件复合隐写
CTF比赛中经常碰到png文件中复合其他文件的情况,如就是图片后面再放点压缩包、txt文档、或者再添加一张图片,具体操作方法如下:
copy /b a.jpg+b.zip c.jpg
copy /b a.jpg+b.txt c.jpg
copy /b a.jpg+b.jpg c.jpg
解题思路:通常这类图片比较大,可将图片后缀改为zip或者rar,解压即可。也可以用winhex找图片的开头结尾标志,手动分离出来,也可以使用kali下的工具binwalk或者foremost分出来

提供的引用内容未涉及使用010editor进行GIF的相关信息,以下是一般性的010editor实现GIF的方法和相关技巧: ### 方法 #### 1. 利用GIF文件结构特性 GIF文件由文件头、逻辑屏幕描述块、全局颜色表、图像块等部分组成。可以将藏信息插入到文件的非关键区域,如注释扩展块(Comment Extension)。在010editor中,找到GIF文件的注释扩展块位置,将需要藏的信息以ASCII码形式入该块中。 ```python # 示例代码,将字符串信息入GIF注释扩展块 def insert_comment(gif_file_path, comment): with open(gif_file_path, 'rb+') as f: data = f.read() # 查找注释扩展块的起始标志 0x21 0xFE comment_start = data.find(b'\x21\xFE') if comment_start != -1: # 定位到注释内容开始的位置 comment_pos = comment_start + 2 # 入注释信息 f.seek(comment_pos) f.write(comment.encode()) ``` #### 2. 修改像素值 GIF是一种支持索引颜色的图像格式,图像数据由一系列的像素索引值组成。可以通过微小修改像素索引值来藏信息。在010editor中,找到图像数据块,对像素索引值进行调整。例如,将某些像素的索引值按照一定规则进行改变,这些改变在视觉上可能不明显,但可以通过特定的解码算法提取藏信息。 ```python # 示例代码,修改GIF像素索引值藏信息 def hide_info_in_pixels(gif_file_path, info): with open(gif_file_path, 'rb+') as f: data = f.read() # 找到图像数据块起始位置(假设已知) image_data_start = 100 # 这里只是示例位置 pixel_indexes = data[image_data_start:] info_bits = ''.join(format(ord(c), '08b') for c in info) new_pixel_indexes = bytearray(pixel_indexes) for i, bit in enumerate(info_bits): if i < len(new_pixel_indexes): # 修改像素索引值的最低位 new_pixel_indexes[i] = (new_pixel_indexes[i] & 0xFE) | int(bit) f.seek(image_data_start) f.write(new_pixel_indexes) ``` ### 技巧 #### 1. 数据嵌入策略 选择合适的数据嵌入位置和方式,避免影响GIF文件的正常显示和播放。尽量选择对视觉影响较小的区域进行信息藏,如上述的注释扩展块和像素索引值的微小调整。 #### 2. 加密与编码 在藏信息之前,对信息进行加密处理,增加信息的安全性。可以使用常见的加密算法,如AES加密。同时,对加密后的信息进行编码,如Base64编码,确保信息以合适的格式嵌入到GIF文件中。 #### 3. 验证与测试 在完成操作后,使用不同的图像查看器和播放器对修改后的GIF文件进行验证,确保文件仍然能够正常显示和播放。同时,使用自己的解码算法提取藏信息,验证的正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值