百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

基于Pyarmor v8+Pyinstaller加密打包Python文件

ztj100 2025-02-15 02:04 18 浏览 0 评论

Pyinstaller 从6.0版本开始就不再支持--key参数了,也就是无法直接加密打包Python文件了,这个时候可以借助Pyarmor先把Python文件进行加密,然后再使用Pyinstaller打包,即使解包了得到的也是加密的Python代码,截止目前2024年3月,Github上还没有破解Pyarmor v8版本的工具,所以暂时是安全的。

Pyarmor 是一个用于加密和保护 Python 脚本的工具,它能够保护 Python 脚本代码不被泄露,此外还支持设置加密后脚本的使用期限,绑定加密脚本到硬盘、网卡等硬件设备,有点类似license控制,确实有点东西。实验过程如下:

ailx10

网络安全优秀回答者

网络安全硕士

去咨询

1)加密前,python代码都是明文

# 加密前的 a.py
from src.b import bb
if __name__ == '__main__':
    bb(1, 1)

2)经过pyarmor v8加密[1]

pyarmor gen a.py

3)加密后都是密文了

# 加密后的 a.py
#!/usr/bin/env python
# Pyarmor 8.5.1 (trial), 000000, non-profits, 2024-03-22T11:42:31.412763
from pyarmor_runtime_000000 import __pyarmor__
__pyarmor__(__name__, __file__, b"PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\x83\x01\x00\x00\x12\t\x04\x00\x01i\xd9\xaak\x8c\xa1@muh\x9aYa\x82\xcb\x00\x00\x00\x00\x00\x00\x00\x00\xed;Y\xf5N]z\xcbCq\xa1\xaePJ\x13:\xdf9H\xb0S\xbe\x94\xbcC\x1a\xed\xec?\x83}\x97|\xe9$J]\x02\xf8-\xc2\x85\x8e\x1ch\x04lL\xe2G\xe4\x12\xd0Y-q\x85\x0c\x0f86\xe16n5\xc0\xceu\x10\xffH\xd0\x8f`\x0c\xac}^\x1a6\x1fF\x7fI\x1e3\xedG)\x810Z\xa3V\xe8\x93m\xd4\xcc\xbb\xa54N\xf06G\xf1\x9e\xf9\x87<\x1c\xb1\x87\xab\xb9KU!\x88\x8d\xab\x100Z\xe4\xe4\xf8\xf7\x84\xda\xa5.\x86\xea\xba\xf7\xda\x90\xd5:Q\xcd0uo\xb5D\x1aev\xbfB\xa3\x0e\xbe\x8c\xae\xf0\x05\x85F\x89#\xae\x8dj\xb6\x1b\x02\t\x967\x0c\xc2\xe7\x01\xf5w\x0e\xdc\x0fr\x1d\xaf\xfa\xf8 \xf0\x90&\xdd\xd3\xbc\xd1X\xf2dh\x9a\x00n\x96\xd3|\x7f\xa1\xde\xa4\x12\x1d\xf4\t\x1e\xc6UG\xa0$\x1b\x85\x1b\xa2q*\xe2#\xa4bj\xc7}\xbb\x9f\x93\x8b\xa4\xc3&\xf4Y\xe1\xff\xa8\x1f\xad\x98],\x0eO\x13\x91\x1b~\xce\n\xfa\x96\x1e!\xdd\xc2\x85a\x1b\x95\x82\xc4\xdcz>ay\xdeIR3\xf5 2\rGE\x02\xc4\x8c\xd3\x84\xd4](%'&\x1dU\x9a\xb0\x8ax\xcf\xfa\n1j\n\x07\xd6\x8c+8C\x94(\xf2\xa1MV?\x82WpB\x9f>]m#\x8a8\xdee\xf0\xd6\xebgO\xffM[\xe3\x07\xb8~\x8azm}\xf3\xdb\\|\xe0,\x7f\xcb\xc7\x8c\x81M\xcc\xef\xcbK\xdd\x8e\xa1\x19\x8f\xd7v\xde\xeb9\x81\x19\xb1\x12\xc3}A\xa5\xc3\xd9\xff\x0e")

4)同理,对src包进行加密

pyarmor gen -O dist2 -r -i src

5)得到加密后的src包的python代码,都是加密的了

