自动化构建 Impacket examples 工具的 Windows exe。
工作流文件:.github/workflows/build-impacket-exe.yml
能力如下:
- 从
https://github.com/fortra/impacket拉取源码(master) - 使用
script/impacket-examples.txt维护待打包脚本清单 - 构建逻辑集中在
script/build-impacket-examples.ps1 - 同时使用两种打包技术:
pyinstallernuitka
- 同时使用两个 Python 版本:
3.93.12
即总共会跑 4 组矩阵任务(2 x 2)。
输出文件名遵循:
impacket_{py_name}_{python_version}_{package_tech}.exe
说明:
{py_name}来自脚本文件名(去除.py),并将非字母数字下划线字符替换为_{python_version}例如3.9、3.12{package_tech}为pyinstaller或nuitka
- 手动触发:
workflow_dispatch - 代码推送触发:推送到
main或master
每个矩阵任务都会上传对应 EXE 到 Actions Artifacts,命名格式:
impacket-exes-py3.9-pyinstallerimpacket-exes-py3.9-nuitkaimpacket-exes-py3.12-pyinstallerimpacket-exes-py3.12-nuitka
此外,工作流结束后会自动将所有 EXE 同步到固定 Release:
- Tag:
impacket-latest - Release 名称:
Impacket Latest Build - 同名资源会被覆盖(始终保持最新一批构建结果)
- 推荐只在
script/impacket-examples.txt中维护你关心的工具(每行一个脚本)。 nuitka构建默认支持多线程编译,线程数由工作流环境变量NUITKA_JOBS控制(默认4,可按 Runner 核数调整)。- 当
script/impacket-examples.txt为空(仅注释/空行)时,会回退为全量打包impacket/examples/*.py。 - 如果某些工具脚本在特定版本/打包器下不兼容,工作流会在日志里列出失败脚本名。