讓我們假設有一個大的商業項目(a.k.a項目),它使用引擎蓋下的Python來管理插件,以配置可以附加和使用Project的新控制界面。如何防止反編譯或檢查python代碼?
有一個小小的信息泄露,項目的Python API的一部分泄露給公共信息,人們能夠編寫Python腳本,這些腳本被底層Python實現調用,作爲Project的插件加載機制的一部分。
更進一步,使用inspect
模塊和raw __dict__
讀數,人們能夠找到Project的基礎Python實現的主要部分。
有沒有辦法讓Python密碼保密?
快看看Python的文檔透露了一個辦法suppres inspect
模塊的導入是這樣的:
import sys
sys.modules['inspect'] = None
它是否已完全解決這個問題?
對於你最後的回答,我仍然可以這樣做:'del sys.modules ['inspect']':) – mouad
相關:http://stackoverflow.com/questions/261638/how-do-i-protect-python-代碼 –
不可能。 _But_ - 看看[這個答案](http://stackoverflow.com/questions/576963/python-code-obfuscation/577161#577161)它建議使用Cython。當然,任何東西都可以被反向設計,但是由於Cython生成的c代碼被編譯成機器代碼,所以可能很難像c中編寫的任何東西那樣反向工程。 – senderle