# 加密后的 b.py
#!/usr/bin/env python
# Pyarmor 8.5.1 (trial), 000000, non-profits, 2024-03-22T14:14:44.830286
from .pyarmor_runtime_000000 import __pyarmor__
__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00a\x02\x00\x00\x12\t\x04\x00!\xa0\x0c\xe8\x7fW\xaaoy\xe00x\xe9\xdb\x1c\xab\x00\x00\x00\x00\x00\x00\x00\x00\xed\x1f\xfe\xea\xc2\xf5lr\xd9y!\x06\xf0\x1b%\xd3\x076\xb2\xcd4-\x0ck"\xb1\xf7\x85\xceX\xf8\xf9Z\xd4\x96\x1bF\x8f-\x17\x9d\xf1*}\xd7\x04%;p\x9b\xe0(`@\x16$p=\xdaN\x1e}\xa6y\xc7~\x0b\xb6\x047\xe6\x9fIH\xeexC\x05b\xcd\xd32\xc6\t\x92\xacq\xce\rJ}\x18\xc2\xe5|\xfbc%b,m\xbb K\xe0\xaaC\x1aA\xb9E<\xfc{\x7f\xda\x8c?;|KQ\xd8p\xf9.\x9f\x00\x0c\xdc\x0b&Xc\xa7\xa1\x02\x15\x10\xff\xfa)V4\x02L\x84\xe9\xe4\x1al\xe3+\'*U9\x94\xed\xbd\xce\xa9Wm\xbc1}\xd7\xf5\x9bR8\xee\xa1y\xe7\x9e\xf6\x00r\xa5,\xc4\x89&\xacu\x93_/\x8f\x89\xbe\x8b2\x94K]\x91\t\xd3aI\x90hG\xe8[1Z\xcc\xb9\xaa\x05\xa0\xc2\xa2\x026}\xa9\xf9\x82\x83\x97$\xf5c\x06\xc3\xd7\x07y\xa0\x1b\xce\x0b\xb8\x90\xa2\x8a\x93\x14=\xab\xaa\xbeR\xb4\xe5\xeagvx1\x8c\xd781\xccZ\xdb\xddyqfv\x7f\x91E\x16\xa6_\xda\xe4"R\xe8z|\x90\xb8\xe0G\xf31\x81\xa9\x9egp\xc3\x1f\xfe\xe8\xad\xe3\xfa1\xe4\xac\x8c\xb6\x88\xfe\xb2=\x93\xf8\xf7Xk\xfd0;b*\xb7w.\x14\xbcF\xcc\xed\xa9\xcb\xbaSA\xe7%\x88\xec\xcf\xd5#\xe5;\x8fY\xfe\xc2\x94\x9bm\x94\x88>\x0c\x86\x82\x91\xe4!%\x84\x06\x91\xe9\xd3\xec\xb5\xc6n\x94\t\xe7\x9ak\x87\x97A\xe5\x12,3\x8cA\'\xdd+J\xf4\xdb\xc5\x9b\xaf\xd0{\xe7\x05\x06\x97\x9f\x0bS\x86!k\x97\x8a}G\xb7l\xcb\x8eFT\xcb\x84\x11L\x02\xb5\x98\xb6\x1f\xa2O\x1a2\xc6\xa7\x82\xab\xb8 =\xae\xe9o<\xf7|\x95n\xe9:\x8ec\xbeo&\x8a\xaf\x7fw\xe7\x0f\x1c/Z\x7f\x86io\xe0\x12\xaeY\xa6\xb8\xb4/\xeew2>\xbf)\x85\xb2\x8b\x0b\xa7\x83T\t\xe785\xdc\xe2\x9f\x91#\x07z\xc4\x9cbQ\xa0\xcb\xd1\xd1\xb8@\x8b\x1f\xb2\x07k\xc7jDD \x9a\xfd\xdf\x00\xcd\xd46\xff\xf0\xd2H\x10\xff6\xc5V;\x8br\x14\xf0\x1b"\xbe\xb8!\xbe\xbe3\xde.c\x7f\xce\x17\xb7\xd68\x91\xba]\xa8a\x84R\x08\xb0\xfbL\xe3i\x0e7\x8a\x8f\xb6\xee\xdbFs\x909&\xecoV\xcb\xf7\xff\xfd(\xa6\xe9\x83(U~\xfdb\x1b\x19\xa4\x97\xd0\'\x93\xae\xbe1:\x04\x8c@\x8eh\xf8\xb5\xa6\xda')

6)使用pyinstaller 将自己的包和主函数,一起打包

pyinstaller -F --add-data "src;src" a.py

