题目来源
攻防世界python-trade
下载附件之后得到pyc文件,使用在线pyc反编译得到源码
分析
从翻遍后得到的源码进行分析,他是对输入的字符进行encode编码后,如果等于correct,则此输入字符为正确的flag.对encode函数进行分析,遍历输入的字符,使用ord函数返回该字符的ASCII数值,再与32进行^操作,然后加上16进行chr()返回字符操作,最后对所有的字符进行base64编码,如果最后的编码等于correct字符,则正确。
编写脚本
从底部进行反写脚本,先对correct进行解码
bycorrect = base64.b64decode(correct)
解码后得到的是ascii编码,先逐个减去16,再进行^32操作,最后使用chr函数输出字符即可
完整代码如下:
结果如图: