文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

将python生成的exe文件反编译成py文件的方法

2023-09-13 16:20

关注

前言

闲来无事,就喜欢瞎折腾,之前用python打包过exe小工具,然后今天就突然想到,既然能打包,那就肯定能反编译成py文件,为了这个想法,就网上查资料,自己操作了一下,过程参考了文章:

https://www.cnblogs.com/smart-zihan/p/14434498.html

如果觉得我写的看不懂,可以去看这个,哈哈哈

逻辑

这个逻辑的话,其实很简单,但是里面的详细原理,就要再研究研究了(本人不才,只知其然,不知其所以然)

首先,.py文件打包生成exe文件的过程就不过多讲了,网上有很多资料,我之前文章也写过(利用pyinstaller打包)

然后说下反编译的过程,总体逻辑就两步:

将.exe反编译成.pyc的二进制文件
2、将.pyc文件反编译成.py文件

需要用到的插件有以下三个,这两个到网上找下资源,自己下载一下:

pyinstxtractor.py

uncompyle6

16进制编辑器(16进制编辑器(HxD Hex Editor) v2.2.1.0 绿色中文版 下载-脚本之家

然后下面说下具体操作步骤。

操作步骤

首先,这两个文件放到同一个文件路径下(exe文件就是此次需要反编译的文件,pyinstxtractor.py文件是需要下载的插件)

然后在cmd命令行或者pycharm中执行以下命令:

python pyinstxtractor.py gxtest2023060101.exe

对应路径下会生成一个文件夹

然后将生成的文件夹中,对应的以下两个文件拷贝出来(其中一个是与exe文件名字相同的,没有后缀的) 

然后用16进制编辑器打开上述两个文件,下图是struct文件,可以看出,struct文件和gxtest2023060101文件中都有E3字段,不同的是,struct文件中,在E3前面多了一行,所以要把这一行的数据拷贝到gxtest2023060101文件中(直接在这个工具中拷贝就行),拷贝完成后,将gxtest2023060101文件另存为gxtest2023060101.pyc文件(加个后缀)

 

以上都做完后,最后执行命令: uncompyle6 -o gxtest2023060101.py gxtest2023060101.pyc

然后在文件夹中查看,就会发现新增一个.py文件

 这个反编译的文件和原始文件,会有些不同,一是注释没有了,二是双引号变成单引号了

 

总结

整体来说不复杂,后面有时间可以再加一层加密,就是反编译过程中加密一层,这样可以避免别人破解自己的代码

来源地址:https://blog.csdn.net/qq_29691919/article/details/131003371

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