buildby

4个月前发布 86 00

buildby 可以检测 macOS 与 Windows 上桌面应用所使用的技术栈,快速看出一个应用是使用 原生技术(Swift、Objective-C、Win32 等),还是使用 跨平台框架(Electron、Flutter、Tauri、Qt、JVM、CEF、NW.js、React Native、wxWidgets、Unity、.NET...

所在地:
美国
收录时间:
2026-07-03

buildby 是一个用于检测 macOS 和 Windows 桌面应用技术栈的命令行工具。它通过分析应用程序的文件系统结构、框架依赖及元数据,快速判断应用是基于原生技术(如 Swift、Win32)还是跨平台框架(如 Electron、Flutter、Tauri、Qt 等)构建。

buildby

除了技术栈识别,buildby 在单应用检查模式下还能展示签名与公证信息,包括开发者名称、Team ID、签名状态以及是否启用强化运行时(Hardened Runtime),帮助用户评估应用的来源可信度与安全配置。

buildby

核心功能

  • 技术栈识别:支持检测 Electron、Flutter、CEF、Tauri、Qt、wxWidgets、JVM、.NET、NW.js、React Native、Unity 等主流跨平台框架,以及原生应用。
  • 签名与公证验证:在 macOS 上显示 Apple 公证状态和 codesign 信息;在 Windows 上显示 Authenticode 签名状态。
  • 多种扫描模式:
    • 单应用查询:buildby <应用名>,提供详细的技术栈分析及安全元数据。
    • 全量扫描:buildby --all,扫描系统中已安装的所有应用并按技术栈分组,生成“桌面应用技术栈画像”。
    • 过滤扫描:支持按特定技术栈(如 --electron)进行过滤查看。
  • 本地缓存加速:批量扫描时使用本地分析缓存,若应用版本与指纹未变则直接复用结果,显著提升重复扫描速度。
  • 无权限依赖:基于文件系统特征匹配,无需管理员权限,不进行反汇编或网络调用。

安装与使用

buildby 基于 Node.js 开发,要求 Node.js >= 18。

安装方式:

# 通过 npm 全局安装
npm i -g @wavever/buildby

# 或通过源码链接
git clone https://github.com/wavever/buildby.git
cd buildby
npm install
npm link

常用命令:

# 查看单个应用(如 Discord)
buildby discord

# 扫描所有已安装应用
buildby --all

# 强制重新分析(不使用缓存)
buildby --all --no-cache

输出示例:

  Discord
  /Applications/Discord.app

   跨平台   ⚡ Electron

  使用 Web 技术(HTML/CSS/JS)构建的跨平台桌面应用
  https://www.electronjs.org

  检测依据:
    • Electron Framework.framework
    • app.asar

  Bundle ID: com.hnc.Discord
  版本: 0.0.335
  大小: 375.4 MB

  签名与公证
    开发者: Discord, Inc.
    团队 ID: 53Q6R32WPB
    签名: 已签名
    公证: 已公证
    强化运行时: ✓ 是

工作原理

buildby 的检测逻辑完全基于静态文件分析:

  1. 框架目录扫描:读取 Contents/Frameworks/ (macOS) 或应用目录下的 DLL (Windows),匹配已知框架的特征文件(如 Electron Framework.framework、flutter_windows.dll)。
  2. 资源文件匹配:查找典型资源文件,如 app.asar (Electron)、flutter_assets (Flutter)、app.nw (NW.js)。
  3. 运行时检测:识别打包的 JRE/JBR (JVM)、.NET 运行时目录及关联结构。
  4. 元数据提取:从 Info.plist (macOS) 或可执行文件属性中解析 Bundle ID、版本号及显示名称。
  5. 签名验证:调用系统工具(macOS 的 codesign/spctl,Windows 的 PowerShell Get-AuthenticodeSignature)获取签名与公证状态。

适用场景

  • 开发者与技术爱好者:了解常用软件的技术选型,学习不同框架的实现特征。
  • 安全研究人员:快速评估应用的签名状态与公证情况,识别潜在的非官方或篡改版本。
  • IT 管理人员:统计企业内部软件的技术栈分布,辅助制定兼容性或安全策略。

buildby 提供了一个轻量、透明且无需复杂配置的方式,让用户能够透视桌面应用背后的技术构成。

相关导航