可以提取使用PyRun_SimpleString执行的python源代码吗? 我正在开发一个基于嵌入式Python和C++的软件。我想保护我的一些python代码并防止人们复制它 现在我使用pyRunsSimuleString执行Python代码,字符串是用C++代码生成的。p>

可以提取使用PyRun_SimpleString执行的python源代码吗? 我正在开发一个基于嵌入式Python和C++的软件。我想保护我的一些python代码并防止人们复制它 现在我使用pyRunsSimuleString执行Python代码,字符串是用C++代码生成的。p>,python,security,embed,Python,Security,Embed,如果我使用这种方法,它会保护Python代码不被复制吗?因此,据我所知,实际的程序不会以Python源代码形式,也不会以“封送”形式(基本上是.pyc图像)或编译形式存在于可执行文件中,尽管我猜它将以某种加密或模糊的形式存在,并在运行时转换为python源代码 这无疑会使提取代码变得更加困难,但能够在代码运行时跟踪代码的攻击者将能够捕获对PyRun_SimpleString的调用并获取普通源代码 这是一个程度的问题——你想付出多大的努力让攻击者的工作更难 您可能希望查看python源代码中的“冻

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

因此,据我所知,实际的程序不会以Python源代码形式,也不会以“封送”形式(基本上是.pyc图像)或编译形式存在于可执行文件中,尽管我猜它将以某种加密或模糊的形式存在,并在运行时转换为python源代码

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

这是一个程度的问题——你想付出多大的努力让攻击者的工作更难


您可能希望查看python源代码中的“冻结模块”功能。这基本上允许将“.pyc”图像编译为字节数组,并在运行时通过取消编组导入它们。因此,从来没有任何纯文本源,但是有一个.pyc图像,如果您在图像中找到它,它就相当容易分析。更进一步,模糊pyc图像-现在攻击者需要分析或跟踪消除模糊后的图像,仍然看不到简单的源代码。

那么,你的意思是,在任何情况下,如果黑客捕捉到对PyRun_SimpleString的调用,他将能够转储整个python代码?在这种情况下,我认为只编译成字节码是可能的方法。仍然需要找到一个好的例子。一旦我完成了,我会把它贴出来。