2011-11-14 70 views
1

我正在開發基於嵌入式Python和C++的軟件。我想保護我的一些python代碼並防止人們複製它。可以使用PyRun_SimpleString執行python源代碼嗎?

現在我使用PyRun_SimpleString來執行python代碼,並且使用我的C++代碼生成字符串。

如果我使用這種方法,是否會保護Python代碼不被複制?

回答

0

所以,據我瞭解,實際的程序不會存在於可執行文件中,無論是在Python源代碼形式,還是'marshalled'形式(基本上.pyc圖像)或編譯形式,但我想它會存在於一些加密或模糊形式,在運行時轉換爲python源代碼。

這絕對會讓代碼難以提取,但是攻擊者可以在運行代碼時跟蹤代碼,從而可以捕獲對PyRun_SimpleString的調用並獲取普通的源代碼。

這是一個關於學位的問題 - 想要讓攻擊者的工作變得更難,你有多努力工作。

你可能想看看python源文件中的'frozen module'工具。這基本上允許'.pyc'圖像作爲字節數組編譯,並在運行時通過取消編組來導入。因此,從來沒有任何純文本來源,但有.pyc圖像,如果您在圖像中找到該圖像,可以相當容易地進行分析。再進一步,混淆pyc映像 - 現在攻擊者需要分析或追蹤去混淆,並且仍然不會看到簡單的源代碼。

+0

所以,你的意思是說,無論如何,如果黑客捕捉到PyRun_SimpleString的調用,他將能夠轉儲整個python代碼? 在這種情況下,我認爲只有編譯成字節碼纔是可行的方法。 – Sundar

+0

我現在試圖在Python中搜索「Frozen Module」。仍然需要找到一個好例子。一旦我設法完成,就會發布。 – Sundar

相關問題