当前位置:网站首页 > 编程语言 > 正文

如何反编译exe(如何反编译exe文件)



昨天手贱删除一个.py源文件(该文件已经通过pyinstaller生成exe),由于通过恢复数据的方法没有找回,因此只能通过现有的exe反编译到源代码。网络上的教程一方面讲的不详细,另一方面存在误导(有的是python2.x)。下面是我写的基于python3的反编译教程,该方法实现的是:

a.py通过installer得到a.exe,现在的目的是通过a.exe还原到a.py

Python版本:python3.6.1

系统版本:win10 1809版本

====================

这部分是准备工作:


  1. 下载pyinstxtractor.py

    地址:https://sourceforge.net/projects/pyinstallerextractor/

  2. 下载HxD(十六进制编辑器)

    地址:https://3.xp510.com/xp2011/HxD.xp510.com.rar

  3. pip安装uncompyle6

    方法是:win+r,输入cmd,输入pip install uncompyle

=====================

下面正式开始反编译:


  1. 先解压编译好的exe:把pyinstxtractor.py和py_ext.exe文件(需要反编译的文件)放在同一个目录下(比如目录C:\Users\Administrator\Desktop\A)win+r,输入cmd,进入dos

    输入:cd C:\Users\Administrator\Desktop\A

    再输入:python pyinstxtractor.py py_ext.exe

    运行后生成py_ext.exe_extracted文件夹,进去后是各种文件,瞄准一些无后缀文件(这个例子中的py_ext),其实是少了pyc头的pyc文件。(如图)

  2. 再补充pyc的头,方法是:第一步先把上面图中说的不带后缀的py_ext加上后缀.pyc,即py_ext.pyc,后面有用。第二步:进入文件夹:

    C:\Users\Administrator\Desktop\A\py_ext.exe_extracted\PYZ-00.pyz_extracted, 随便找一个以pyc为后缀的文件,比如此图中的ast.pyc(根据个人情况解压后的pyc文件未必相同,任意选择一个即可)

    可以清晰注意到:ast.pyc文件的头部比py_ext.pyc头部多了33 0D 0D 0A 00 00 00 00 00 00 00 00,这些数据,下面就要把标准pyc文件(这里就指的是ast.pyc)头部数据多出来的这部分:330D 0D 0A 00 00 00 00 00 00 00 00复制到py_ext.pyc头部去,方法是:在ast.pyc文件hxd界面右键复制33 0D 0D 0A 00 00 00 00 00 00 00 00,然后回到py_ext.pyc文件hxd界面,在头部即E3前面,右键插入即可,提示会改变文件大小选择确认,最后点击上面的保存即可。

  3. 下面使用开始反编译,方法是:

    win+r,输入cmd,输入:

    cd C:\Users\Administrator\Desktop\A\py_ext.exe_extracted

    再输入:

    uncompyle6 py_ext.pyc >log.txt

    程序运行结束无提示,但是文件夹会生成log.txt(此即源代码)

    C:\Users\Administrator\Desktop\A\py_ext.exe_extracted


  4. 大功告成!

由于我没有了源文件的代码,因此没法上一张对比图了。亲测成功,不成功请留言。

到此这篇如何反编译exe(如何反编译exe文件)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 增删改查是什么意思(增删改查分别用什么请求方法)2025-11-10 10:00:11
  • C7000故障代码e115怎么检查(c0710故障码怎么维修)2025-11-10 10:00:11
  • 十六进制或者编码器解密(16进制编码器解密)2025-11-10 10:00:11
  • gjk什么意思(gikj是什么意思)2025-11-10 10:00:11
  • steam如何扫码登录(steam如何扫码登录账号)2025-11-10 10:00:11
  • Ubuntu镜像源(ubuntu镜像源怎么下载)2025-11-10 10:00:11
  • yml文件配置list(yml文件配置数组)2025-11-10 10:00:11
  • 哔哩哔哩二维码登录(哔哩哔哩二维码登陆)2025-11-10 10:00:11
  • 程序员代码指南(程序员代码指南pdf)2025-11-10 10:00:11
  • gk是什么意思?(gk是什么意思网络缩写)2025-11-10 10:00:11
  • 全屏图片