ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Flipper Zero BadUSB:用 Ducky 脚本全自动安装 Windows 10 Pro 22H2 的完整实战

Flipper Zero BadUSB:用 Ducky 脚本全自动安装 Windows 10 Pro 22H2 的完整实战 Flipper Zero BadUSB用 Ducky 脚本全自动安装 Windows 10 Pro 22H2 的完整实战【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper本文基于 Flipper Zero 资源仓库中 emptythevoid 的win10_install方案展开讲解如何用两枚 Ducky 脚本通过 BadUSB 接口自动操作 Windows 10 安装器的 GUI完成从分区、装机到 OOBE 用户配置的无人值守流程并逐一剖析脚本中的按键时序、网络分支与必须人工修改的配置项。读完后你将理解 Ducky 脚本驱动 GUI 自动化的完整方法论以及这类重自动化、轻效率脚本的时序设计与风险点。方案概览两段式无人值守安装该方案的目标系统为Windows 10 Pro 22H2核心设计哲学在 README 中写得很明确强调自动化程度而非效率Emphasis is on automation, not efficiency——脚本里大量使用远超必要的长延迟用时间冗余换取按键落点的确定性。整套流程被拆成两枚脚本分别覆盖安装器的两个阶段阶段脚本文件覆盖范围Part 1win10_part1.txt初始安装语言选择、许可协议、自定义安装、删除所有现有分区、让 Windows 创建全新分区方案Part 2win10_part2.txt安装完成后的 OOBE 设置区域/键盘、网络选择、创建初始本地账户、安全问题和隐私选项使用时的基本操作把 Flipper 作为 USB 设备插入从安装介质启动的计算机Part 1 从选择语言界面开始执行系统安装完成后重启进入 OOBE 的Lets start with the region界面时执行 Part 2。整个过程无需人工介入前提是你已按下面所述改好 Part 2 中的配置项。Part 1 逐段解析抹掉磁盘交给 Windows 重建分区方案Part 1 脚本的完整逻辑如下按界面状态逐步推进REM Target: Windows 10 Pro 22H2 REM Start at the Language selection screen REM Enter language and click Next. Assume defaults. TAB TAB TAB ENTER DELAY 100 REM Click Install Now ENTER DELAY 20000 REM Windows license SPACE TAB ENTER DELAY 100 REM Type of install Custom TAB ENTER DELAY 500对应 win10_part1.txt语言界面三个TAB配合ENTER直接采用默认语言并进入下一步Install Now点击后给了DELAY 2000020 秒——这是典型的重冗余设计保证安装器完成内部初始化许可协议SPACE勾选我接受许可条款再进入下一步安装类型TAB到Custom仅安装 Windows高级并ENTER即脚本注释所说的Type of install Custom。核心手法逐个删除所有分区这是 Part 1 的关键部分win10_part1.txtREM Remove all partitions and start fresh REM Note: If default partitions are absent, it still creates the partitions and completes REM Defaults to Primary TAB TAB ENTER DELAY 100 LEFT ENTER DELAY 500 REM Now at System TAB TAB ENTER DELAY 100 LEFT ENTER DELAY 500 REM Now at unallocated DOWN REM now at MSR TAB TAB ENTER DELAY 100 LEFT ENTER DELAY 500 REM back at unallocated DOWN REM now at recovery TAB TAB ENTER DELAY 100 LEFT ENTER DELAY 15000从脚本结构看其操作模式是固定的选中分区 →TAB TAB ENTER打开 Delete 下拉 →LEFT ENTER确认删除的循环依次处理了 Windows 默认磁盘布局中的Primary主分区→ System系统分区→ MSR微软保留分区→ Recovery恢复分区四个分区。注释特别说明即使某些默认分区不存在脚本依然会按此路径走完流程仍能正确结束——这种面向最坏情况枚举的写法正是重自动化思路的体现。最后一个删除操作后给了DELAY 1500015 秒等待磁盘上空间回收、列表刷新为 100% unallocated。创建全新分区并继续安装剩余步骤win10_part1.txtREM now at 100% unallocated. Click New TAB TAB ENTER DELAY 100 REM use all space (default) TAB ENTER DELAY 100 REM notice about additional partitions ENTER DELAY 5000 REM press Next TAB TAB TAB TAB TAB ENTER即在 unallocated 状态点New采用默认的使用全部可用空间确认 Windows 弹出的会额外创建一些分区提示最后连续TAB到Next开始写入系统。至此 Part 1 结束安装器进入漫长的复制与驱动阶段机器会自行重启。Part 2 逐段解析OOBE 阶段的全自动设置Part 2 从 OOBE 的Lets start with the region界面开始win10_part2.txt。开头先做三件默认操作REM Defaults to United States ENTER DELAY 5000 REM Defaults to US keyboard layout ENTER DELAY 5000 REM Add second keyboard layout. Defaults to Skip ENTER DELAY 5000区域默认 United States键盘布局默认 US第二个键盘布局选择 Skip。每步之间统一DELAY 5000保证界面切换完成。网络分支始终选择我没有 Internet这是 README 中特别强调的设计决策。作者指出Ducky 脚本从动态列表中精确选中某个 Wi-Fi SSID 是不可靠的因此脚本配置为始终点击 I dont have internet。脚本内同时保留了两套分支需要你根据目标机器的实际网络情况二选一启用win10_part2.txtREM No internet available, but assume wifi works and detects at least one access point REM Need to insert a long delay in case it enumerates Wifi networks DELAY 15000 TAB DELAY 100 TAB DELAY 100 TAB DELAY 100 REM Should be on I dont have internet ENTER DELAY 5000 REM No Internet Available, no wifi at all REM TAB REM ENTER REM DELAY 5000两个变体的区别有 Wi-Fi 硬件扫描时会列出至少一个接入点需要DELAY 15000等待系统枚举完 Wi-Fi 网络然后三次TAB落在I dont have internet上回车完全没有 Wi-Fi界面更简单TAB ENTER即可脚本中已将其注释掉启用时需手动取消注释并去掉上面分支。接着在继续有限的体验界面再五次TAB到Continue with limited setup跳过强制联网。这一整套设计的直接后果是安装过程不触网也就不会强制你使用 Microsoft 账户——这正是本地账户路线成立的前提。必须人工配置的部分STRING 占位符README 明确要求Make sure to fill in the STRINGs。Part 2 中连续三段STRING分别对应用户名、密码、密码确认之后三段是安全问题的答案win10_part2.txtREM Whos going to use this PC? STRING ENTER DELAY 5000 REM Create a super memorable password STRING ENTER DELAY 5000 REM Confirm password STRING ENTER DELAY 5000 REM Security question 1 DOWN TAB STRING ENTER DELAY 5000注意脚本头部被注释掉的变量块win10_part2.txtREM FLIPPER DOESNT SUPPORT VARIABLES?? REM VAR $USER REM VAR $PASSWORD REM VAR $RANDOM1 REM VAR $RANDOM2 REM VAR $RANDOM3 从这一注释结构可以看出作者当时认为 Flipper 的 Ducky 方言不支持VAR变量因此采用直接在字符串字面量里填值的方案。你需要把这五个空STRING行改为STRING your_username、STRING your_password等形式。安全问题一律采用下拉框的第一项每个问题先DOWN再TAB即选中默认首项README 说明脚本假设这些问题不重要如需自定义请自行调整。隐私开关与 Cortana 的收尾处理OOBE 最后两个界面用纯TAB/SPACE组合完成win10_part2.txt跳过人脸识别登录三次TAB后ENTERLets make this PC yours 隐私页五次TAB后用SPACE连续关闭六个隐私开关诊断数据、广告 ID、个性化建议等脚本的意图是disable all privacy defaultsCortana 页四次TAB落在 Lets skip it for nowENTER结束 OOBE。脚本到此结束机器进入桌面一个只有本地账户、无联网痕迹、隐私开关全关的 Windows 10 即完成部署。时序设计与时序失配的后果README 专门用一节讲 timing这是本方案最实用的部分隐含的硬件假设脚本假设目标机器比较快配有SSD/NVMe。所有DELAY 500 / 5000 / 15000 / 20000的取值都以此为基准。偏慢的后果如果机器比预期慢界面尚未切到预期状态时按键已经送达按键会落到意料之外的控件上——README 指出最常见的事故是误触发系统的语音助手Windows 的激活短语。偏快的特殊风险账户创建阶段如果执行得过快存在密码被误填进用户名输入框的可能性——这是比功能失效更隐蔽的失误装完才发现密码已经变成了账户名。由此可总结出一类 Ducky GUI 脚本的通用教训Ducky 没有等待某个控件出现的原语只能用固定时延做盲等时延宁长勿短且必须与目标机器的实际速度匹配。README 的 TODO 一节也印证了这一点作者计划为 Part 2 设定一个标准更长的时延因为脚本中Delay 100用得太密集README。适用前提与已知限制汇总 README 与脚本中的约束使用前应确认目标系统为Windows 10 Pro 22H2从安装介质启动后执行Part 1 会删除目标磁盘上的所有分区务必确认盘上没有需要保留的数据执行 Part 2 前必须替换五处STRING配置用户名、密码、密码确认、三个安全问题答案必须根据目标机有无 Wi-Fi 硬件选择对应的无 Internet分支若目标机插着以太网脚本会尝试联网README 的 TODO 表明有 Ethernet/Wifi 时的可选代码块当时尚未加入脚本整体是按无网络可用的假设运行的按键时序按 SSD/NVMe 的速度调校机械硬盘或性能较差的机器需要自行加大时延。延伸阅读仓库中的同族脚本同目录下还有几组可以直接对照参考的脚本均位于 emptythevoid-BadUSB 集合中win11_install面向 Windows 11 ISO 安装介质的两段式脚本同样要求修改用户名/密码/三个安全问题其 README 还额外说明了插以太网时 Part 2 会先释放 DHCP 地址、结束后PAUSE等待按键恢复网络的做法windows_helpers若干 Windows 小工具脚本检查更新、时区设置、关机命令行等badusb-js从 Flipper 串口读取数据的 Node.js 侧配合脚本展示了 Flipper 脚本与上位机程序联动的另一种玩法。小结这套win10_install脚本是 Ducky 驱动 GUI 自动化的一次完整示范用界面状态机每个 TAB/ENTER 都对应明确的界面位置 保守的固定时延 面向缺失元素的枚举式处理把 Windows 10 安装器中最繁琐的分区操作和 OOBE 设置变成了两段插入即跑的无人值守流程。理解它也就掌握了 BadUSB 脚本操作任意桌面 GUI 的通用方法先离线走一遍目标界面记录按键路径再为每个不确定点预留冗余时延最后把需要变化的信息账户、密码显式暴露为必须人工填写的占位符。参考文件方案说明 READMEPart 1 安装脚本Part 2 OOBE 脚本emptythevoid-BadUSB 集合说明Windows 11 安装脚本对照【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表