用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+=''
else:
s+=''
print (s)

输出:

111111100110001111111100000100111001000001101110101011001011101101110100100101011101101110100101101011101100000100110001000001111111101010101111111000000001010100000000111011111011111000100110110011011101111011101101111001101111011010010001100000000011111010100000100011000000000001011100110011111111101011100110101100000101101000100010101110101011011000001101110100101101110000101110101101110110001100000101011100010010111111101101100001011

尝试一下拼一起

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

from PIL import Image

length = 21
img = Image.new('RGB', (length*5, length*5))
#黑点为1白点为0
data = "" for x in range(length):
for y in range(length):
if data[x*length+y] == '':
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

[*CTF2019]babyflash的更多相关文章

  1. 嘶吼CTF2019总结(Web部分题目复现以及部分杂项)

    easy calc 这次的比赛自己一题都没有做出来,赛后看题解的时候很难受,其实有很多东西自己其实是可以做出来的,但是思路被限制了,可能这就是菜吧. 首先web题目就是一个easy calc,emmm ...

  2. 关于XXE

    NJUPT CTF2019: 做题的时候,抓包看了一下,响应XML格式消息,并没有严格过滤,这道题读文件, <!DOCTYPE foo [ <!ENTITY xxe SYSTEM &quo ...

随机推荐

  1. Webflux是什么东东

    转自:百家号-薇薇心语 各位Javaer们,大家都在用SpringMVC吧?当我们不亦乐乎的用着SpringMVC框架的时候,Spring5.x又悄(da)无(zhang)声(qi)息(gu)的推出了 ...

  2. tkinter学习(1)

    1.hit_me的一个简单tk窗口学习1.1 代码: import tkinter as tk win = tk.Tk() win.title('my first window') #定义标题,如果未 ...

  3. [01]Binary Search二分查找

    Binary Search二分查找 作用:二分查找适用于有序的的数组或列表中,如果列表及数组中有n个元素,通过二分查找查询某一元素的位置需要的步骤是log2(n)(注:该log的底数是2) 1.Pyt ...

  4. c++ 查重+排序函数

    输入 第一行n.第二行有n个元素. 输出 查重排序后的元素 样例: 输入: 5 1 1 2 3 4 输出: 1 2 3 4 unique的作用是“去掉”容器中相邻元素的重复元素 注意:用unique只 ...

  5. Update(Stage4):sparksql:第5节 SparkSQL_出租车利用率分析案例

    目录: 1. 业务2. 流程分析3. 数据读取5. 数据清洗6. 行政区信息 6.1. 需求介绍 6.2. 工具介绍 6.3. 具体实现7. 会话统计 导读 本项目是 SparkSQL 阶段的练习项目 ...

  6. stm32 串口发送字符串丢失第一个字节

    使用stm32f103调试串口通讯时,上电后发送的字符串的第一个字节丢失. 发送数据GpuSend("SPG(2);"); 接收端收到的数据为:PG(2);,第一个字符丢失. 出现 ...

  7. Bcrypt加密算法简介

    用户表的密码通常使用MD5等不可逆算法加密后存储,为防止彩虹表破解更会先使用一个特定的字符串(如域名)加密,然后再使用一个随机的salt(盐值)加密. 特定字符串是程序代码中固定的,salt是每个密码 ...

  8. 浅谈Java三大特性之继承

    前言 简单用伪代码去介绍一些 父类与子类的构造函数问题 others 前言 类的继承性是面向对象语言的基本特性,多态性前提是继承性.Java 支持继承性和多态性.——Java从小白到大牛 继承:三大特 ...

  9. 【Android多线程】Thread和线程池

    https://www.bilibili.com/video/av65170691?p=3 (本文为此视频听课笔记) 一.为什么要使用多线程 二.Thread 2.1 通过继承Thread类 2.2 ...

  10. centos启动jar包

    不挂断运行命令,日志输出到log.txt中 nohup java -jar boot-cms-module-system-2.0.1.jar >log.txt & Linux 运行jar ...