2011-11-14 37 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

相关问题