首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python程序的打包、加密、破解

python程序的打包、加密、破解

作者头像
用户6367961
发布2021-10-18 18:05:32
发布2021-10-18 18:05:32
7.4K0
举报
文章被收录于专栏:自学测试之道自学测试之道

打包exe

打包python用pyinstaller这个库,命令为pyinstall -F --icon-xx.ico xxx.py

会直接生成一个exe可执行文件,免去给其他计算机用装环境的烦恼。

反编译exe

如果拿到一个pyinstaller编译的exe程序 如何拿到源码

需要用到pyinstxtractor.py,命令为python pyinstxtractor.py xx.exe,这时候会生成一部分文件,找到extracted结尾的文件夹 里面会又一些.pyc的文件,打开 https://tool.lu/pyc/ 网址,直接拖拽,得到源码

加密打包

如果我们不想让别人通过上面的方法看到我们的源码,我们可以在pyinstaller内加入--key=xxxx参数,这样别人在用的时候就不能通过pyinstxtractor.py 来拿到.pyc文件了。

使用pyinstaller的—key选项

操作如下:

  • 安装Visual Studio 2017 Community, 需要用到它的c语言编译功能;
  • 安装PyCrypto模块: pip install PyCrypt i https://pypi.douban.com/simple, 需要调用该模块;
  • 运行pyinstaller --key 0123456789 –F [other options]
  • 对生成的exe破解时, 会报告Fail to decompress xx, probably encrypted. 破解输出的目录中生成的是xx.pyc.encrypted文件, 不再是xx.pyc.
  • 注意: 只能加密py文件, 如果加密的模块是pyd文件, 则pyd文件会直接打包, 不会被加密.
  • 听说密钥也一并打包到输出文件中了, 所以好像也不安全. 感觉还是pyd靠谱些, 至少差不多是C编译后的文件.

将py文件转为pyd格式

  • 安装easycython模块 pip install easycython
  • 使用easycython命令将py转pyd: easycython xx.py, 会在同一目录生成xx.pyd(如果是64位系统生成的文件名为xx.cp36-win_amd64.pyd);
  • 将xx.cp36-win_amd64.pyd重命名为xx.pyd;
  • 使用pyinstaller打包(由于xx.py和xx.pyd在同一目录, pyinstaller会优先打包pyd), 打包时添加—hidden-import xx选项.
  • 生成的打包文件中会包含xx.pyd;
  • 注意: 如果打包时使用了—key选项, 但打包的模块是pyd格式的, 则pyd文件不会被加密, 只是打包.
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自学测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用pyinstaller的—key选项
  • 将py文件转为pyd格式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档