python代码是一种解释型的语言,有了代码和环境就可以执行,它无需编译。如果需要对代码进行混淆,可以借助cython这个库。它的安装很简单,直接运行pip install cython就可以安装。

进行代码混淆之前,还需要一个环境,就是msvc,其实就是visual studio 2017环境安装。

使用cython其实最麻烦的在于vc环境的安装,有了这一步,后面才可以把py文件生成pyd文件,达到加密的目的。

可以准备一个简单的py文件:

hallo.py

def hello(name):return "hello,%s" % namedef add(a, b):return a + b

在hallo.py同目录下新建一个setup.py文件

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("hallo.py"))

接着就可以执行如下命令:

python setup.py build_ext

不出意外,运行如下:

C:\Users\buejee\PycharmProjects\pythonProject>python setup.py build_ext
Compiling hallo.py because it changed.
[1/1] Cythonizing hallo.py
C:\Users\buejee\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: C:\Users\buejee\PycharmProjects\pythonProject\hallo.pytree = Parsing.p_module(s, pxd, full_module_name)
running build_ext
building 'hallo' extension
"D:\tools\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD "-IC:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\include" "-IC:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\Include" "-ID:\tools\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-ID:\Windows Kits\10\include\10.0.14393.0\ucrt" "-ID:\Windows Kits\10\include\10.0.14393.0\shared" "-ID:\Windows Kits\10\include\10.0.14393.0\um" "-ID:\Windows Kits\10\include\10.0.14393.0\winrt" "-ID:\Windows Kits\10\include\10.0.14393.0\cppwinrt" /Tchallo.c /Fobuild\temp.win-amd64-cpython-310\Release\hallo.obj
hallo.c
"D:\tools\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\link.exe" /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO "/LIBPATH:C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\libs" "/LIBPATH:C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0" "/LIBPATH:C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\PCbuild\amd64" "/LIBPATH:D:\tools\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64" "/LIBPATH:D:\Windows Kits\10\lib\10.0.14393.0\ucrt\x64" "/LIBPATH:D:\Windows Kits\10\lib\10.0.14393.0\um\x64" /EXPORT:PyInit_hallo build\temp.win-amd64-cpython-310\Release\hallo.obj /OUT:build\lib.win-amd64-cpython-310\hallo.cp310-win_amd64.pyd /IMPLIB:build\temp.win-amd64-cpython-310\Release\hallo.cp310-win_amd64.lib正在创建库 build\temp.win-amd64-cpython-310\Release\hallo.cp310-win_amd64.lib 和对象 build\temp.win-amd64-cpython-310\Release\hallo.cp310-win_amd64.exp
正在生成代码
已完成代码的生成

构成成功,生成的pyd文件在build目录下:

这个文件虽然名字叫hallo.cp310-win_amd64.pyd,但是你可以像hallo.py文件一样调用。

而这个pyd文件就是经过加密之后的文件,类似dll,可以反汇编,但是不能反编译。

cython混淆加密相关推荐

  1. ZFJPyMix-Python代码混淆加密

    更新说明 https://gitee.com/zfj1128/ZFJPyMix ----------------------------------------分割线----------------- ...

  2. 解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾

    解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾 原文 解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾 php做为一门当下非常流行的web语言,常常看 ...

  3. 【JS 逆向百例】网洛者反爬练习平台第一题:JS 混淆加密,反 Hook 操作

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 写在前面 逆向目标 绕过无限 debugger Hook 参数 逆向参数 PyCharm 本地联调 完整代码 J ...

  4. android js 代码混淆工具,好用的JS(Javascript)混淆加密工具-HDS JSObfuscator 2.14版

    好用的JS(Javascript)混淆加密工具-HDS JSObfuscator 2.14版 书法字体2017.06.23css压缩 分享一款好用的JS混淆加密工具:HDS JSObfuscator ...

  5. PowerShield (软件加壳工具) PB混淆加密大师

    PB如何防反编译? 用PBKiller.exe 能看到pb编译出来pbd和dll里面完整的代码. 试试PB防反编译powershield V1.0, 对exe所在的pbd混淆,其他的pbd中的代码. ...

  6. js脚本混淆加密(转载)

    "混淆"也好,"加密"也好,都是为了加强代码的安全性,防范被人任意查看,在一定程度上保护资源. 请大家注意,在本主题的标题上,我把"混淆". ...

  7. 前端JavaScript代码混淆加密原理介绍

    因为JavaScript大都是运行在浏览器端,这就导致任何人都可以直接对网站的代码进行查看,如果代码没有进行任何处理就会导致直接暴露源码,他人便可轻而易举的复制你的劳动成果,但是由于没有纯粹的加密方案 ...

  8. 研究下php加密混淆,解析php混淆加密解密的手段,如 phpjm,phpdp神盾

    php做为一门当下非常流行的web语言,常常看到有人求解密php文件,想当年的asp也是一样.一些人不理解为什么要混淆(加密),甚至鄙视混淆(加密),在我看来混淆加密代码可以用来防一般的小人,会起到一 ...

  9. php怎么魔方加密,深度解析php混淆加密解密的手段,希望对大家解读魔方加密有所帮助 [tihuan]...

    深度解析php混淆加密解密的手段,希望对大家解读魔方加密有所帮助 [tihuan] 2018-12-31 php做为一门当下非常流行的web语言,常常看到有人求解密php文件,想当年的asp也是一样. ...

  10. 一个对C#程序混淆加密,小巧但够用的小工具

    对于我们程序员来说,平常开发的桌面应用程序,如果不进行一定程度的加密.混淆,是很容易通过反编译手段进行破解的,特别是一些商业用途的C#软件,更是容易被破解. 所以今天给大家推荐一个对C#程序加密混淆项 ...

最新文章

  1. java tooltips_一款使用纯javacript编写的轻量级tooltips工具
  2. do{}while(0) 作用
  3. 切片分析报告格式_疫情舆情分析研判报告怎么撰写?2020舆情报告格式
  4. python数据分析实战:数据可视化的一些基本操作
  5. java,list遍历赋值
  6. DOS特殊字符转义方法
  7. asp.net运行机制
  8. 图像处理基本算法-直方图均衡
  9. Python 将时间戳转换为本地时间并进行格式化
  10. 主进程退出后子进程还会存在吗?_进程和线程面试常见的19个问题
  11. springboot项目控制层的接口注入报错
  12. 3dmax如何删除重叠部分
  13. 大数据基础概念(三)
  14. Linux编译simplest_ffmpeg_player
  15. 数据不满足正态分布,方差齐性怎么办?
  16. button的setClickable 和 setEnabled 区别
  17. 重新认识 Java 中的内存映射(mmap)
  18. 国内公认超级美景,有时间和你心爱的人开始一段旅程
  19. No7. 字符串匹配
  20. ubuntu 装在ssd_如何在Ubuntu中调整SSD以提高性能

热门文章

  1. mysql auto reconnect_Mysql5的auto Reconnect异常
  2. 【软件测试基础知识】SDK是什么?
  3. xingtai -飞机大战2。0
  4. python 3 过滤股票
  5. 算法分析与设计实验报告——图的m着色问题
  6. 基于Linux通用GPIO接口的操作函数
  7. 今日恐慌与贪婪指数为21 恐慌程度有所缓解
  8. 大数据平台的SQL查询引擎有哪些
  9. php doctrine,数据库和Doctrine ORM
  10. opensuse15.0测试使用snapper