---
title: Bad USB
slug: zero/zh/bad-usb
description: 了解 BadUSB 设备的工作原理，以及如何把 Flipper Zero 变成一台 BadUSB 设备
image: https://archbee-image-uploads.s3.amazonaws.com/3StCFqarJkJQZV-7N79yY/Z7KSHodItHk5UKKCgmWdP_badusb1.png
docTags: 
createdAt: 2022-10-18T10:11:52.000Z
---

![](https://api.archbee.com/api/optimize/3GUDYkC5JgUWgo6RW8piO-PUVMYpliqUJ_2-MPHnZtf-20241025-125639.png)

Flipper Zero 可以充当 [BadUSB 设备](https://security.tencent.com/index.php/blog/msg/74)，被计算机识别为[人机接口设备](https://www.usbzh.com/article/detail-76.html)（HID），例如键盘，甚至是鼠标。BadUSB 设备可以修改系统设置、开后门、获取数据、发起反向 shell，基本上凡是能通过物理接触做到的事情它都能做。这些操作通过执行一组用 Rubber Ducky 脚本语言（也称 DuckyScript）编写的命令来完成，这组命令也被称为载荷（payload）。

:::Iframe{iframeHeight="0" code="<div class=&#x22;warning flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;>使用 Bad USB 应用前请插入 microSD 卡</div>&#xA;    使用 Bad USB 应用前，请确保在插入 microSD 卡的状态下更新 Flipper Zero 固件，因为 Flipper Zero 会将数据库存储在 microSD 卡上。要了解更新流程的更多信息，请参阅 <a href=&#x22;https://docs.flipper.net/zero/zh/basics/firmware-update&#x22; onclick=&#x22;next.router.push('https://docs.flipper.net/zero/zh/basics/firmware-update')&#x22;><u>固件更新</u>页面。  &#xA;</div>"}

:::

本页将介绍 BadUSB 设备的工作原理，以及如何把 Flipper Zero 变成一台 BadUSB 设备。请注意，Flipper Zero 不仅可以通过 USB 连接计算机，也可以通过低功耗蓝牙（BLE）连接。

***

# Flipper Zero 脚本语言

把 Flipper Zero 当作 BadUSB 设备使用之前，你需要用这种脚本语言，在任意常见的 ASCII 文本编辑器中编写一个 `.txt` 格式的载荷。Flipper Zero 可以执行扩展的 Rubber Ducky 脚本语法。该语法与经典的 [Rubber Ducky Scripting Language 1.0](https://documentation.hak5.org/hak5-usb-rubber-ducky/duckyscript-tm-quick-reference) 兼容，同时提供了更多命令和功能，例如 ALT+Numpad 输入法、SysRq 命令等。

:::Iframe{iframeHeight="0" code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    要详细了解 Flipper Zero 脚本语言，请参阅<a href=&#x22;https://developer.flipper.net/flipperzero/doxygen/badusb_file_format.html&#x22; onclick=&#x22;next.router.push('https://developer.flipper.net/flipperzero/doxygen/badusb_file_format.html')&#x22;><u>此页面</u>。&#xA;</div>"}

:::

***

# 向 Flipper Zero 上传新载荷

载荷创建完成后，你可以通过 [qFlipper](https://docs.flipper.net/zero/zh/qflipper) 或 [Flipper Mobile App](https://docs.flipper.net/zero/zh/mobile-app) 把它上传到 Flipper Zero 的 `SD Card/badusb/` 文件夹。新的载荷会出现在 Bad USB 应用中。

:::Iframe{code="<video&#xA;    autoplay muted loop playsinline style=&#x22;width: 90%; margin: auto !important;&#x22;&#xA;    src=&#x22;https://cdn.flipperzero.one/qflipper_file_manager.mp4&#x22;&#xA;></video>" iframeHeight="0"}

:::

:::Iframe{code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    上传时，同名文件会被直接覆盖，且不会有任何提示。&#xA;</div>" iframeHeight="500"}

:::

***

# 把 Flipper Zero 当作 BadUSB 设备使用

## 通过 USB 连接

要通过 USB 把 Flipper Zero 变成 BadUSB 设备，请执行以下操作：

:::::WorkflowBlock
:::WorkflowBlockItem
如果计算机上正在运行 qFlipper，请先关闭它。
:::

:::WorkflowBlockItem
在 Flipper Zero 上，转到 **Main Menu → Bad USB。**
:::

:::WorkflowBlockItem
选择载荷。
:::

:::WorkflowBlockItem
确认 Bad USB 应用处于 **USB 模式**——你应该会看到一个 USB 标志（如下图所示）。

要切换到 USB 模式，请按 **USB**%right%。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/PjbjV5hK4RUMLoI1uCtxK_bad-usb-sub.jpg "处于 USB 模式的 Bad USB 应用")
:::

:::WorkflowBlockItem
如有需要，你可以按 **Layout**%left%，然后从布局列表中选择，来修改键盘布局（默认为 US English）。
:::

:::WorkflowBlockItem
用 USB 线把 Flipper Zero 连接到计算机。
:::

::::WorkflowBlockItem
按 **Run**%ok% 在计算机上执行载荷。

:::Iframe{iframeHeight="500" code="<video&#xA;    autoplay muted loop playsinline style=&#x22;width: 100%; margin: auto !important;&#x22;&#xA;    src=&#x22;https://cdn.flipperzero.one/bad_usb_zh_1.mp4&#x22;&#xA;></video>&#xA;<div class=&#x22;text-center mt-2.5 text-gray-400 pb-5&#x22;>&#xA;    借助 Flipper Zero 运行你的载荷&#xA;</div>"}

:::
::::
:::::

## 通过 BLE 连接

要通过低功耗蓝牙把 Flipper Zero 变成 BadUSB 设备，请执行以下操作：

::::WorkflowBlock
:::WorkflowBlockItem
在 Flipper Zero 上转到 **Main Menu → Settings → Bluetooth**，开启蓝牙。
:::

:::WorkflowBlockItem
如果计算机上正在运行 qFlipper，请先关闭它。
:::

:::WorkflowBlockItem
在 Flipper Zero 上，转到 **Main Menu → Bad USB。**
:::

:::WorkflowBlockItem
选择载荷。
:::

:::WorkflowBlockItem
确认 Bad USB 应用处&#x4E8E;**&#x20;BLE 模式**——你应该会看到一个蓝牙标志（如下图所示）。

要切换到 BLE 模式，请按 **BLE**%right%。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/_ADhaSUNGNrjkJKUG6AKe_bad-usb-ble.jpg "处于 BLE 模式的 Bad USB 应用")
:::

:::WorkflowBlockItem
如有需要，你可以按 **Config**%left%，然后从布局列表中选择，来修改键盘布局（默认为 US English）。
:::

:::WorkflowBlockItem
在计算机上打开蓝牙设置，连接检测到的无线 BadUSB 设备。
:::

:::WorkflowBlockItem
在计算机和 Flipper Zero 上都确认连接（在两台设备上都选择 **OK**）。
:::

:::WorkflowBlockItem
在 Flipper Zero 上按 **Run**，在计算机上执行载荷。
:::

:::WorkflowBlockItem
要取消 Flipper Zero 的配对，请进入 **Config**%left%，然后选择 **Remove Pairing**。
:::
::::

***

::::LinkArray{contentSource="CUSTOM"}
:::LinkArrayItem{headerType="IMAGE" headerImage="https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/qK2fDzhhnl66oU16O74Iw_monosnap-miro-2022-10-25-19-31-25.png"}
[Bad USB 应用源代码](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/main/bad_usb)
:::
::::

