Easychallenge
难度系数: ☆
题目来源:NJUPT_CTF
题目描述:你们走到了一个冷冷清清的谜题前面,小鱼看着题目给的信息束手无策,丈二和尚摸不着头脑 ,你嘿嘿一笑,拿出来了你随身带着的笔记本电脑,噼里啪啦的敲起来了键盘,清晰的函数逻辑和流程出现在了电脑屏幕上,你敲敲键盘,更改了几处地方,运行以后答案变出现在了电脑屏幕上。
————————————————————————
附件下载下来发现是一个.pyc文件
百度得到信息:
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,运行加载的速度会有所提高;另一反面,把py文件编译为pyc文件,从而可以实现部分的源码隐藏,保证了python做商业化软件时的安全性
花了一段时间想要用些软件打开它,未果
然后在百度找软件的过程中,发现可以将pyc文件反编译回py文件
于是继续百度,了解到可以用uncompyle6这个第三方python反编译器来进行反编译
uncompyle6是一个原生python的跨版本反编译器和fragment反编译器,是decompyle、uncompyle、uncompyle2等的接替者。
uncompyle6可将python字节码转换回等效的python源代码,它接受python 1.3版到3.8版的字节码,这其中跨越了24年的python版本,此外还包括Dropbox的Python 2.5字节码和一些PyPy字节码。
github项目:https://github.com/rocky/python-uncompyle6
然后pip install uncompyle6安装之
先把附件重命名为mima.pyc以便后续操作
在mima.pyc所在文件夹位置打开cmder,输入命令:
uncompyle6 -o . mima.pyc
成功反编译为mima.py文件
用vscode打开mima.py,完整的python源代码便玉体横陈在我们面前了
# uncompyle6 version 3.5.0
# Python bytecode 2.7 (62211)
# Decompiled from: Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)]
# Embedded file name: ans.py
# Compiled at: 2018-08-09 11:29:44
import base64
def encode1(ans)