0x01 什麼是py文件
一般上,我們都會用Python編譯器來運行py文件。而當我們查看py文件的時候,我們都可以直接看到程式的源代碼。然而,因為商業的需求,開發者必須想辦法保護程式源代碼,於是便有了pyc和pyo這2種的文件。
0x02 什麼是pyc文件
pyc是而二进制文件的一種。要生成此文件,我們必須先將py文件經過編譯後,再使用python -m compileall <your_script.py>
來生成你要的pyc文件。pyc文件和py文件比較起來,加載的速度會快了一些。另外,要注意的是不同版本的Python編譯出來的pyc文件也會有所不一樣。
0x03 什麼是pyo文件
pyo是經過優化編譯後的程序。python -O <your_script.py>
便可以直接生成所謂的pyo文件。小提示,python3.5版本以上都一律採用了新的優化機制,所以只有pyc,而沒有使用pyo文件了。
0x04 什麼是pyd文件
pyd是python的动态链接库。
0x05 如何反編譯pyc文件
或許有人會問,那要怎樣從pyo找回源代碼呢?用uncompyle6 2.13.2工具可以將pyc文件的binary code反編譯回原來的代碼。
例子:
安装好uncompyle6后,可在cmd输入uncompyle6 <your_script.pyc>
,你就能得到原本的源代码。
此外,這裡有個線上工具也具有一樣的功能哦。你可以上載pyc文件,然後它會自動幫你轉回源代碼。