Vape Nation - IceCTF中的一道图片隐写

(一).题目介绍:

题目是一张图片,给的提示是go green题目如下图:

图片长这样的:


(二).分析:

根据提示,很大很大可能与绿色有关,于是先去除绿色,发现没啥发现,如下图:

于是想到可能与绿色的最低位有关系,于是提取出来写到文本里,可能可以用来生成二维码之类的,如下:

于是把这这些值作为黑白像素生成图片,生成结果如下:


(三).贴上代码:

(1).去除绿色:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from PIL import Image

#打开下载过来的图片  
png1 = Image.open("vape_nation.png")

#创建一个和现有图片大小一样的图片
png2 = Image.new("RGBA",(png1.width,png1.height))

#读取像素中的rgb值,并将绿色的值设为0
for x in range(0,png1.height):
	for y in range(0,png1.width):
		r,g,b = png1.getpixel((x,y))

		png2.putpixel((x, y), (r, 0, b))

png1.show()
png2.show()

(2).提取绿色通道最低位:

#!usr/bin/env python
# -*- coding:utf-8 -*-

from PIL import Image

#打开下载过来的图片  
png1 = Image.open("vape_nation.png")

#创建一个和现有图片大小一样的图片
#png2 = Image.new("RGBA", (png1.width, png1.height))

#创建一个文件用来保存绿色通道最低位

f = open("g.txt", "w")

#读取像素中的rgb值,并将绿色的值设为0
for x in range(0,png1.height):
	for y in range(0,png1.width):
		r,g,b = png1.getpixel((x,y))

		#绿色通道的值对0x01进行位运算写入文件
		f.write(str(g & 1))
#显示
#png1.show()
#png2.show()
f.close()

(3).通过绿色通道最低位,生成图片:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from PIL import Image

#打开下载过来的图片  
png1 = Image.open("vape_nation.png")

#创建一个和现有图片大小一样的图片
png2 = Image.new("RGBA",(png1.width,png1.height))

#读取像素中的rgb值,并提取出green通道的最低位的值
for x in range(0,png1.height):
	for y in range(0,png1.width):
		r,g,b = png1.getpixel((x,y))

		#根据最低位的值生成一个黑白的图片
		if g&1 == 1:
			png2.putpixel((x,y),(255,255,255))
		else:
			png2.putpixel((x,y),(0,0,0))

png2.show()



(四).说明:

反推这种方法,也可以将其他内容写到图片中,从而实现信息隐藏的效果。


(五).如有不足之处,还请斧正。

原文地址:http://blog.51cto.com/daye8ku/2058211

时间: 2024-11-05 23:43:16

Vape Nation - IceCTF中的一道图片隐写的相关文章

四道图片隐写题

第一题 打开压缩包得到的是一张PNG格式的图片 首先拖放到010Editor中: CTRL+F 搜索IHDR发现只有一个,没有其他问题 然后放到KALI中分析一波: 图片能够在kali中打开,说明不是宽高的隐写,因为如果修改了宽高在linux中是无法正常显示的 然后binwalk分析一波: 同样的没有什么问题 最后就是放到 stegslove里面试一试了 简单的科普一下png的知识 png支持RGBA四个通道,每个通道占8个二进制位,隐写文件或数据一般都在各个通道的低位,因为低位的变化不会引起较

CTF杂项之图片隐写、crypto

图片隐写: 1.将图片里的数据转换成二维码: 用linux下的信息提取工具Binwalk看一下: [email protected]:~/Desktop# binwalk 图片名 DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 0 0x0 PNG image, 1000 x 562, 8-bit/color RGBA,

记一道CTF隐写题解答过程

  0x00 前言 由于我是这几天才开始接触隐写这种东西,所以作为新手我想记录一下刚刚所学.这道CTF所需的知识点包括了图片的内容隐藏,mp3隐写,base64解密,当铺解密,可能用到的工具包括binwalk,MP3Stego等. 题目链接:http://ctf5.shiyanbar.com/stega/apple.png 0x01 试探 这几天我养成了一个习惯,拿到题目不管三七二十一先到kail上面跑一跑.一来可以多用用里面丰富的工具,二来可以拓展解题思路. 首先.命令行输入wget http

Vape Nation

题目内容: Go Green!   vape_nation.png 下载下来这玩意(gay gay 的) 因为分值低所以应该不难,丢到Stegsolve去做数据抽取,当Grenn plane 0 时出现flag flag:IceCTF{420_CuR35_c4NCEr} 总结:图像隐写,Stegsolve 原文地址:https://www.cnblogs.com/zaixialongaotian/p/10205816.html

隐写分析算法中的检测指标

隐写分析算法中的检测指标 隐写分析中的样本共有2类:原始载体Cover和含密载体Stego.设Stego为正样本P=Positive,Cover为负样本N=Negative.则分布如下: (1) TP=True Positive:把Stego正确检测为Stego (2) FP=False Positive:把Cover错误检测为Stego (3) TN=True Negative:把Cover正确检测为Cover (4) FN=False Negative:把Stego错误检测为Cover 各指

隐写技巧——利用JPEG文件格式隐藏payload

0x00 前言 继续对图片隐写技巧的学习,这次是对JPEG文件格式的学习和理解.同PNG文件的格式对比,JPEG文件相对简单,读取其中隐藏payload的方式大同小异,两者区别在于文件格式不同,可供利用的细节存在差异. 本文相关工具: 16进制编辑器:Hex Editor 隐写检测:Stegdetect 下载地址: https://github.com/abeluck/stegdetect 编辑Exit信息:MagicEXIF 下载地址: http://www.magicexif.com/ 分析

F5隐写工具使用

  0x00 前言 今天在实验吧看到一个图片隐写的题目,用了stegslove和winHex分析一通发现并没有什么有效信息.看了评论区大佬的提示说用到了F5隐写工具,所以百度教程用了一下,发现确实解决了问题. 解题链接:http://www.shiyanbar.com/ctf/1938 0x01 F5下载安装 F5隐写全称F5-steganography,在kail系统命令端输入以下代码: git clone https://github.com/matthewgao/F5-steganogra

ctf中关于图片的隐写随笔(不全)

①JPG图片的结束符,十六进制常为FFD9 ②binwalk的原理是:检查常见的文件头信息,如果不符合,一定有隐藏信息.③JPG是有损压缩,PNG是无损压缩,BMP是不压缩. 隐写的基本原理:图片查看器会忽视掉结束符之后的内容,所以追加在结束符后面的内容会被隐藏起来.

信息安全之隐写图片

隐写图片 我们用记事本打开或者用notepad++打开一张jpg图片,然后在最后写下一段文字,然后发送给别人,别人也用记事本拉到最后 打开才能看到. 这是因为在jpg中,是有结束符的,16进制是FF D9,利用UE编辑器 可以看到正常的jpg结尾都是FF D9的,图片查看器会忽视jpg结束符之后的内容,所以我们附加的内容,自然也就不会影响到图像的正常显示. 我们找一张图片(这表情就是原图)在里面写入“这里是密文”,然后保存 最后我们写一个程序来给出图片地址检查出添加的密文 1 package g