pyc文件的反编译

最近有个需求,说是某个oss服务license过期了,需要帮看看,能不能恢复.登录上去后发现是个python写的oss服务,全是pyc文件。

upload successful

想办法找到服务目录,启动服务后,请求了一下,返回license过期了:

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Message>
The service license you provided was expired, Please contact your administrator.
</Message>
<Code>LicenseExpired</Code>
<Resource>
</Resource>
<RequestId>538D80B03DAD7C4A</RequestId>
</Error>

找到config文件,发现了里面的License信息,明显是个Base64编码,但Decode后又是乱码,看来应该还有层加密,那破解只能反编译pyc文件,看python源码解析了。

python反编译工具 uncompyle6

github地址: https://github.com/rocky/python-uncompyle6

pip安装

1
pip install uncompyle6

使用

譬如反编译license.pyc文件生成源码文件license.py

1
uncompyle6 -o license.py license.pyc

vim license.py ,一目了然, 就是个时间戳的加密。。。

upload successful

生成个新的license:

1
python2 license.py encode_license 3000 01 01

替换,结束

结论

如果是卖不想给源码或者证书的服务,用python做实在是不合适。。。