【问题标题】:compile .py file to .c file then convert to .so file将 .py 文件编译为 .c 文件,然后转换为 .so 文件
【发布时间】:2015-03-26 07:59:35
【问题描述】:

我正在尝试使用 Cython 编译 python 文件,它已编译为 .c 文件 然后我使用 gcc 来加密什么是最好的方法来做到这一点

我是这样做的:

cython -a test.py

然后:

gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing -I/usr/include/python2.7 -o test.so test.c

但是有人告诉我他解密了我的文件并查看了代码 用 GCC 加密的最佳方法是什么

谢谢。

【问题讨论】:

  • 谁说你,那个gcc可以用来加密?它是编译器,而不是保护器。
  • 相关,近乎欺骗,答案值得回顾:How do I protect Python code?
  • @KonstantinVladimirov 嗯,我该如何加密它
  • @KonstantinVladimirov 如果我使用会怎样:gcc -lcrypt
  • 然后您将添加到链接 libcrypt.so 仅此而已。看,你应该相信—— gcc 真的只是编译器,没有别的。使用 upx、犰狳或任何其他专业的打包机/保护器

标签: python gcc cython


【解决方案1】:

编译与加密不同。编译代码旨在使其可由机器或虚拟机/语言运行时执行。虽然通常不可能将已编译的程序反编译成原始源代码(或什至接近它的东西),但通常可以恢复类似于原始源代码的东西。

这可能的程度取决于许多因素,包括:

  • 原始语言
  • 使用的编译器
  • 编译过程中涉及的中间表示的数量
  • 编译器优化代码的积极程度(通常是编译器选项)
  • 调试符号是否已从生成的可执行文件中删除

【讨论】:

  • 有什么办法可以加密.c文件
  • 或加密python文件
  • @vevo demo:是的,但是它们各自的编译器都不能使用它们。您能做的最好的事情就是混淆代码(一些程序员无意中这样做)。
  • @vevodemo 你的目标是什么?你想达到什么目标,为什么?
  • 我正在用 Python 编写一些脚本,但有些人偷走了我的工作 :-( 我需要一些东西来保护我的代码就这样
【解决方案2】:

什么加密?没有。您生成的是一个共享库 - 一个 .so 文件。

可以检查符号并进行反汇编,但不能轻易恢复原始 Python 或 C 代码。

【讨论】:

  • 有没有办法加密.c文件?
  • 是的,但它不会用,因为它仍然需要编译才能执行。一般来说,这是不切实际的,因为坚定的用户总是有可能对任何软件进行逆向工程。
猜你喜欢
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-26
相关资源
最近更新 更多