资讯动态

wifit3 Textual TUI架构:三屏流程、热键与模态交互完整指南

发布时间:2026/10/2 0:08:16 来源:尧图企业网站定制
wifit3 Textual TUI架构三屏流程、热键与模态交互完整指南【免费下载链接】wifit3Wifite but USB-only cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3wifit3 是一个跨平台Linux / Windows / macOS的USB 专用 Wi-Fi 审计工具基于 Python 的 Textual 框架构建纯终端 TUI 界面——无需aircrack-ng、reaver等外部依赖UI 全部由 Textual 的App/Screen/ModalScreen三层结构实现。本文带你读懂它的主 App 装配方式、Splash → Scanner → Focus 的三屏流转、各屏热键设计以及 6 类模态交互的细节。一、主App装配一切从 WifiteApp 开始整个 TUI 的入口是 src/wifit3/ui/app.py 中的WifiteApp继承 Textual 的App。on_mount里一次性注册三张屏幕并压入栈底SplashView名splash——启动页/选卡页ScannerView名scanner——AP 扫描列表页FocusViewV2名focus——单目标路由器管理页同时启动两个常驻轮询每0.5 秒轮询一次 USB 总线DeviceWatch热插拔感知每2 秒轮询一次破解任务状态_poll_jobs。屏幕之间用push_screen/switch_screen切换文本选中后还会自动复制到剪贴板并弹出 Toast 提示on_text_selected。全局热键只有两个定义在WifiteApp.BINDINGS热键作用CtrlP打开偏好设置模态pref.py主题、排序延迟、捕获目录v打开 Vault 捕获库抽屉二、第一屏 Splash设备选择与一键启动Splash 屏splash.py由四部分构成ANSI Logo、状态行、设备列表、START/Uninstall按钮。它的核心交互是按设备数量自适应单张网卡显示纯高亮列表ListView双击或按Enter直接启动多张网卡切换为复选框列表SelectionList默认全选可勾选子集再启动多卡聚合嗅探启动过程是异步 workerperform_start逐卡调用device_manager.bringup期间冻结设备轮询防止列表跳动任一张就绪即switch_screen(scanner)Uninstall按钮把选中网卡交还给操作系统删除 udev 规则 / 卸载 WinUSBmacOS 无安装步骤会自动隐藏该按钮。热键作用Enter启动勾选的网卡priorityTrue列表任何位置都可触发q退出三、第二屏 Scanner15FPS 实时扫描列表Scanner 屏scanner.py是信息密度最高的一屏AP 表DataTable展示 SSID / 信道 / 信号 / Beacon 数 / 客户端数 / 加密 / WPS / 厂商指纹以15 FPS原地刷新单元格——只有值变化才重绘隐藏 SSID 显示斜体Hidden或同父 BSSID 猜测后缀?生命周期管理10 秒无 Beacon 的行变暗stale30 秒后整行清除evict表头信道读数_ChannelReadout用 Reactive 把 Header 右侧时钟位置替换为实时跳频信道CH: 006 | CH: 048多卡各自显示Beacon 闪烁Beacon 计数增长时列加粗闪烁 0.2 秒WPS PBC 自动入侵默认开启检测到物理按键窗口时自动暂停跳频、锁信道、抓取 PSK完成后恢复扫描。热键作用j/k或方向键上下移动光标g/G或Home/End跳到表首 / 表尾s循环切换排序列o切换升/降序f或/聚焦过滤栏filter.pyc信道过滤对话框channel_filter.pye聚焦加密类型过滤l显示/隐藏底部系统日志w开关 WPS PBC 自动入侵v打开 Vaultq退出光标停在某行时按Enter即可进入第三屏 Focus。四、第三屏 Focus路由器管理视图Focus 屏focus_v2/screen.py采用横向网络拓扑布局自上而下三条带顶栏‹ Scanner返回按钮 一排攻击按钮ARP Replay / ChopChop / AutoDeauth / PMKID / WPS PIN / EvilTwin / Stop PBC按钮的显示、禁用、文案全部由refresh_buttons从 Campaign 状态直接读取——目标加密是 WEP 才出 Replay 按钮WPA3-only 会禁用 Deauth中栏网卡卡片 | 包速率仪表盘 | 路由器三端点网卡与路由器用 20 列宽的 ANSI 艺术图收到包时对应端点的 LED 会闪烁_drive_leds底栏左侧 LOG带时间戳的树形日志treelog.py右侧 CLIENTS 客户端列表每个客户端行内带红色✕单发去认证按钮。进入 Focus 时自动把信道池锁到目标信道array.set_channel并打印历史捕获摘要。攻击热键来自 campaigns/ 各战役类注册的hotkey属性与按钮一一对应热键作用来源rWEP ARP 重放wep/campaign.pycChopChopWEP 运行中可用screen.pyDAutoDeauth 循环开关deauth.pyd一次性广播去认证screen.pypPMKID 收割pmkid.pyiWPS PIN 攻击PixieDust→默认 PIN→爆破pin.pywWPS PBC 自动入侵开关screen.pys静音/取消静音目标Silenced 后忽略握手screen.pyEsc返回 Scannerscreen.pyq退出screen.py底部 Footer 的按键提示会通过check_action_sync_bindings与按钮状态实时同步——按钮灰掉的键Footer 里也同步变灰。五、模态交互6 类 ModalScreen 覆盖全生命周期wifit3 的模态全部基于 TextualModalScreen按语义分为几类1. 错误模态error_modals.py——两级设计FatalErrorModalUSB 后端级不可恢复错误红色边框禁用所有键位Escape 也不可关闭只能Copy details / Quittrace 支持 OSC-52 一键复制RecoverableErrorModal网卡中途丢失橙色边框提供Back to Splash——App 会弹空屏幕栈、重置 Splash 状态并关闭死掉的网卡池recover_to_splash。2. 热插拔对话框new_device.py会话中插入新支持的网卡时弹出友好提示Yes / NoEscape等于No选Yes则就地 bring up 并入池多卡聚合立即生效。3. 信道过滤对话框channel_filter.py热键a全选、2/5一键选 2.4G / 5G、n清空、Enter确认Escape取消选全频段会被归一化为无过滤便于热插拔后重新铺满频段。4. Vault 抽屉vault_drawer.pyv呼出的底部滑出式模态——内容面板用offset-y: 100% → 0%的 200ms 三次缓动动画上滑左表右详情 任务面板热键z导出 Zip、o打开捕获目录、再按v或点击遮罩关闭。5. 业务模态EvilTwin 输入模态eviltwin_modal.py、客户端指纹详情clients_list 的FingerprintModal、安装/卸载确认confirm_install.py / confirm_uninstall.pyy/n应答、重插提示replug.py等。6. 轻提示 Toast非阻塞的notify用于任务完成如SUCCESS PSK: xxx、复制成功等场景成功/警告/错误三种 severity 配色默认 6 秒自动消失。六、细节速查让 TUI 像桌面应用的关键主题系统themes.py 注册多套 Textual 主题CtrlP内换肤即时生效Logo 的 ANSI 艺术会随主题重着色recolor_logo防抖与防抖重绘Scanner 用set_interval(1/15)合并刷新Focus 用_last_status快照跳过无变化重绘避免终端刷屏线程安全RX 读线程回调通过call_soon_threadsafe回到事件循环模态统一用call_later延迟到消息泵上下文中 push避免NoActiveAppError优雅退出action_quit先持久化配置、杀掉所有运行中任务、关闭网卡池再exit。想动手看实现建议从 src/wifit3/ui/app.py 入手沿SplashView → ScannerView → FocusViewV2的阅读顺序走一遍三屏再对照 tests/ui/ 下的 40 个交互测试理解每个热键的行为契约。⚠️ 免责声明wifit3 直接操作 USB 硬件寄存器请仅用于你拥有或已获明确授权审计的网络。【免费下载链接】wifit3Wifite but USB-only cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