簡介
介紹Python代碼混淆工具,可以對源代碼進行混淆處理,保證功能不變但代碼基本不可讀。
注意大部分混淆工具都是可逆的,例如編譯生成pyc文件可以用 https://github.com/wibiti/uncompyle2 來解碼。
pyminifier
pyminifier是一個對Python文件進行壓縮、混淆的工具,項目地址 https://github.com/liftoff/pyminifier 。
使用方式比較簡單,通過pip安裝。
pip install pyminifier
然後直接運行命令,把混淆後的輸出重定向文件即可。
pyminifier ./sparse_classifier.py > new.py
默認命令只是對代碼順序進行重排和減少註釋,如果需要混淆代碼需要加上參數。
pyminifier -O ./sparse_classifier.py > new.py
注意,目前pyminifier只能處理單個文件,而且部分腳本混淆後不可運行,需要手動測試。
Oxyry Python Obfuscator
Oxyry Python Obfuscator是一個在線混淆代碼的工具,地址是 http://pyob.oxyry.com/ 。
注意目前Oxyry也只能混淆單個Python文件,測試過混淆後代碼可用。
Opy
Opy也是一個代碼混淆工具,可以對整個目錄的Python文件進行混淆處理,並且支持定義混淆格式,項目地址 https://github.com/QQuick/Opy 。
經過測試,混淆後的Python項目不可直接執行,不建議使用。
編譯成C模塊
目前大部分開源的Python代碼混淆工具都是可逆的,最安全的不可逆方式是把Python代碼編譯成C模塊,直接發佈編譯後的類庫即可。
但需要編寫額外的代碼來生成C模塊,並且生成後的模塊不一定可以直接運行。