可以提取使用PyRun_SimpleString执行的python源代码吗?

时间:2011-11-14 03:12:53

标签: python security embed

我正在开发一个基于嵌入式Python和C ++的软件。我想保护我的一些python代码并防止人们复制它。

现在我使用PyRun_SimpleString来执行python代码,并使用我的C ++代码生成字符串。

如果我使用这种方法,它是否会保护Python代码不被复制?

1 个答案:

答案 0 :(得分:0)

所以,据我所知,实际程序不会存在于可执行文件中,无论是python源代码形式,还是'marshalled'形式(基本上是.pyc映像)或编译形式,尽管我猜它会存在于某些加密或者在运行时转换为python源的模糊形式。

这肯定会使提取代码变得更加困难,但是在运行时可以跟踪代码的攻击者将能够捕获对PyRun_SimpleString的调用并获取普通源代码。

这是一个学位问题 - 你想要多大努力让攻击者更加努力工作。

您可能想要查看python源代码中的“冻结模块”工具。这基本上允许'.pyc'图像以字节数组的形式编译,并在运行时通过解组它们来导入。所以从来没有任何纯文本源,但是如果你在图像中找到它,那么.pyc图像很容易分析。更进一步,混淆pyc图像 - 现在攻击者需要分析或追踪去混淆,但仍然看不到简单的源代码。