[src = hackme] pyyy
题目描述
Can you pass the challenage?
WP
下载题目文件为一个pyc文件(python字节码文件,有python虚拟机解释执行),因此首先需要反编译,这里我们使用uncompyle6来反编译。
如果没有安装,可以使用下面的命令安装:
1 | pip install uncompyle6 |
安装成功后使用该工具反编译题目给定的pyc文件:
1 | uncompyle6 pyyy.pyc > pyyy.py |
反编译后的结果保存为python源代码文件pyyy.py。打开阅读发现有有大片数据,关键代码在一个用户输入的位置,源代码对l和c进行比较,如果输入的c与l不相等,就退出了,再读代码发现程序的结果实际跟输入没有关系,所以直接注释掉输入和判断语句执行,就得到flag。注释部分(代码中带#部分)如下所示:
1 | for i, f in enumerate(F): |
然后运行得flag:
1 | bitsec@bitsec-ubuntu:~/hackme/pyyy$ python pyyy.py |