- 网络安全
- 渗透测试
【免费下载链接】android-wifi-pojie
Android使用密码本暴力破解wifi密码工具
android-wifi-pojie(wifi工具箱)是一款运行在 Android 上的WiFi 密码字典暴力破解工具:它把"密码本"中的候选密码逐个送入系统真实的 WiFi 连接流程,再通过4-Way Handshake(四次握手)的结果判定对错,自动完成"尝试 → 判定 → 下一个"的循环,直到某个密码连接成功。本文结合项目源码,带你从零看懂这套密码字典破解的完整流程与判定原理。
它能做什么?3 个核心能力一览
在讲原理之前,先快速认识这个工具(详见 README.md 功能介绍):
- 🔑密码字典破解:在"运行"页选择目标 WiFi,点"开始"并选择密码本,程序自动逐个尝试,支持同时添加多个 WiFi 任务自动排队
- 📝双类型密码本管理:在"资源"页导入 txt/json 的普通密码本,或编写 JS 脚本动态生成密码
- ⏱️速度与进度可视化:运行中显示 20 次平均速度和预估剩余时间,支持异常自动重试、后台运行
它并不是抓包分析或绕过加密,而是"用最笨也最可靠的方式"——用系统自己的连接通道,一个密码一个密码地试。
破解全流程:从选择 WiFi 到命中密码的 5 个步骤
整个流程可以概括为一张链:
密码本(txt/脚本) → 生成候选密码列表 → 排队调度 → 逐个真实连接 → 读取 4-Way Handshake 结果 → 成功?收尾 / 失败?换下一个密码下面按源码中的职责分层,逐步拆解。
第一步:准备"弹药"——普通与脚本两种密码本
密码本由 PojieResource.kt 定义,分两种类型:
| 类型 | 格式 | 特点 |
|---|---|---|
| 普通类型(JSON) | 一行一个密码 | 与幻影 wifi 格式一致,可带 ID、描述、作者、版本等元信息 |
| 脚本类型(JS) | JavaScript 脚本 | 每次运行前执行一遍,能读取目标 WiFi 的 SSID,动态生成密码 |
执行入口在 ResourcesRunner.kt,有几个关键细节:
- 多密码本轮询合并:多个密码本的密码会按"轮询"方式交织排列(而不是先跑完一本再跑下一本),命中概率更均匀
- 自动去重 + 长度过滤:最终列表会
distinct()去重,并过滤掉长度小于 8 的密码——因为 WPA-PSK 密码本身就是 8~63 位,短密码根本没有尝试价值
第二步:脚本密码本如何根据 SSID 智能生成密码
脚本类型是本项目最有意思的部分。脚本运行在一个隐藏的WebView中(见 ResourcesRunner.kt),平台通过 JS 桥向脚本暴露了一个task对象:
task.ssid:要破解的 WiFi 名称task.addItem(password):向结果集添加一个候选密码wait(ms):异步等待(代码默认包裹在 async 函数里,可直接await)console.log(...):输出会回显到运行日志- 还可以使用
fetch等 WebView 能力(有跨域限制),脚本有 5 秒执行超时
项目内置了示例脚本 c06c0abb.js("ssid 猜密码"):它把 SSID 按分隔符拆成关键词,再拼上12345678、888、年份等常见后缀,生成一批更可能成为该 WiFi 密码的候选项。配合通用密码字典一起跑,命中率会高不少。
第三步:任务排队与真实连接——Shizuku / AIDL / 系统 API
调度核心在 PojieTaskManager.kt 的主循环:从任务队列中挑出"就绪"的任务,取出tryList[tryIndex]对应的密码,交给 ConnectWorker.kt 的performTaskLogic执行一次真实连接。
连接动作支持 4 种运行模式,首次使用需先在设置页选好:
| 模式 | 原理 | 稳定性 |
|---|---|---|
| Shizuku 模式 | 通过 Shizuku 执行cmd wifi命令 | ⭐ 推荐,最稳定 |
| AIDL 模式 | 绑定系统IWifiManager服务 | 需要 root + 开启 AIDL 服务 |
| 系统 API(Android 10+) | NetworkCallback连接 | 无需任何权限 |
| 系统 API(旧版) | 反射旧版 WifiManager | 兼容性最好 |
💡 官方推荐:全部功能选 Shizuku 模式,读取网络日志选命令行模式。
每次尝试成功后,ConnectWorker会先断开连接(cleanConnection),保证下一次尝试是从干净状态开始,避免残留状态误判。
核心原理:四次握手(4-Way Handshake)如何暴露密码对错
这是整个工具最核心的原理,也是"深度解析"的重点。
WPA/WPA2 网络在拿到密码后,手机与路由器之间会进行4-Way Handshake协商加密密钥:
- 1/4 消息:路由器 → 手机,发起握手
- 2/4 消息:手机 → 路由器,确认密钥材料
- 3/4、4/4 消息:双方互发确认,握手完成,开始传输数据
关键在于:密码错误时,握手会在中途失败——wpa_supplicant会发出Sending EAPOL-Key 2/4之后卡住,或干脆打出WPA: 4-Way Handshake failed;而密码正确时,日志会出现WPA: Key negotiation completed。
于是工具不需要猜"系统到底连没连上",只需盯着这几行日志,就能在约 2 秒内对当前密码下出"对/错"的判决。这正是它跑得快的根本原因。
logcat 事件判定对照表
命令行模式下,工具会启动logcat -s WifiService:D wpa_supplicant:D DhcpClient:D并逐行解析(WifiLogcatService.kt):
| 日志特征 | 判定事件 | 含义 |
|---|---|---|
Trying to associate with SSID | 连接开始 | 记录起始时间与 SSID |
WPA: RX message 1 of 4-Way Handshake | 握手开始 | 记录握手起始时间 |
WPA: Key negotiation completed | ✅ 成功 | 密码正确,任务结束 |
Sending EAPOL-Key 2/4 | 握手计数 +1 | 用于失败判定(见下) |
WPA: 4-Way Handshake failed | ❌ 失败 | 密码错误 |
CTRL-EVENT-ASSOC-REJECT | ⚠️ 临时错误 | 被路由器拒绝,稍后重试 |
失败判定有两种策略(failureFlag参数):
- 握手超时模式(flag=1):握手开始后超过
timeout(默认 1500ms)仍未完成 → 判失败 - 握手超次模式(flag=2,默认):
Sending EAPOL-Key 2/4出现次数超过maxHandshakeCount(默认 1 次)→ 判失败
没有 Shizuku 时也可以改用BroadcastReceiver方案(WifiBroadcastService.kt),监听SUPPLICANT_STATE_CHANGED和NETWORK_STATE_CHANGED系统广播来判定,无需读取日志——但官方提示该模式可能误报,且不支持"握手超次"判定。
第五步:失败重试的指数退避与速度预估
判定为"临时错误"(如被路由器拒绝)时,工具不会立刻重试,而是进入冷却:等待时间按2 的幂次翻倍(2^(retryCount-1) × doublingBase),见 PojieTaskManager.kt 的handleCooldown。这既避免被路由器限流踢下线,也不阻塞队列里的其他任务。
同时任务对象 PojieRunInfo.kt 会保留最近 20 次尝试的耗时,取平均速度后估算:
- 预估剩余时间= 平均单次耗时 × 剩余密码数,在通知栏实时显示
- 成功命中后自动写入历史记录(密码、尝试列表、命中位置),下次运行可直接查看
还有一个隐藏细节:主循环每 250ms 会force-stop一次系统"设置"应用——因为部分手机(如小米)连接失败时会弹出设置界面,干扰自动化流程。
快速上手:运行模式与推荐配置
🛠️ 首次使用只需三步:
- 选模式:设置页把"读取网络日志"设为命令行,其余选 Shizuku(无 Shizuku 则全选系统 API)
- 建密码本:资源页 → 新建 → 导入 txt(一行一个密码),或新建脚本类型
- 开跑:运行页 → 目标 WiFi 右侧点"开始" → 选择密码本 → 确认
核心运行参数(PojieConfig.kt)速查:
| 参数 | 默认值 | 作用 |
|---|---|---|
maxTryTime | 5000ms | 单次连接尝试的超时上限 |
failureFlag | 2 | 失败判定策略:1=握手超时,2=握手超次 |
timeout | 1500ms | 握手超时阈值(flag=1 时生效) |
maxHandshakeCount | 1 | 允许的最大握手次数(flag=2 时生效) |
写在最后:只把工具用在合法场景
密码字典破解本质上是尝试访问他人的无线网络,在未获网络所有者授权的情况下使用可能违反当地法律。android-wifi-pojie 的正确打开方式是:破解自己的 WiFi 找回遗忘的密码、测试自家网络的安全强度(比如检查家人是否设置了弱密码)。理解它的原理,是为了更好地加固自己的网络,而不是撬开别人的门锁。🔒
- 网络安全
- 渗透测试
【免费下载链接】android-wifi-pojie
Android使用密码本暴力破解wifi密码工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考