0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将python打包后的exe还原成py

马哥Linux运维 来源:苦海飘摇 作者:苦海飘摇 2021-10-26 09:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

用到的工具

pyinstxtractor.py 拆包(解压)工具,将exe文件解压成一个文件夹

uncompyle6 pyc反编译工具

010EditorEditor 或者其他二进制查看与修改工具,我这里用的010Editor

安装方法

pip install uncompyle6

第一步:解包

python3 pyinstxtractor.py ***.exe # 这里替换成你要反编译的exe文件# 会生成一个以 exe文件名+_extracted 的文件夹,这个就是解包后的数据

d17f7a28-357f-11ec-82a8-dac502259ad0.png

第二步:添加头信息

PyInstaller打包后,pyc文件的前8个字节会被抹掉,所以最后要自己添加回去。前四个字节为python编译的版本,后四个字节为时间戳。想要获得编译版本可以查看打包文件里struct的信息

1)。 进入文件夹,找到以exe文件名命名的文件(没有后缀),这个就是目的文件

2)。 用 010Editor 打开 struct,前八位就是我们想要的信息,将其复制

3)。 用 010Editor 打开目的文件我这里是 abc_text,将上一步复制的信息插入到开头

修改前:

d3339cb4-357f-11ec-82a8-dac502259ad0.png

修改后:

d407a96e-357f-11ec-82a8-dac502259ad0.png

4)。 将目的文件我这里是 abc_text,添加pyc的后缀

第三步:逆向 目的文件.pyc

1)。 其实这里已经可以使用了。了解python的都知道pyc是py文件编译后的二进制文件,因此如果想要分析源码还得继续逆向成.py文件

2)。 uncompyle6逆向pyc文件

uncompyle6 abc_text.pyc 》 abc_text.py

d70682a2-357f-11ec-82a8-dac502259ad0.png

原文来自:https://www.jianshu.com/p/5871c3dd633b

(版权归原作者所有,侵删)

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7350

    浏览量

    95065
  • 编译
    +关注

    关注

    0

    文章

    696

    浏览量

    35303
  • python
    +关注

    关注

    58

    文章

    4889

    浏览量

    90344

原文标题:将python打包后的exe还原成py

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    的存档可以从我们的网站上下载。 配置Python环境 确保计算机上安装了Python*。请注意,应该勾选“python.exe添加到路径”的选项进行安装。本用例中的说明假定计算机上
    发表于 03-31 09:39

    如何在 VisionFive 上使用 Python 包?

    -devel python3-develsudo python setup.py install或者,您可以执行以下命令: sudo python3 setup.
    发表于 03-30 08:28

    安装 Python VisionFive_GPIO失败是哪里出了问题?

    wget bs4 python3 安装VisionFive_gpio.py python3:无法打开文件 \'home/user/Install VisionFive_gpio.py
    发表于 02-11 06:13

    如何使用Python读取不间断数据,并将其传输到LabVIEW进行处理?

    使用Python读取Count,如何将读取到的数据传输至Labview;传输过程中Python要保持读取的动作,不能停止。
    发表于 01-23 11:09

    如何将Python GUI程序打包EXE可执行文件

    如果我们给同事展示一个命令行,他们可能会有点“吓人”的感觉,担心忘记或输错参数。而一个 UI 界面则是一目了然,“选择固件→点击下载”这样的流程几乎零学习成本。
    的头像 发表于 12-16 09:08 3951次阅读
    <b class='flag-5'>如何将</b><b class='flag-5'>Python</b> GUI程序<b class='flag-5'>打包</b>成<b class='flag-5'>EXE</b>可执行文件

    Termux中调试圣诞树Python代码

    Python文件(比如命名为christmas_tree.py): nano christmas_tree.py 粘贴下面的圣诞树立例代码(健康版): # 圣诞快乐 - 温馨圣诞树打印 print
    发表于 12-09 09:02

    LABVIEW 2023 Q1调用python一直报错1671

    LABVIEW 2023Q1调用python一直报错1671报错信息:PythonNode_AddTwoDoubles.vi中的打开Python会话Python returned
    发表于 11-12 09:51

    Env报错,显示缺失 init_env.py文件是怎么回事?

    照着教程解压env,右键ConEmu Here中报错 python: can't open file 'E:envtoolsConEmuConEmu....scriptsinit_env.py'
    发表于 09-11 07:32

    使用env工具创建工程始终提示UV4.exe不可用是为什么?

    是最新的2.0.0. 修改好目录下rtconfig.py中keil路径,还是提示UV4.exe不可用。 担心是斜杠的问题,因此正反斜杠都试了下,现象一致 //rtconfig.py
    发表于 09-10 08:07

    聊聊 Webpack 那些安全事儿:打包风险与防护小技巧

    场景,拆解 Webpack 在开发与运行中的安全隐患,以及攻防双方的应对策略。     一 Webpack 打包的潜在安全风险   1. 敏感信息泄露:被 "打包" 的秘密 Webpack 在打包时会递归处理所有依赖模块,若开发
    的头像 发表于 09-02 10:22 931次阅读
    聊聊 Webpack 那些安全事儿:<b class='flag-5'>打包</b>风险与防护小技巧

    如何将GCC项目导入NuEclipse?

    如何将GCC项目导入NuEclipse?
    发表于 09-01 07:04

    termux调试python猜数字游戏

    ;: guess_number() print(\"\\n? 输入 \'python guess_number.py\' 重新开始游戏\") ``` --- ️ 三、操作指南 1.
    发表于 08-29 17:15

    关于LABVIEW 生成EXE 动态调用外部VI的问题

    EXE调用既不可以, 因为我调用的VI是不确定的所以不能打包进项目里面 是单独的。 有没有大佬知道方法啊重金感谢! 我按照网上办法尝试去修改配置文件 也不行 *附件:DLL生成和导入.zip
    发表于 07-30 14:22

    linux虚拟环境中调用Linux 版matlab编译的python库时出错

    /wjn/CAO_python python setup.py install --force 完成上述安装步骤,在虚拟环境中执行(wjn_cao) user@ubuntu:/dat
    发表于 07-18 10:40

    技术分享 | 迅为RK3568开发板如何将 Linux 板卡虚拟U盘

    技术分享 | 迅为RK3568开发板如何将 Linux 板卡虚拟U盘
    的头像 发表于 06-04 10:57 1375次阅读
    技术分享 | 迅为RK3568开发板<b class='flag-5'>如何将</b> Linux 板卡虚拟<b class='flag-5'>成</b>U盘