[*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+=''
- 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的更多相关文章
- 嘶吼CTF2019总结(Web部分题目复现以及部分杂项)
easy calc 这次的比赛自己一题都没有做出来,赛后看题解的时候很难受,其实有很多东西自己其实是可以做出来的,但是思路被限制了,可能这就是菜吧. 首先web题目就是一个easy calc,emmm ...
- 关于XXE
NJUPT CTF2019: 做题的时候,抓包看了一下,响应XML格式消息,并没有严格过滤,这道题读文件, <!DOCTYPE foo [ <!ENTITY xxe SYSTEM &quo ...
随机推荐
- Plastic Bottle Manufacturer Tips - Attention To Plastic Bottle Processing Technology
In fact, the processing technology of plastic bottles is actually quite strict. In fact, regular man ...
- SSH 维持权限(好用)
很多时候我们拿下机器后需要维持权限,在计划任务上加入定时反弹shell这很容易被 运维人员发现,有些场景没必要用到rootkit级别的后门,我们可以尝试使用ssh后门 1.目的 长期维持机器root权 ...
- jQuery学习(三)
jQuery文档操作方法 1.内部追加内容 选择器追加到内容 append(content)在当前jQuery对象内部所包含的DOM对象的内部的最后追加content对应的内容,其中content可以 ...
- 一大波新款iPhone跟安卓厂商抢夺5G市场
据外媒最新报道称,苹果已经基本完成了今年iPhone的推新阵容,其发布的多款新机中,将涵盖399美元-1149美元的售价区间,特别是5G手机,起步价可能会很亲民,其目的在于进一步占据市场. 今年苹果将 ...
- MySQL忘记密码如何重置
一]进入服务器下,我用的是centos版本 vim /etc/my.cnf 1 vim[二]找到mysqld的部分然后在下面添加上一句代码,意思是跳过密码直接进入,然后保存退出 skip-grant- ...
- 简单bat脚本
hwf.bat: set GAP_HOME=%~dp0\.. ::copy "%JAVA_HOME%\bin\javaw.exe" "%JAVA_HOME%\bin\HW ...
- PLSQL报错: ORA-12170:TNS connect timeout occurred
本人的问题已解决,先在安装oracle的服务器上黑窗口输入tnsping,提示说no listener,这是监听服务没有打开. 打开服务后还是不行,最后原因是服务器的网络有防火墙的问题,关掉防火墙连接 ...
- 什么是 SDK?
通俗而言: 1.其实很简单,SDK 就是 Software Development Kit 的缩写,中问意思是: 软件开发工具包. 2.这是一个覆盖面相当广泛的名词,可以这么说: 辅助开发某一类软件的 ...
- PAT T1004 To Buy or Not to Buy - Hard Version
暴力搜索加剪枝~ #include<bits/stdc++.h> using namespace std; ; string t; string s[maxn]; int pos[maxn ...
- JavaScript高级特征之面向对象笔记二
Prototype 1. 当声明一个函数的时候,浏览器会自动为该函数添加一个属性prototype, 2. 该属性的默认值为{} 3. 可以动态的给prototype增加key和value值 4 ...