PE文件+PyInstaller壳 反编译为python脚本

1、查壳

DetectltEasy、PeiD查壳

2、脱壳

常见打包工具PyInstaller,脱壳方法

(1)用pyinstxtractor.py脱壳,用”python pyinstxtractor.py 1.exe“命令,生成“.exe文件名_extracted”

(2)用pyinstaller脱壳,之后可用pyi-archive_viewer +exe文件名查看 exe 内部的文件结构

下载:pip install pyinstaller

使用:pyinstaller 1.exe、pyi-archive_viewer 1.exe

3、反编译pyc

定位到pyc文件后,反编译pyc文件

(1)python反编译 - 在线工具 (tool.lu)

(2)decompyle3

下载: pip install decompyle3

使用:decompyle3 1.pyc > 1.py或者decompyle3 -o 1.py 1.pyc

(3)uncompyle3

下载:pip install uncompyle3

使用:uncompyle3 1.pyc > 1.py或者uncompyle3 -o 1.py 1.pyc

注意:

如果反编译遇到错误,可能因为pyinstaller脱壳生成pyc文件时,头部的magic缺失,补上即可

如果遇到错误,可能因为pyc文件生成时,头部的magic number被清理,需要另外补上

python各个版本的magic头

    MAGIC_1_0 = 0x00999902,
    MAGIC_1_1 = 0x00999903, /* Also covers 1.2 */
    MAGIC_1_3 = 0x0A0D2E89,
    MAGIC_1_4 = 0x0A0D1704,
    MAGIC_1_5 = 0x0A0D4E99,
    MAGIC_1_6 = 0x0A0DC4FC,

    MAGIC_2_0 = 0x0A0DC687,
    MAGIC_2_1 = 0x0A0DEB2A,
    MAGIC_2_2 = 0x0A0DED2D,
    MAGIC_2_3 = 0x0A0DF23B,
    MAGIC_2_4 = 0x0A0DF26D,
    MAGIC_2_5 = 0x0A0DF2B3,
    MAGIC_2_6 = 0x0A0DF2D1,
    MAGIC_2_7 = 0x0A0DF303,

    MAGIC_3_0 = 0x0A0D0C3A,
    MAGIC_3_1 = 0x0A0D0C4E,
    MAGIC_3_2 = 0x0A0D0C6C,
    MAGIC_3_3 = 0x0A0D0C9E,
    MAGIC_3_4 = 0x0A0D0CEE,
    MAGIC_3_5 = 0x0A0D0D16,
    MAGIC_3_5_3 = 0x0A0D0D17,
    MAGIC_3_6 = 0x0A0D0D33,
    MAGIC_3_7 = 0x0A0D0D42,
    MAGIC_3_8 = 0x0A0D0D55,
    MAGIC_3_9 = 0x0A0D0D61,

 小端存储,两位两位倒着存,来自https://www.cnblogs.com/Here-is-SG/p/15885799.html

比较眼熟的,winhex查看文件十六进制,图来自d3f4u1t

 举个栗子,3.7.4版本的python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值