python so反编译_使用cython把python编译so

python so反编译_使用cython把python编译so1.需求为了保证线上代码安全和效率,使用python编写代码,pyc可直接反编译,于是把重要代码编译so文件2.工作2.1安装相关库:pipinstallcythonyuminstall-ygccpython-devel2.2创建setup.py#!/usr/bin/envpython#coding=utf-8fromdistutils.coreimportsetupfrom…

1.需求

为了保证线上代码安全和效率,使用python编写代码,pyc可直接反编译,于是把重要代码编译so文件

2.工作

2.1 安装相关库:

pip install cython

yum install-y gcc python-devel

2.2 创建setup.py

#!/usr/bin/env python#coding=utf-8

from distutils.core importsetupfrom Cython.Build importcythonize

setup(

ext_modules= cythonize(“xxxx.py”)

)

2.3 运行

root@868aec72d1a4:/xxx/xxx/xxx#python setup.py build_ext

Compiling xxx.py because it changed.

[1/1] Cythonizing xxx.py

running build_ext

building‘lib.xxx‘extension

creating build

creating build/temp.linux-x86_64-2.7x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c xxx.c -o build/temp.linux-x86_64-2.7/xxx.o

creating build/lib.linux-x86_64-2.7creating build/lib.linux-x86_64-2.7/lib

x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/xxx.o -o build/lib.linux-x86_64-2.7/lib/xxx.so

会在当年目录上传build目录,结构如下:

root@868aec72d1a4:/spider/codes/lib#tree build/

build/

|– lib.linux-x86_64-2.7

| `–lib| `–xxx.so

`– temp.linux-x86_64-2.7`–xxx.o3 directories, 2 files

2.4 获取so文件即可

今天的文章python so反编译_使用cython把python编译so分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/9109.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注