403errors/GardenWiFi
GitHub: 403errors/GardenWiFi
一款 macOS 原生的 Wi-Fi 扫描与抓包工具,能够捕获无线网络流量并自动提取 PMKID/EAPOL 握手哈希为 hashcat 兼容格式。
Stars: 0 | Forks: 0
# GardenWiFi
GardenWiFi 是一款使用 SwiftUI 编写的 macOS Wi-Fi 扫描和抓包工具。它可以列出附近的网络,显示信号和安全详细信息,能够从选定的接入点捕获简短的数据包,并将 PMKID / EAPOL 握手哈希值提取为 `.hc22000` 格式,以便与兼容 hashcat 的工具配合使用。
## 功能
- 使用 `CoreWLAN` 扫描附近的 Wi-Fi 网络
- 查询 SSID、BSSID、RSSI、噪声、信道、频段、安全性和供应商
- 使用 `tcpdump` 将数据包捕获为 `pcap` 格式
- 自动提取 PMKID 和 EAPOL 握手
- 以 `.hc22000` 格式导出哈希值
- 带有刷新和捕获操作的 SwiftUI 表格界面
## 要求
- macOS 12 或更高版本
- 在 Mac 上启用 Wi-Fi
- 为 GardenWiFi 启用位置权限,以便显示 SSID
- 需要管理员批准才能进行数据包捕获,因为 `tcpdump` 需要以提升的权限启动
## 工作原理
GardenWiFi 会扫描附近的网络,让您选择一个目标网络,从 Wi-Fi 接口记录一段简短的捕获,然后解析生成的数据包捕获以获取握手数据。如果找到了 PMKID 或 EAPOL 握手,应用程序会在 `.pcap` 捕获文件旁边写入一个匹配的 `.hc22000` 文件。
捕获的文件保存在:
`~/Desktop/GardenWiFi-Captures/`
## 构建
本项目是一个 Swift Package 可执行目标。
```
swift build -c release
```
App target 在 `Package.swift` 中配置,并包含 `Sources/manuf.txt` 作为捆绑资源。
## 运行
在 Xcode 中打开该包,或者在构建后从命令行启动它。
```
swift run
```
如果您希望直接运行编译好的 release binary:
```
.build/release/GardenWiFi
```
## 创建 macOS App Bundle
如果需要可分发的 `.app`,请构建 release 产品并将其复制到 app bundle 结构中。
```
swift build -c release
```
然后将 release binary 打包成 `.app` bundle,或者使用您偏好的 macOS 打包流程。该仓库在工作区中已经包含了一个 `GardenWiFi.app` 目录,因此如有需要,您可以将其作为签名 release build 的基础。
## 创建 DMG
GitHub Releases 接受 `.dmg` 文件作为发布资产。在 macOS 上一种简单的手动操作方式是:
1. 构建或准备 `.app` bundle。
2. 将该 app 复制到一个临时文件夹中。
3. 使用 `hdiutil` 从该文件夹创建 `.dmg`。
示例:
```
mkdir -p dist
cp -R GardenWiFi.app dist/
hdiutil create -volname GardenWiFi -srcfolder dist -ov -format UDZO GardenWiFi.dmg
```
如果您对 app 进行了签名和公证,请在构建 DMG 之前完成,以便最终下载文件可以直接分发。
## 在 GitHub Releases 上发布
1. 在 GitHub 上进入该仓库。
2. 打开 Releases 部分。
3. 点击 Draft a new release。
4. 创建一个 tag,例如 `v1.0.0`。
5. 添加发布标题和说明。
6. 上传 `GardenWiFi.dmg` 文件作为发布资产。
7. 发布该版本。
发布后,DMG 将出现在发布资产列表中,用户可以从 Releases 页面下载它。
## 建议的 GitHub 仓库描述
GardenWiFi 是一款 macOS Wi-Fi 扫描和捕获工具,可以列出附近的网络,捕获来自选定接入点的流量,并将 PMKID/EAPOL 哈希值提取为 `.hc22000` 格式。
## 建议的 GitHub Topics
- macos
- swift
- swiftui
- wifi
- wlan
- corewlan
- packet-capture
- tcpdump
- pcap
- handshake
- pmkid
- eapol
- hashcat
- security-tooling
## 注意事项
- 仅捕获您拥有或经授权测试的网络的流量。
- SSID 的可见性取决于 macOS 的位置权限。
- 数据包捕获依赖于 `tcpdump` 和系统级权限。
标签:SwiftUI, Wi-Fi扫描, Wildcard支持, 密码哈希提取, 网络安全, 网络抓包, 隐私保护