前言

终于给我一把梭了!

方法零是最终集大成版本,也是最方便的一把梭版本,目前可以通杀所有不带字节码混淆的pyc。


方法零

① 对于python3.9版本以下(不包含3.9)

https://github.com/one066/Exe-decompiling 下载这个工具,然后

pip install uncompyle
只需将exe放到 bucket 文件夹下,运行main.py,即可得到python文件
中间过程生成的文件全部会自动删除
② 对于python3.9版本以上(包含3.9)

下载pycdc.exe(百度上都有的,如果找不到可以私信我要)
然后按照上述①中的工具运行一边,会报错,没关系,bucket文件夹下已经生成了pyc文件
命令行 pycdc.exe xxx.pyc 即可反编译成功
如果想要保存到一个文件中 pycdc.exe xxx.pyc > 1.txt 即可
如果想要批量反编译自己写py脚本去,写好可以让我嫖嫖(因为没这个需求就懒得写了2333)


方法一(不建议,因为方法0更全面和便捷)

https://github.com/saucer-man/exe2py 先下载个反编译工具,然后手工给解出来的pyc加上magic头,需要与版本对应
比如python3.8_32位的magic头就是加这串

python 编译 反编译 python反编译工具_反编译

之后pip install uncompyle6
uncompyle6 xxx.pyc
用uncompyle6一把梭就行了

什么?你问我不同版本的magic头怎么找?
上述工具在反编译的时候会产生一个base_library.zip,随便把里面pyc第一行复制出来就行了。


结语

记得一开始出校赛题目的时候就有pyc逆向,那时候作为出题人的我也一知半解照本宣科,现在算彻底精通了。