韩国人的逆向题目网站:Reversing.Kr
浏览器点击Flash Encrypt自动下载flashenc.swf文件。
这题我们使用前辈们推荐的ffdec软件进行反编译。(以下给出github链接,也可以浏览器搜索下载)
GitHub - jindrapetrik/jpexs-decompiler: JPEXS Free Flash Decompiler
如上图所示,打开flashenc.swf之后,可以看到这个视频一共有七个帧。每个帧里面只有一个文本框和一个按钮。
我们可以发现七个帧中只有第一个帧的文本框中输入了字符1234567890,其他都没有,而如下图所示:最后一个帧显示Key is。很明显我们如果掌握了这个帧的信息,那么密钥就获得了。
我们首先查看第一个帧:鼠标移动到按钮位置,可以看到按钮响应函数是DefineButton2(4)。
打开脚本之前,要先在设置一栏勾选自动反混淆,这样看到的代码能看懂
于是我们在脚本中找到这个DefineButton2(4)函数,如下图所示:看到函数内部代码逻辑
如下图所示,让我们看的更清晰。很明显,spw是我们文本框输入的字符串,这段代码逻辑就是当spw==1456的时候,跳转播放到第三个帧。
好的,那我们接下来查看第三个帧,如下图所示。
同理,第三个帧的按钮响应函数是DefineButton2(9),我们找到该函数,如下图所示:
如上图所示,看到同样的代码逻辑:当spwd==25时,执行运算、清空,然后跳转播放第四帧。
……后续的推理过程同理,最终的就是跳转到第七帧,然后输出Key,就成功了!
在文件一栏另存为exe文件,打开。如果没有下载Adobe Flash Player是打不开这个.exe文件的,下载地址:https://www.flash.cn/
依次在弹出的文本框中输入:
- 1456
- 25
- 44
- 8
- 88
- 20546
最后输出结果如下:Key is 16876
成功获得240分。
参考资料
171018 逆向-Reversing.kr(Flash Encrypt)_ffdec 怎么运行脚本-CSDN博客
CTF/Reversing-Kr/FlashEncrypt/Reversing-Kr Flash-Encrypt Writeup.md at master · L1B0/CTF · GitHub
reversing.kr/Flash Encrypt/README.md at master · DoubleLabyrinth/reversing.kr · GitHub