zoukankan      html  css  js  c++  java
  • 反编译pyinstall生成的exe文件

    记录一下简单的过程,也没怎么详细研究,只是对不加密打包的情况,要是加密的话这个方法是不行的。

    一、解压缩exe文件

    脚本pyinstxtractor.py可以实现解压缩,下载地址:https://sourceforge.net/projects/pyinstallerextractor/

    直接执行即可

    python3 pyinstxtractor.py c2x.exe
    

    二、增加magic number

    使用工具查看解压出来的c2x文件和struct文件头部的区别,不同版本可能有所不同。

    比如struct头部比c2x文件多了16个字节(python3.7编译)。我们只需要将c2x文件的头部与struct修改为一致就行。

    这16个字节可能代表了python的版本和编译时间等内容,反编译出来的c2x文件中是没有。

    工具可以使用vim -b struct, 进入后使用:%!xxd可以16进制方式查看文件。

    可以使用下面的脚本,将16字节加入到c2x文件中

    import os,sys
    fpath=".c2x"
    with open(fpath,'rb') as f:
    #f.seek(12)
    #f.tell() with open(".struct",'rb') as struct: magic=struct.read(16) with open(fpath+".pyc",'wb') as f2: f2.write(magic+f.read())

     三、pyc文件到py文件

    可以使用在线工具进行 http://tools.bugscaner.com/decompyle/,简单明了。

    参考链接:

    https://zhuanlan.zhihu.com/p/109266820

    https://blog.csdn.net/qq_34146694/article/details/113466082

    http://tools.bugscaner.com/decompyle/

  • 相关阅读:
    C++ 17
    C++ 11
    mysql统计某一个数据库中有几张表
    poj2636---Electrical Outlets(插线板)
    poj2608---几个字母映射到同一个数字
    poj2583---Series Determination
    poj2578---三个数中找出第一个大于168的
    poj2521---lose money
    poj2538---字符匹配(映射)
    poj2509---抽k根烟就换一支,求能抽烟的总数
  • 原文地址:https://www.cnblogs.com/felo/p/14707575.html
Copyright © 2011-2022 走看看