Skip to content
KitploitKITPLOIT
工具漏洞利用博客
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
python-exe-unpacker — 用于解包和解编译由Python代码编译而成的EXE文件的辅助脚本。 | Kitploit
工具/GitHubGitHub/withsecurelabs/python-exe-unpacker
动态分析 (沙盒)逆向工程取证分析恶意软件分析二进制分析
GitHubwithsecurelabs/python-exe-unpacker

python-exe-unpacker

用于解包和解编译由Python代码编译而成的EXE文件的辅助脚本。

查看仓库
1.0k350442年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

作者:In Ming Loh ([email protected] - @tantaryu)
公司:Countercept (@countercept)
网站:https://www.countercept.com

简介

一个帮助研究人员解包并反编译用 Python 编写的可执行文件的脚本。不过,目前该脚本仅支持使用 py2exe 和 pyinstaller 创建的可执行文件。

该脚本整合了社区中可用的多个工具。希望这能帮助大家在日常工作中提高效率。脚本中提供了几条 YARA 规则,用于判断可执行文件是否由 Python 编写(该脚本同时也会确认可执行文件是由 py2exe 还是 pyinstaller 创建的)。

环境要求

  • Python 2.7 或更高版本。
  • 安装所有必需的依赖包:
    pip2 install --user -r requirements.txt
    或者,如果你希望以 root 权限安装依赖包
    sudo pip2 install -r requirements.txt

快速开始

  • python python_exe_unpack.py -i [malware.exe]

    • pyinstaller
      • 将创建一个文件夹,其名称由原始文件名加上"_extracted"后缀组成。例如:"malware.exe_extracted"。
      • 包含主要逻辑的主 Python 文件通常是那个没有扩展名的文件(位于带有"_extracted"后缀的文件夹中)。在下面的示例中,"hello" 就是包含主要 Python 逻辑的文件:
        -rw-rw-r-- 1 testuser testuser 70K Nov 14 13:08 bz2.pyd
        -rw-rw-r-- 1 testuser testuser 993K Nov 14 13:08 _hashlib.pyd
        -rw-rw-r-- 1 testuser testuser 111 Nov 14 13:08 hello
        -rw-rw-r-- 1 testuser testuser 1009 Nov 14 13:08 hello.exe.manifest
        -rw-rw-r-- 1 testuser testuser 1.1K Nov 14 13:08 Microsoft.VC90.CRT.manifest
        -rw-rw-r-- 1 testuser testuser 220K Nov 14 13:08 msvcm90.dll
        -rw-rw-r-- 1 testuser testuser 557K Nov 14 13:08 msvcp90.dll
        -rw-rw-r-- 1 testuser testuser 638K Nov 14 13:08 msvcr90.dll
        -rw-rw-r-- 1 testuser testuser 628K Nov 14 13:08 out00-PYZ.pyz
        drwxrwxr-x 2 testuser testuser 12K Nov 14 13:08 out00-PYZ.pyz_extracted
        -rw-rw-r-- 1 testuser testuser 5.2K Nov 14 13:08 pyiboot01_bootstrap
        -rw-rw-r-- 1 testuser testuser 2.5K Nov 14 13:08 pyimod01_os_path
        -rw-rw-r-- 1 testuser testuser 12K Nov 14 13:08 pyimod02_archive
        -rw-rw-r-- 1 testuser testuser 22K Nov 14 13:08 pyimod03_importers
        -rw-rw-r-- 1 testuser testuser 0 Nov 14 13:08 pyi-windows-manifest-filename hello.exe.manifest
        -rw-rw-r-- 1 testuser testuser 2.6M Nov 14 13:08 python27.dll
        -rw-rw-r-- 1 testuser testuser 10K Nov 14 13:08 select.pyd
        -rw-rw-r-- 1 testuser testuser 234 Nov 14 13:08 struct
        -rw-rw-r-- 1 testuser testuser 671K Nov 14 13:08 unicodedata.pyd
      • pyinstaller 有一个选项可以加密 Python 字节码。该脚本会尝试解密并反编译解密后的代码。
    • py2exe
      • 解包和反编译的结果将位于 "unpacked" 文件夹中,或你指定的位置。
      • 如果出现类似 "Error in unpacking the exe. Probably due to version incompability (exe created using python 2 and run this script with python 3)" 的错误,请尝试将你的 Python 版本切换为与当前使用的不同的版本。例如:"alias python=python2" 或 "alias python=python3"
  • python python_exe_unpack.py -p [pyc 文件]

    • 在上述示例中,有时包含主要逻辑的 Python 文件不是 uncompyle6 所接受的格式(缺少 Python 魔数)。上述命令会预先添加魔数并进行反编译(如果魔数已经存在,则不会添加,直接进行反编译)。

致谢

  • 感谢 Extreme Coders 提供的 pyinstxtractor.py 脚本,用于解包 pyinstaller 可执行文件。
  • 感谢 Extreme Coders 提供的关于如何解密加密 Python 字节码的说明:https://0xec.blogspot.sg/2017/02/extracting-encrypted-pyinstaller.html
  • unpy2exe
  • uncompyle6
下载工具