zoukankan      html  css  js  c++  java
  • [*CTF2019]babyflash

    用JPEXS反编译flash.swf得到441张黑白图片和1个mp3文件

    软件下载地址:https://github.com/jindrapetrik/jpexs-decompiler/releases

    右键导出图片

    图片很规律,张数刚好是441=21*21,按照图片顺序,黑为1白为0,拼凑出0-1序列

    图像处理脚本——识别1和0:

    from PIL import Image
    def aaa(s):
        image = Image.open("frames/"+str(i)+".png")
        a,b,c,d = image.getpixel((50,50))
        return a
    s=''
    for i in range(1,442):
        if aaa(i)==0:
            s+='1'
        else:
            s+='0'
    print (s)

    输出:

    111111100110001111111100000100111001000001101110101011001011101101110100100101011101101110100101101011101100000100110001000001111111101010101111111000000001010100000000111011111011111000100110110011011101111011101101111001101111011010010001100000000011111010100000100011000000000001011100110011111111101011100110101100000101101000100010101110101011011000001101110100101101110000101110101101110110001100000101011100010010111111101101100001011

    尝试一下拼一起

    图片处理脚本——拼接图片:

    from PIL import Image
    
    length = 21
    img = Image.new('RGB', (length*5, length*5))
    #黑点为1白点为0
    data = "111111100110001111111100000100111001000001101110101011001011101101110100100101011101101110100101101011101100000100110001000001111111101010101111111000000001010100000000111011111011111000100110110011011101111011101101111001101111011010010001100000000011111010100000100011000000000001011100110011111111101011100110101100000101101000100010101110101011011000001101110100101101110000101110101101110110001100000101011100010010111111101101100001011"
    
    for x in range(length):
        for y in range(length):
            if data[x*length+y] == '1':
                for xx in range(x*5, x*5+5):
                    for yy in range(y*5, y*5+5):
                        img.putpixel([xx, yy], (0,0,0))
            else:
                for xx in range(x*5, x*5+5):
                    for yy in range(y*5, y*5+5):
                        img.putpixel([xx, yy], (255,255,255))
    img.save('out.png')

    输出:

     

    得到前半个flag

    *ctf{half_flag_&

    再导出mp3文件,这个是常见套路频谱隐写,得到后半段flag

    &_the_rest}

     参考:https://zhuanlan.zhihu.com/p/64252028

  • 相关阅读:
    Android记事本05
    Android记事本开发04
    Android记事本开发03
    Android记事本开发02
    Android记事本开发01
    项目目标文档
    利益相关者描述案例
    《软件需求》阅读笔记03
    《软件需求》阅读笔记02
    《软件需求》阅读笔记01
  • 原文地址:https://www.cnblogs.com/wkzb/p/12286505.html
Copyright © 2011-2022 走看看