trym-s/pyinstaller-YARA

GitHub: trym-s/pyinstaller-YARA

通过修改并重新编译 PyInstaller bootloader 的 C 源码,减少合法 Windows 可执行文件因通用 PyInstaller 特征而被杀毒软件误报的问题。

Stars: 0 | Forks: 0

# 减少 PyInstaller Bootloader 误报 本仓库记录了一项关于减少由 PyInstaller 生成的合法 Windows 可执行文件误报的实验。 这项工作的重点是重新构建和修改 PyInstaller bootloader 的 C 源代码, 了解哪些静态字符串和打包产物可能会触发 YARA 风格的规则,并为被 VirusTotal 等扫描工具错误标记的 内部工具记录一个可复现的构建流程。 ## 安全背景 本项目不用于恶意软件逃避或绕过安全 控制。它专注于减少由 PyInstaller 打包的合法内部 应用程序的误报,在这些应用中,通用的 PyInstaller 特征 即使对于完全无害的应用程序,也会产生嘈杂的检测结果。 ## 更改内容 - 从源代码重新构建 PyInstaller bootloader,而不是仅依赖预构建的 bootloader 二进制文件。 - 修改了导致通用 PyInstaller/YARA 检测的 bootloader 级别 C 源代码产物。 - 记录了一个可重复的构建过程,用于从重新构建的 bootloader 生成应用程序可执行文件。 - 记录了有关 Windows 分发的 ``_internal`` 运行时文件和 DLL 放置位置的打包限制。 ## 重新构建 Bootloader 导航到 PyInstaller bootloader 目录: .. code-block:: bash cd path/to/pyinstaller/bootloader 清理、配置并重新构建 bootloader: .. code-block:: bash python waf distclean python waf configure python waf all ## 构建可执行文件 Bootloader 重新构建完成后,返回到 PyInstaller 根目录: .. code-block:: bash cd path/to/pyinstaller 从其 spec 文件构建目标应用程序: .. code-block:: bash python -m PyInstaller path/to/your/app.spec 生成的可执行文件将输出到 ``dist/`` 目录下。 ## 运行时 DLL 布局 如果可执行文件在运行时由于缺少 DLL 文件而失败,请将生成的 ``_internal`` 目录中的运行时文件 复制到可执行文件旁边的主应用程序目录中。 这使得打包后的应用程序布局与修改后的 bootloader 解析运行时依赖的方式保持兼容。 ## 注意事项 本仓库主要是一个打包和二进制构建实验。它 有助于了解 PyInstaller 内部原理、Windows 可执行文件打包、 bootloader 编译,以及真正的恶意行为与可能导致误报的通用静态特征之间的区别。
标签:PyInstaller, SOC Prime, 开发工具, 源码编译, 漏洞挖掘, 误报优化, 逆向工具