7)将加密的src包,以及主程序的加密辅助包,一起复制到打包后的dist目录中,成功运行exe

8)使用 pyinstxtractor-ng 解包

pyinstxtractor-ng.exe a.exe

9)使用uncompyle6 解密主程序 a.pyc,发现是 pyarmor 加密后的a.py文件,win了~

uncompyle6 a.pyc

参考

  1. ^pyarmor https://pyarmor.readthedocs.io/zh/stable/tutorial/getting-started.html

发布于 2024-03-22 16:25?IP 属地江苏

相关推荐

30天学会Python编程:16. Python常用标准库使用教程

16.1collections模块16.1.1高级数据结构16.1.2示例...

强烈推荐!Python 这个宝藏库 re 正则匹配

Python的re模块(RegularExpression正则表达式)提供各种正则表达式的匹配操作。...

Python爬虫中正则表达式的用法,只讲如何应用,不讲原理

Python爬虫:正则的用法(非原理)。大家好,这节课给大家讲正则的实际用法,不讲原理,通俗易懂的讲如何用正则抓取内容。·导入re库,这里是需要从html这段字符串中提取出中间的那几个文字。实例一个对...

Python数据分析实战-正则提取文本的URL网址和邮箱(源码和效果)

实现功能:Python数据分析实战-利用正则表达式提取文本中的URL网址和邮箱...

python爬虫教程之爬取当当网 Top 500 本五星好评书籍

我们使用requests和re来写一个爬虫作为一个爱看书的你(说的跟真的似的)怎么能发现好书呢?所以我们爬取当当网的前500本好五星评书籍怎么样?ok接下来就是学习python的正确姿...

深入理解re模块:Python中的正则表达式神器解析

在Python中,"re"是一个强大的模块,用于处理正则表达式(regularexpressions)。正则表达式是一种强大的文本模式匹配工具,用于在字符串中查找、替换或提取特定模式...

如何使用正则表达式和 Python 匹配不以模式开头的字符串

需要在Python中使用正则表达式来匹配不以给定模式开头的字符串吗?如果是这样,你可以使用下面的语法来查找所有的字符串,除了那些不以https开始的字符串。r"^(?!https).*&...

先Mark后用!8分钟读懂 Python 性能优化

从本文总结了Python开发时,遇到的性能优化问题的定位和解决。概述:性能优化的原则——优化需要优化的部分。性能优化的一般步骤:首先,让你的程序跑起来结果一切正常。然后,运行这个结果正常的代码,看看它...

Python“三步”即可爬取,毋庸置疑

声明:本实例仅供学习,切忌遵守robots协议,请不要使用多线程等方式频繁访问网站。#第一步导入模块importreimportrequests#第二步获取你想爬取的网页地址,发送请求,获取网页内...

简单学Python——re库(正则表达式)2(split、findall、和sub)

1、split():分割字符串,返回列表语法:re.split('分隔符','目标字符串')例如:importrere.split(',','...

Lavazza拉瓦萨再度牵手上海大师赛

阅读此文前,麻烦您点击一下“关注”,方便您进行讨论和分享。Lavazza拉瓦萨再度牵手上海大师赛标题:2024上海大师赛:网球与咖啡的浪漫邂逅在2024年的上海劳力士大师赛上,拉瓦萨咖啡再次成为官...

ArkUI-X构建Android平台AAR及使用

本教程主要讲述如何利用ArkUI-XSDK完成AndroidAAR开发,实现基于ArkTS的声明式开发范式在android平台显示。包括:1.跨平台Library工程开发介绍...

Deepseek写歌详细教程(怎样用deepseek写歌功能)

以下为结合DeepSeek及相关工具实现AI写歌的详细教程,涵盖作词、作曲、演唱全流程:一、核心流程三步法1.AI生成歌词-打开DeepSeek(网页/APP/API),使用结构化提示词生成歌词:...

“AI说唱解说影视”走红,“零基础入行”靠谱吗?本报记者实测

“手里翻找冻鱼,精心的布局;老漠却不言语,脸上带笑意……”《狂飙》剧情被写成歌词,再配上“科目三”背景音乐的演唱,这段1分钟30秒的视频受到了无数网友的点赞。最近一段时间随着AI技术的发展,说唱解说影...

AI音乐制作神器揭秘!3款工具让你秒变高手

在音乐创作的领域里,每个人都有一颗想要成为大师的心。但是面对复杂的乐理知识和繁复的制作过程,许多人的热情被一点点消磨。...

取消回复欢迎 发表评论: