py文件打包成exe怎么添加依赖(python的py文件打包成exe)

py文件打包成exe怎么添加依赖(python的py文件打包成exe)目录 今日概要 1 exe 打包 1 1 多文件 D 1 2 单文件 F 1 3 路径问题 1 3 1 sys argv 1 3 2 frozen 1 4 关于模块 1 5 pyqt 1 6 图标 2 离线包 2 1 在线环境 2 2 离线环境 3 其他分享 3 1 dlopen 3 2 strstr exe 打包 离线包 其他分享 pip install pyinstaller 注意事项

大家好,我是讯享网,很高兴认识大家。



目录

今日概要:

1.exe打包

1.1 多文件 -D

1.2 单文件 -F

1.3 路径问题

1.3.1 sys.argv

1.3.2 frozen

1.4 关于模块

1.5 pyqt

1.6 图标

2.离线包

2.1 在线环境

2.2 离线环境

3.其他分享

3.1 dlopen

3.2 strstr


  • exe打包
  • 离线包
  • 其他分享

pip install pyinstaller

注意事项:

  • 支持mac、win(windows建议使用python3.6.8)。
  • 配合虚拟环境打包。 - 项目crm

    • 环境crm
      • python.exe
      • Scripts
        • pip.exe
        • pyinstaller.exe
      • Lib
        • site-package
          • requests
          • flask
          • pyinstaller

    >>>激活虚拟环境(pycharm打开终端默认激活) >>>环境crm/Scripts/pip.exe install pyinstaller >>>cd 项目目录 >>>环境crm/Scripts/pyinstaller ….

1.1 多文件 -D

pyinstaller -D app.py

注意:如果想看程序报错,先打开终端,在输入exe文件的路径即可。

1.2 单文件 -F

pyinstaller -F app.py

pyinstaller -D app.py -n 哔哩 pyinstaller -F app.py -n 哔哩

1.3 路径问题
  • 多文件打包,不会报错。
  • 单文件打包,报错。 为什么会报错?加载&解析到临时目录问题。
1.3.1 sys.argv
1.3.2 frozen
1.4 关于模块

但是,如果遇到那种动态导入模块的代码时,他是无法找到关联的包。

import time import importlib

print(“—-环境使用xxx系统—-”)

from utils import card

card.get_number()

card = importlib.import_module(“utils.card”) v1 = card.get_number() print(v1)

time.sleep(5)

1.5 pyqt

pyinstaller -F v1.py


讯享网

默认打包qt程序时,打开的同时会一直出现终端。

如果不想让他出现,那就是在打包时设置一个参数:

pyinstaller -F v1.py -w

1.6 图标

在打包时,加入 参数可以展示图标(内部需要依赖pillow模块将图片转换为icon)

pip install pillow

pyinstaller -F v1.py -w -i tt.png

2.1 在线环境

当项目开发完成之后,我们会使用将环境中依赖包写入到中。

pip freeze > requirements.txt

后期项目部署时,安装依赖包。

pip install -r requirements.txt

2.2 离线环境

使用将依赖包下载到本地目录。

pip download -d 包文件夹 -r requirements.txt

后期项目部署时,安装依赖包:

pip install wheel

pip install –no-index –find-links=包文件夹 -r requirements.txt

例如: pip install –no-index –find-links=pkg -r requirements.txt

识货app,反调试(监测是否用frida)。

一般情况下反调试实现:在so层,内部创建一个线程不断监测设备是否正在被调试(监测frida、xposed等调试时出现的目录、关键字等)。

如果想要绕过调试,可以做如下尝试:

  • 删除相应so文件。
  • hook指定so文件中的线程,让他不要运行监测。
  • hook底层字符串比较方法,如果出现关键字让他跳过(底层肯定会判断是否包含frida等关键字)。
3.1 dlopen

在安卓系统底层是使用或加载动态链接库(so文件),所以我们可以hook这俩函数,看看他们底层都加在了哪些so文件。

得到加载的so文件》

由于加载了,才导致程序终止,所以可以尝试:

  • 删除
  • hook系统创建线程的方法,如果是次so文件则不创建线程。 function hook_pthread_create() {
  • hook_pthread_create(); // frida -U -f com.hupu.shihuo -l hook_so_thread.js –no-pause // frida -U -f com.hupu.shihuo -l hook_so_thread.js

3.2 strstr

小讯
上一篇 2025-06-02 23:45
下一篇 2025-05-01 21:55

相关推荐

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