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

    文章

    7314

    浏览量

    93976
  • 编译
    +关注

    关注

    0

    文章

    688

    浏览量

    34944
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89580

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    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

    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 885次阅读
    技术分享 | 迅为RK3568开发板<b class='flag-5'>如何将</b> Linux 板卡虚拟<b class='flag-5'>成</b>U盘

    如何将Keras H5模型转换为中间表示 (IR) 格式?

    (model,\'model\') 第 2 步: 保存的模式格式转换为中间表示形式 目录更改 为 /deployment_tools/model_optimizer 运行 mo_tf.py
    发表于 03-07 06:11

    使用Yolo-v3-TF运行OpenVINO™对象检测Python演示时的结果不准确的原因?

    通过模型下载器下载了 yolo-v3-tf: ./downloader.py --name yolo-v3-tf 通过模型 优化器转换模型: python3 ./model_optimizer
    发表于 03-06 06:31

    使用converter.py脚本转换EfficientDet_D0模型报错怎么解决?

    使用 converter.py 脚本转换 EfficientDet_D0 模型。python3 /opt/intel/openvino_2021.3.394/deployment_tools
    发表于 03-05 08:21

    如何将python文件导入到ROS系统中

    本文通过使用myCobot机械臂进行QR码视觉追踪的实践案例分析,介绍如何将 python 文件导入到 ROS 系统中。
    的头像 发表于 02-11 11:08 1194次阅读
    <b class='flag-5'>如何将</b><b class='flag-5'>python</b>文件导入到ROS系统中

    k230如何将yolo分类视频流推理的视频结果保存到本地?

    请问k230如何将yolo分类视频流推理的视频结果保存到本地?
    发表于 02-08 08:09

    请问ccs4.2如何将采集到的数据导出dat文件?

    ccs4.2如何将采集到的数据导出dat文件
    发表于 01-14 08:08

    当matlabappdesigner打包exe文件,如何调用外部的函数.m程序?

    当matlabappdesigner打包exe文件,如何调用外部的函数.m程序?我尝试了很多办法,包括 addpath,filread,eval等,都不可行,谁能帮帮我!
    发表于 12-29 18:50

    hdmi是什么电平?hdmi信号里有几对差分还有几个单端的,差分的信号是不是cml电平?

    出来的cml信号在还原成hdmi信号,接到显示器上。现在有几个问题: 1,hdmi是什么电平?第一次接触,hdmi信号里有几对差分还有几个单端的,差分的信号是不是cml电平? 2,如果差分的是cml电平
    发表于 12-24 06:34

    请问如何将脑电数据经过数据转换器输出?

    PC机,向USB口输出,并经过DA转换器还原成模拟信号,并让模拟信号与外接线圈转接,使之产生脑电场,逆向研究原始脑电信号对人脑的影响,但是问题是:这个由电脑输出的数字信号如何才能转换成模拟信号并
    发表于 12-17 07:02