话不多说,直接上原题

TIPS:心中无码

打开解题链接,是一张png图片,直接用16进制编辑器打开,没有附加其它文件。
看下文件区段信息也很正常。

又拖进stegsolve,Blue的0位很不正常

多次尝试主要是因为:1.图像数据是“先行”还是“先列”处理;2.b0去除打码部分后的数据怎么利用的问题。3.如何确定黑白问题

直接上代码吧

#coding:utf-
from PIL import Image lena = Image.open('Lena.png')
pic = Image.new("RGB",(,))
b0 = '' #将像素点弄为0,1代码
bnum = #总共多少位不是为黄 width,heigth = lena.size for x in range(width):
for y in range(heigth):
if (lena.getpixel((x,y))) != (,,): #使像素点不要为黄
if (lena.getpixel((x,y))[] & 0x01):
bnum +=
b0 += "" #无所谓,反位一下即可
else:
bnum +=
b0 += "" print bnum
print "\n"
#print b0 #根据之前的输出,得知总长度为90000,为300* nums = #90000长度 ,长乘宽
for i in range():
for j in range():
if b0[nums] =="":
pic.putpixel([i,j],(,,))
else:
pic.putpixel([i,j],(,,))
nums +=
pic.save("11.png")

黑是(255,255,255)扫不出来,改为了253

一个蛋疼的CTF图片隐写的更多相关文章

  1. 使用fireworks解决图片隐写的问题

    同样也可以用ps来解决图层间隐写的问题

  2. IceCTF 图片隐写

    blue monday 下载一个文件,知道是MIDI文件,后缀改为.mid可以直接播放 一开始以为是两种乐器构成摩斯密码,后来在winhex里看字符发现了每一段的第一个字母恰好有flag的形式,于是提 ...

  3. bugku的一道图片隐写

    可以看到图片是不完整的就联想到其高宽问题.使用winhex打开 将高里面的01改成11 get flag{He1I0_d4_ba1}

  4. 图片隐写--XOR&OR&and

    图片xor的脚本 和图片进行xor or and 运算的脚本 from PIL import Image #import pil def loadImage(filename): img = Imag ...

  5. XCTF(MISC) 图片隐写

    题目描述:菜猫给了菜狗一张图,说图下面什么都没有 1.给了个pdf,打开是这玩意 2.盲猜flag是图片后面,右键直接删除图片试试. 答案出来了.

  6. 图片隐写之Image Steganography软件的使用

    CTF_论剑场 MISC 坏掉的图像 writeup 把图片丢进winhex里,发现头部的 0D 1A 0A 1A是不正确的,正确的应该为 0D 0A 1A 0A,所以需要更改. 更改完成后打开图片可 ...

  7. 利用Audacity软件分析ctf音频隐写

    分析音频得到摩斯电码 看波的宽度分辨长短音 比较细的就是短音,代表"." 比较粗的就是长音,代表"-" 中间的间隔就是" " 得到摩斯电码

  8. CTF之隐写总结

    目测要更很久,因为今年有一件非常重要的事要完成,希望一切顺利  All The Best.

  9. png图片隐写

随机推荐

  1. pycharm 修改新建文件时的头部模板(默认为__author__='...')

    pycharm 修改新建文件时的头部模板 默认为__author__='...'    [省略号是默认你的计算机名] 修改这个作者名的步骤: 依次点击:File->Settings->Ed ...

  2. 判断数据是否服从某一分布(二)——简单易用fitdistrplus包

    一.对数据的分布进行初步判断     1.1 原理 对于不同的分布,有特定的偏度(skewness)和峰度(kurtosis),正态分布.均匀分布.逻辑斯谛分布.指数分布的偏度和峰度都是特定的值,在偏 ...

  3. Swift 2.2 协议和代理

    一:代理 两个类之间的传值,类A调用类B的方法,类B在执行过程中遇到问题通知类A,这时候我们需要用到代理(Delegate). 比如:控制器(Controller)与控制器(Controller)之间 ...

  4. (转)java二维数组的深度学习(静态与动态)

    转自:http://developer.51cto.com/art/200906/128274.htm,谢谢 初始化: 1.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行:2.静态初始化:在 ...

  5. JAVA高级编程序——JDBC(连接mysql数据库)——(一)

    java要想连接数据库,就要用JDBC(java database connection),用这个jar包 (mysql-connector-java-xxx-xx-bin.jar) sun公司为我们 ...

  6. wpf后置代码中的Grid布局以及图片路径的设置

    之前用Grid练习连连看布局时,遇到了几个困惑.此次就把当时的一些收获写出来,供以后翻看. 图片路径可能比较常用,所以就写在第一个了. 在xaml中,设置图片非常简单,只要把图片拷贝到资源目录(这里假 ...

  7. hbase中Compaction的理解及RegionServer内存的使用,CacheBlock机制

    Compaction有两种类型: (1)minor compaction:属于轻量级.将多个小的storefile文件重写为数量较少的大storefile文件,减少存储文件的数量,实际上是个多路归并的 ...

  8. BZOJ 3925: [Zjoi2015]地震后的幻想乡(概率)

    CLJ就是喜欢出ctsc上讲的东西,看来还是得找时间把他的那几道题做下 首先记f(x)为答案>x的概率,那么把这个东西从0到1积分就是答案了 f(x)<=>边小于x不能使图联通的概率 ...

  9. 1详细解析HTML基础结构

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 第28篇 js中let和var

      let与var 在js中声明一个变量除了一个var 还有一个let的声明.对于var 在前面的作用域中已经讲过,这次主要说下二者的区别: 在MDN上有这样的一个demo: var list = d ...