看完后我该如何保护Python代码? ,我决定尝试在Windows上一个非常简单的扩展模块。 我整理我自己的扩展模块在Linux之前,但是这是我第一次编译它在Windows上。 我期待得到一个.dll文件,而是,我得到了一个.pyd文件。 文件说,他们是那种相同,但它必须有一个init[insert-module-name]()
函数。
它是安全的假设,这是难以逆转的改造它们的DLL文件。 如果没有,什么是他们的硬度逆向工程中的比例从.pyc文件文件到.dll文件?
看完后我该如何保护Python代码? ,我决定尝试在Windows上一个非常简单的扩展模块。 我整理我自己的扩展模块在Linux之前,但是这是我第一次编译它在Windows上。 我期待得到一个.dll文件,而是,我得到了一个.pyd文件。 文件说,他们是那种相同,但它必须有一个init[insert-module-name]()
函数。
它是安全的假设,这是难以逆转的改造它们的DLL文件。 如果没有,什么是他们的硬度逆向工程中的比例从.pyc文件文件到.dll文件?
他们是,因为你已经发现了,相当于DLL文件具有一定的结构。 原则上,他们同样难以逆转的工程师,他们是机器代码,需要很少的元数据和代码可能面目全非都得到了优化。
然而,所需的结构,并且知道许多功能将被处理PyObject *
S和其它明确限定的CPython的类型,可能有一定的效果。 它不会真的用汇编代码映射到C(如果有的话,它就会更难由于特定的CPython的宏)帮助。 这主要与Python类型交互的代码将目光从代码操纵C结构(且相对臃肿的)完全不同。 这可能使它更难理解,也可能放弃代码做什么有趣的,并允许反向工程跳过它,并获得你的商业秘密更早。
这些问题没有适用的代码段,其是纯C代码(即不使用Python交互)。 你可能有很多的那些。 所以它不应该做到底显著差异。
他们基本上都是本地代码。 但由于每一个功能都有有趣的参数列表,这可能是很难看到每一个函数所做的事情。 我会说他们是因为DLL硬,如果不是更难。