pyinstxtractor.py 与 uncompyle6

  • 前两天,上学期帮人用python封了一个算法,打包成exe格式
  • 后来,电脑换硬盘,原盘格了,还没备份习惯,所以源码没了
  • 所以,要把现在exe反编译为python源码。
  • pyinstxtractor.py拆解exe为pyc
  • pyinstxtractor.py网上搜索可下载,放在exe目录,python pyinstxtractor.py xxx.exe
  • 生成拆解目录
--- xxx.exe_extracted
   -- out00-PYZ.pyz_extracted
      - 各种.pyc文件
   -- out00-PYZ.pyz
   -- some
   -- others
   -- xxx(注意这些都是没后缀的)
  • 安装uncompyle反编译需要的.pyc文件为.py
pip install uncompyle
  • 使用
uncompyle6 input.pyc > output.py
  • 反编译出的.py文件格式会有一些问题,当然,python的格式错误,对不齐,那就是逻辑错误了,所以需要修改修改。
  • 现在还有一个问题,.pyc文件数不对,发现就是拆解那一步控制台标明的入口文件,也就是上面拆解目录里面没有后缀的文件。
  • 其实那些文件也是.pyc文件,.pyc是16进制文件,通过对比发现,是缺少文件头。
  • 使用Hex Editor Neo打开一个.pyc文件,第一行是这样的
33 0d 0d 0a 00 00 00 00 00 00 00 00 e3 00 00 00
  • 打开一个无后缀文件,第一行是这样的
e3 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00
  • 所以,在无后缀文件前面补上33 0d 0d 0a 00 00 00 00 00 00 00 00,保存后添加后缀.pyc,那么它就是.pyc文件了,也可以反编译了。
  • 我用的是python36.
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Distutils可以用来在Python环境中构建和安装额外的模块。新的模块可以是纯Python的,也可以...
    MiracleJQ阅读 3,158评论 0 1
  • " 每个人心里都有一团火, 路过的人只看到烟。 但总有那么一个人能看到这团火, 然后走过来,陪我一起度过。" 一个...
    梁几阅读 4,563评论 0 0
  • 今天看了香知蜜读提供的《如何高效阅读》的精选片段,关于测试自己的阅读速度的选段,没有参加香知炼书百天活动之前,看书...
    生花阅读 841评论 0 0
  • 无聊的时候打开了微信的应用包,发现一个好玩的事情,在微信的应用包里面,放本地标签的文件夹里有一个ImageEdit...
    叔叔甲阅读 907评论 0 0