在做ctf题的时候遇到这样的一道题,我怕时间久了之后会忘记,所以把题解思路记下来,因为这道题涉及到一些工具,以后可能就会忘了这类题大概会使用到什么工具,所以就记录了下来:
下载附件下来后是一张图片:
我用stepsolve(具体下载可以自己搜教程)工具打开图片,切换到red plane1的时候,发现一个二维码:
用 在线工具 打开识别二维码后是一堆十六进制数:
然后在复制到winhex这个工具上进行解码,选择编辑-->选择剪贴板数据-->粘贴至新文件-->选择ASCII Hex
应为我们要写成pyc文件
pyc: pyc是一种二进制文件,是由Python文件经过编译后所生成的文件,它是一种byte code,Python文件变成pyc文件后,加载的速度有所提高,而且pyc还是一种跨平台的字节码因为py文件是可以直接看到源码的,但是一般情况下开发出来的商业软件都不可能直接把源码泄漏出去,这样我们就需要把它编译成pyc文件来保护源码。另外pyc文件也是可以反编译的,不同版本编译后的pyc文件是不一样的,这主要是根据Python源码中所提供的opcode来决定。
ctrl+a全选,鼠标右键选择编辑,选择复制选快,选择至新文件。
第四步
接着使用 tool.lu 的在线 Pyc 解密工具:python反编译 - 在线工具 进行解密,
得到py文件后,运行py文件,输出flag
总结:
我个人觉得每次遇到自己不会的难题,还是尽量记录下来好一点