首页 > 编程语言 >Cython加密python代码防止反编译

Cython加密python代码防止反编译

时间:2023-10-12 18:23:07浏览次数:39  
标签:Cython 加密 反编译 python py so path import

本方法适用于Linux环境下:

1.安装库Cython

pip3 install Cython==3.0.0a10

 

2.编写待加密文件:hello.py

import random

def ac():
    i = random.randint(0, 5)
    if i > 2:
        print('success')
    else:
        print('failure')

 

3.编写加密脚本

import os
import glob
from distutils.core import setup
from Cython.Build import cythonize
# 需要加密py文件所在文件夹,批量加密
path_list = ["/opt/test/te", "/opt/test"]
# 需要去除的py文件
reduce_list = ["setup.py"]
py_files = []
for path in path_list:
    for root, dirs, files in os.walk(path):
        for file in glob.glob(os.path.join(root, "*.py")):
            for rds in reduce_list:
                if rds not in file:
                    py_files.append(file)

setup(ext_modules=cythonize(py_files), language_level=3)

 

4.执行加密命令

python3 setup.py build_ext --inplace

 

5.执行结果:会生成build文件夹、同名.c文件和同名.so文件,其中.so文件是我们需要的文件,只保留.so文件,其余的全部删除

生成的文件名为 hello.cpython-38-x86_64-linux-gnu.so 可以把他重命名为hello.so, 只要保证跟原文件同名,且为.so格式即可

 

6.使用方式:与Python导包保持一致 from hello import ac

安全性:.so文件反编译后变成c语言,几乎不容易再变回原来的python代码。

 

标签:Cython,加密,反编译,python,py,so,path,import
From: https://www.cnblogs.com/lytcreate/p/17760238.html

相关文章

  • simulink中调用python脚本
      command='test.py&';%后轴&:等待调用结束(command='test.py';%无后轴&:立即执行下一句[status,cmdout]=system(command,'-echo');    参考:详解MATLAB的函数system()和shell转义字符“感叹号”,并利用它们实现在MATLAB中运行(调用)外部exe程序_matlabsy......
  • python 链表
    fromtypingimportOptionalclassListNode:def__init__(self,val=0,next=None):self.val=valself.next=nextclassSolution:defpartition(self,head:Optional[ListNode],x:int)->Optional[ListNode]:lessListPre......
  • 【Python】FastAPI 使用python3.6+构建API的Web框架
    现代、快速(高性能)的Web框架,用于构建基于Python的 API;基于Starlette和Pydantic库构建而成官网:https://fastapi.tiangolo.com/ 1、安装#对于生产环境,还需要一个ASGI服务器,如Uvicorn或Hypercorn#>pipinstall"uvicorn[standard]"pipinstallfastapipipi......
  • python+playwright 学习-61 Playwright 和 Selenium 的区别是什么?
    前言最近有不少同学问到Playwright和Selenium的区别是什么?有同学可能之前学过selenium了,再学一个playwright感觉有些多余,可能之前有项目已经是selenium写的了,换成playwright需要时间成本,并且可能有未知风险。也有同学之前可能没学过selenium,现在正准备入手一个web......
  • Python - 深拷贝一个带有指向自身引用的列表,会报错么?紧接着用==比较,会报错么?
    问题描述深拷贝一个带有指向自身引用的列表:列表x中有指向自身的引用,因此x是一个无限嵌套的列表。importcopyx=[1]x.append(x)>>x[1,[...]]y=copy.deepcopy(x)>>y[1,[...]] 深拷贝不报错但是我们发现深度拷贝x到y后,程序并没有出现stackoverf......
  • 动物识别系统python+Django网页界面+TensorFlow算法模型+数据集训练
    一、简介动物识别系统。基于Python+TensorFlow+Django网页框架+ResNet50算法模型实现实现步骤如下:收集多种动物的图片数据集,并整理归类然后使用TensorFlow搭建ResNet50算法模型网络对数据集进行多次迭代训练最后得到一个精度较高的H5模型文件基于训练好的模型,使用Django开......
  • Python 列表详解:从基础到进阶
    Python是一种广泛使用的高级编程语言,它的设计强调代码的可读性和简洁的语法。Python支持多种编程范式,包括过程、面向对象和函数式编程。在Python中,列表是一种非常重要的数据类型,它可以包含各种类型的元素,如数字、字符串和其他列表。本文将详细介绍Python列表的基础和进阶用法。【基......
  • python beautifulsoup
    beautifulsoup1.安装pipinstallbeautifulsoup4如果这个安装不了,就手动下载安装:下载地址:https://www.crummy.com/software/BeautifulSoup/bs4/download/4.5/解压后执行pythonsetup.pyinstall拷贝python安装目录下的C:\ProgramFiles\python\Tools\scripts\2to3.py文......
  • python_批量处理excel文件
    情况pipinstallopenpyxlpipinstallxlrd数据Excel文件的格式为xls和xlsx,pandas读取excel文件需要安装依赖库xlrd和openpyxl。!注意:当xlrd>=2.0时,只支持xls格式,不再支持xlsx。数据代码importpandasaspdimportosimportjsonif__name__=="__main__":e......
  • 使用python来对字符编码序列进行互转
    排查字符集问题时,有的时候发生乱码不知道如何生成的字符,此时就需要通过字节序列来判断该字符是什么。已知utf8字节序列时,转换为unicode或者gb18030字节序列:>>>a=b'\xef\xbc\xa1'#此时a是一个bytes对象>>>b=a.decode("utf8")#此时b是一个str对象,内部是unicode的编码字......