吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1125|回复: 13
收起左侧

[经验求助] python打包程序加密问题

[复制链接]
M-Riley 发表于 2023-7-4 14:27
100吾爱币
大佬们,小弟非专业程序员,最近用python打包了一个程序,用的是pyinstaller + upx,最近发现好像被别人反编译了,请问如何有效的防止别人反编译,保护自己的代码?

最佳答案

查看完整内容

对新手来说,我推荐这两个 Python 代码保护工具: 1. Pyarmor - 可以直接拖放你的 .py 文件进行混淆和加密。 - 提供多种混淆级别供选择。 - 有免费版和专业版两个版本。 - 支持 Python 2 和 Python 3。 2. Pyinstxtr - 可以将 Python 脚本编译成 Windows 可执行程序(.exe)。 - 可以直接拖放 .py 文件编译。 - 默认会对代码进行混淆,难以反编译。 - 支持多种编译选项,可以设定图标、签名等。 - 编译出来的 .exe 文件易于 ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

平凡的恩赐 发表于 2023-7-4 14:27
M-Riley 发表于 2023-7-4 15:45
大佬,有适合新手用的保护工具吗?最好是那种直接把代码或是程序拖进去进行压缩和混淆啥的

对新手来说,我推荐这两个 Python 代码保护工具:
1. Pyarmor
- 可以直接拖放你的 .py 文件进行混淆和加密。
- 提供多种混淆级别供选择。
- 有免费版和专业版两个版本。
- 支持 Python 2 和 Python 3。
2. Pyinstxtr
- 可以将 Python 脚本编译成 Windows 可执行程序(.exe)。
- 可以直接拖放 .py 文件编译。
- 默认会对代码进行混淆,难以反编译。
- 支持多种编译选项,可以设定图标、签名等。
- 编译出来的 .exe 文件易于扩散和部署。
这两个工具的优势在于:
- 界面简单易用,没有其他配置,直接拖放文件就可以使用。
- 对新手来说操作难度很低,无需了解复杂的混淆原理和技术。
- 可以有效在一定程度上保护代码,防止被反编译。
但它们也存在一定局限性:
- 混淆和加密效果有限,不一定能完全防止高级反编译。
- 一些专业版付费功能可能对新手效果不明显。
总的来说,对于完全新手来讲,Pyarmor和Pyinstxtr足以提供基本的代码保护。它们的易用性和自动化,正好符合新手的需求。
xbang 发表于 2023-7-4 14:57
jasonz18 发表于 2023-7-4 15:14

一下几点仅供参考哈:

  • 使用PyInstaller的选项:PyInstaller提供了一些选项可以增加代码的保护。例如,你可以使用--onefile选项将所有依赖项打包成单个可执行文件,使用--upx-dir选项将打包后的可执行文件进行压缩。此外,你可以使用--key选项来指定加密密钥,以增加对代码的保护。

  • 使用UPX进行压缩:UPX是一个可执行文件压缩工具,可以减小可执行文件的大小并增加反编译的难度。你可以使用UPX对通过PyInstaller生成的可执行文件进行压缩。使用UPX的-9选项可以实现最大程度的压缩,但请注意,压缩后的可执行文件可能会在某些杀毒软件中被误报为潜在恶意软件。

  • 代码混淆:使用代码混淆技术对你的Python代码进行混淆,使其更难以理解和分析。这包括变量和函数重命名、控制流混淆、字符串加密等。可以使用工具如pyminifier、pyobfuscate等实现代码混淆。

  • 加密关键数据:对于特别敏感的数据,可以使用加密算法对其进行加密,并在运行时解密。这样即使代码被反编译,敏感数据也不容易被轻易获取。

  • 服务器端验证和控制:将核心功能和敏感逻辑放在服务器端进行处理,而不是完全依赖于客户端代码。通过在服务器端进行验证和控制,可以减少客户端代码的暴露和受到攻击的风险。

hrh123 发表于 2023-7-4 15:40
压缩和混淆是个好办法,可以用一些第三方工具.同时,尽量使用Python的动态特性,如eval(),exec()等,而不是静态语言特性,如类和模块.最安全也最复杂的方法就是改解释器,自定义opcode的Python解释器.,改Python虚拟机,改变字节码指令的含义或顺序

总之,保护Python代码免受反编译的关键是采用多种方法结合使用,以提高反编译的难度.同时,保持警惕并定期更新你的保护措施也是非常重要的
 楼主| M-Riley 发表于 2023-7-4 15:45
hrh123 发表于 2023-7-4 15:40
压缩和混淆是个好办法,可以用一些第三方工具.同时,尽量使用Python的动态特性,如eval(),exec()等,而不是静态 ...

大佬,有适合新手用的保护工具吗?最好是那种直接把代码或是程序拖进去进行压缩和混淆啥的
佚名RJ 发表于 2023-7-4 16:24
hrh123 发表于 2023-7-4 16:37
M-Riley 发表于 2023-7-4 15:45
大佬,有适合新手用的保护工具吗?最好是那种直接把代码或是程序拖进去进行压缩和混淆啥的

PyArmor试试.不过我也说了多种方法结合使用,保持警惕并定期更新你的保护措施,希望楼主找到适合自己的手段
myhkhk 发表于 2023-7-4 17:13
https://pan.baidu.com/s/1KLWaxBFbmOWPIXkNcWWVYA?pwd=bgor  

加壳与反编辑是茅与盾的关系!没有绝对!

看看这个!
平凡的恩赐 发表于 2023-7-4 18:05
有几种方法可以试试:
1. 增加反反编译技巧
- 用混淆器混淑代码,改变变量名、函数名,增加虚假指令。
- 使用抗反编译技术,如双表现形式、代码混淆、虚假控制流、虚假函数等。
- 设置伪代码,降低程序内部逻辑的可读性。
2. 加密程序
- 使用自定义加密的方法,在运行时才进行解密。
- 使用反汇编抗炸技术,如运行时动态加解密、虚拟机等。
3. 使用第三方保护软件
有多种商业软件可以有效保护Python程序免被反编译和反汇编。
- 华炎包保
- Etect
- Pyarmor
- Pyinstxtr
它们可以加密你的代码,混淆指令,检测调试器等,提高程序的防破译能力。
4. 防止反编译API调用
- 通过HTTP请求来访问云端服务,而不是直接调用API。
- 使用有着严格授权机制的云API。
5. 部署成服务 更难被破解
如果将程序打包成SaaS服务(web/app),放在云服务器上运行,就更难被反编译,因为代码不会被直接分发给用户。
总的来说,使用上述方法可以很大程度上增加反编译难度,效果取决于投入的精力多少。但没有100%不可能被破解的方法,只能通过提高成本来延迟破解。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-7-23 10:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表