吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5449|回复: 61
收起左侧

[原创] Pyinstaller Repack 指南

    [复制链接]
hitachimako 发表于 2025-4-19 03:27
本帖最后由 hitachimako 于 2025-4-19 03:29 编辑

Pyinstaller Repack 指南

大一牲,想要Patch一个抢学校图书馆座位的软件,却困于Pyinstaller程序的重打包,以此为契机研究了一下Repack的完整流程,避免接触难懂难修改的字节码,并使用了一个几乎无人知晓的工具pyinstaller-repacker(截至这篇文章完稿,仅有4个star)

0. 目标

本指南将用这个简单的例子教你如何:

  • 导出程序中所有的pyc文件
  • 反编译并阅读程序源码
  • 直接对源码进行修改,并Repack一个修改版

1. 准备工具

2. 解包源程序

  1. 查看源程序打包使用的Python版本:
    图片1.png
    如图得知源程序打包使用的Python版本为3.8,所以我们要安装一个3.8版本的Python环境(此处不作管理多Python版本的教程,请自行管理环境),并在对应的Python版本中安装所需的依赖: pip install lxml lief

  2. 使用对应版本的Python环境运行pyinstaller-repacker脚本,解包源程序: python .\pyinst-repacker.py extract [源程序名]
    图片2.png
    运行至[+] Done!时,即为完成解包

3. 反编译源码

  1. 进入目录[源程序名]-repacker/FILES,在此处即可找到程序的入口点pyc,将其拖入PyLingual反编译器进行反编译:
    图片3.png
    如图,发现入口点启动了igotolib_editable包含的App窗口,接着分析该文件
  2. 进入目录[源程序名]-repacker/FILES/PYZ-00.pyz,找到其中的igotolib_editable.pyc,拖入反编译器:
    图片4.png
    找到购买检测逻辑

4. 修改与重新打包

  1. 点击反编译器右上角的蓝色下载按钮,即可将源码下载至本地。
  2. 完全删除status检测逻辑,并加上一些Cracked信息:
    图片5.png ]
  3. 使用对应版本的Python环境将修改后的源码编译为pyc文件:python -m py_compile [源码]
    图片6.png
    如图,将会生成一个__pycache__文件夹,内含的文件即为修改后的pyc文件
  4. 将修改后的pyc文件重命名为被替换的pyc文件名称,替换原pyc文件后,重新打包为exepython .\pyinst-repacker.py build .\[源程序名]-repacker\
    图片7.png
    等待一段时间后运行至[+] Done!时,即为完成打包,在目录[源程序名]-repacker\中即可找到Repack后的程序。

5. 大功告成

测试程序,运行正常:
图片8.png

6. 说明

  • 使用到的两个工具pyinstxtractorpyinstaller-repacker已上传至附件
  • 即使使用的Python版本不对应,pyinstaller-repacker也能够从pyz中解压出文件,但是会导致无法反编译,所以请务必使用与源程序相同的Python版本!!
  • 经测试,PyLingual能够正确反编译3.13及以下所有版本的pyc

tools.zip

9.93 KB, 下载次数: 139, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 32威望 +2 吾爱币 +131 热心值 +30 收起 理由
WilsonZtw + 1 + 1 我很赞同!
bohong65 + 1 谢谢@Thanks!
Quanfanghe299 + 1 我很赞同!
QAQ~QL + 1 + 1 我很赞同!
Wyiyun777 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
asdf1233124 + 1 + 1 谢谢@Thanks!
Rainploc + 1 + 1 谢谢@Thanks!
X1a0 + 1 + 1 谢谢@Thanks!
Quincy379 + 1 + 1 谢谢@Thanks!
失神我醉了 + 1 + 1 我很赞同!
zhaoyf18 + 1 + 1 热心回复!
52PJmumu + 1 + 1 我很赞同!
妖孽成佛 + 1 谢谢@Thanks!
ioyr5995 + 1 + 1 我很赞同!
billyxm + 1 我很赞同!
cmx0527 + 1 + 1 谢谢@Thanks!
resu + 1 + 1 用心讨论,共获提升!
anning666 + 1 + 1 我很赞同!
IcePlume + 1 + 1 我很赞同!
Courser + 1 + 1 我很赞同!
shrayy + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Hmily + 5 + 1 用心讨论,共获提升!
zzage + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
无知灰灰 + 1 + 1 用心讨论,共获提升!
15126819695 + 1 + 1 跟着走了一把 真心有用
飘缈孤鸿影 + 1 + 1 用心讨论,共获提升!
小朋友呢 + 2 + 1 我很赞同!
Issacclark1 + 1 谢谢@Thanks!
hszt + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
weidechan + 1 用心讨论,共获提升!
fcwys + 1 + 1 我很赞同!
gunxsword + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

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

Jx29 发表于 2025-4-19 10:36
解包可以用pyinstxtractor-ng,而且还有web版本
Hmily 发表于 2025-4-22 12:01
刚看文章之前我还在想既然用了pyinstxtractor为啥不用pyinstxtractor-ng解包然后直接用Decompyle++反编译,直到看完文章试了下PyLingual ,居然之前遇到Decompyle++无法反编译的都支持了,666!

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
研究技术 + 1 + 1 感谢分享,又学会新技能。

查看全部评分

xiatao 发表于 2025-4-19 07:19
沙发,学习了,不过我一般是正向使用pyinstaller,怕破解的话可以用Themida加壳
 楼主| hitachimako 发表于 2025-4-19 11:54
Jx29 发表于 2025-4-19 10:36
解包可以用pyinstxtractor-ng,而且还有web版本

虽然ng跨版本解包比较方便,但是好像不支持repack
waimn 发表于 2025-4-19 12:54
跨版本!!我的3.13版本无法反编译
fanqie8 发表于 2025-4-20 06:33
这是好东西,不错,以后有需要解包的回来找
燃香小狼 发表于 2025-4-20 07:51
大一都这么厉害了,赞一个
gxlly 发表于 2025-4-20 09:31
Python的加密pye文件有解密的工具吗?
 楼主| hitachimako 发表于 2025-4-20 12:02
gxlly 发表于 2025-4-20 09:31
Python的加密pye文件有解密的工具吗?

这个是用AES128 ECB模式加密的,要逆向_pyconcrete.pyd拿到密钥才行
chadzhao 发表于 2025-4-21 00:04
这么厉害,赞一个!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-7-13 03:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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