.py文件
源代码文件。
这是开发者编写的 Python 源代码文件,包含了可执行的 Python 代码。
.pyc文件
字节码文件。
Python 源文件(.py)在执行时会被编译为字节码,并存储在 __pycache__ 目录下,文件名通常是 模块名.cpython-XX.pyc,其中 XX 表示 Python 的版本号。
反编译.pyc文件
拿到.pyc
文件我首先想到的就是反编译.pyc
文件,然后就是去找工具来反编译。
uncompyle6
pip install uncompyle6
对我的pyc文件进行反编译uncompyle6 xxx.pyc
运行发现magic number不正确
提示信息是未知的magic number,接下来去找相关信息。
magic number
magic number是.pyc
文件的文件头,了解到不同python版本编译的.pyc
文件,他们的magic number是不同的。
接下来就去寻找3.7对应的magic number,找到之后利用WinHex添加上去。
修改之后利用uncompyle进行反编译,在命令行就可以看到反编译信息
把这些信息输出到一个.py
文件里
打开game.cpython-37.py看看,发现flag部分
单独拿出来解flag,运行出来结果。
参考文章
https://blog.csdn.net/Zheng__Huang/article/details/112380221
https://blog.csdn.net/zhang644720213/article/details/103994283
https://blog.csdn.net/OrientalGlass/article/details/134612786