相关疑难解决方法(0)

混淆Python代码?

我正在寻找如何隐藏我的Python源代码.

print "Hello World!" 
Run Code Online (Sandbox Code Playgroud)

我如何编码这个例子,以便它不是人类可读的?我被告知使用base64,但我不知道如何.

python

49
推荐指数
17
解决办法
8万
查看次数

在Cython中创建可执行文件

一直在玩cython.通常用Python编程,但在前一生中使用过C. 我无法弄清楚如何制作一个独立的可执行文件.

我已经下载了cython,我可以创建一个.pyx文件(这只是一个扩展名为.pyx的普通Python文件),它在Python shell中执行,使用:import pyximport; pyximport.install()

我可以在命令行生成一个.c文件:cython file.pyx我可以通过构建标准的setup.py来生成一个.so文件并执行:

setup.py build_ext --inplace
Run Code Online (Sandbox Code Playgroud)

我尝试使用带有各种选项的gcc从.so文件中创建一个可执行文件,但总是有大量丢失的文件,标题等.尝试过从几乎所有地方指向标题,但没有成功,并且我并不熟悉所有gcc选项的功能,或者即使我应该使用gcc.

我在这里断开了事实,我可以在Python shell中运行我的程序,但不是在命令行,(我不希望用户必须进入shell,导入模块等).

我在这里错过了什么?

python executable packages cython

25
推荐指数
3
解决办法
2万
查看次数

是否可以反编译.dll/.pyd文件以提取Python源代码?

有没有办法反编译一个DLL和/或.pyd文件,以提取用Python编写的源代码?

提前致谢

python dll decompiling pyd extraction

11
推荐指数
1
解决办法
2万
查看次数

解释与Python中的动态调度惩罚

我看了Brandon Rhodes关于Cython的演讲 - "EXE的日子在我们身上".

布兰登在09:30提到,对于一段特定的短代码,跳过解释给出了40%的加速,而跳过分配和发送则给出了574%的加速(10:10).

我的问题是 - 如何测量特定的代码?是否需要手动提取底层c命令,然后以某种方式使运行时运行它们?

这是一个非常有趣的观察,但我如何重新创建实验呢?

python dynamic-programming performance-testing cython dispatch

4
推荐指数
1
解决办法
341
查看次数

编译后的独立 Cython 可执行文件是否仍包含所有原始源代码?

我正在试验 Cython 和代码混淆的可能性(文章)。在那篇文章中特别指出:

编译完成后,无法将编译后的库逆向为可读的 Python 源代码!

我使用这个问题信息在独立的可执行文件中编译我的代码。根据我的理解,如文章1 所述,Cython 将 Python 代码转换为 C 代码,并相应调用 Python 库(这是正确的吗?)。在其他地方,我们只有 C 文件作为输出,并且不能像 .pyc 文件那样反编译回来。

我的测试代码非常简单:

def my_crashing_function():
    x = "1"
    y = 2
    test = x + y  # we will crash here

if __name__ == "__main__":
    my_crashing_function()
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个可执行文件(在cython --embed -o test.c main.py和之后gcc -Os -I /usr/include/python3.5m -o test test.c -lpython3.5m -lpthread -lm -lutil -ldl -s)我得到这样的错误:

user@debian:~# ./hello 
Traceback (most recent call last):
  File "main.py", line …
Run Code Online (Sandbox Code Playgroud)

python compilation cython

3
推荐指数
1
解决办法
565
查看次数