备受欢迎的 20 块钱 BadUSB 开发版,除了能让你三秒开后门以外,还能……

⚠️ 善意的提示

  • 挂机是令人讨厌的游戏行为。请不要在 PvP 游戏以及 PvE 游戏团本内挂机
  • 游戏软件仍然可以侦测该方法并封锁你的游戏账号。
  • 本文章将不提供所述方法之具体实现,包括但不限于 Arduino 源代码以及成品硬件。

Pro Micro 简介

SparkFun Pro Micro(又名 Arduino Pro Micro)是一个兼容 Arduino IDE 的 AVR 开发版。体积小巧,同时配备有 MicroUSB 接口。

Pro Micro 在出厂时,芯片内部含有定制版的 Arduino Leonardo 的 Bootloader,因此你可以无需编程器,直接通过 USB 连接线连接电脑来进行固件的下载。

硬件规划

Pro Micro 的引脚定义如图所示。除去电源针脚(VCC 与 GND)、SPI 引脚(14-16)、串口(0-1)以及 I2C(2-3)以外,剩余的引脚我们可以自由发挥。留出 SPI 和 I2C 引脚的原因是,你可以外加 OLED 或 LCD 显示模块,实时显示程序的执行状态。我使用的是 I2C 接口的 12864 OLED 模块。

下面介绍我的引脚规划。我所有用到的引脚均设置为了通过内置电阻上拉。这样一来,引脚默认就是高电平。当我用线短接这些引脚和 GND 时,这些引脚会变成低电平,这样便可以被程序侦测到。

  • 我将 21 引脚用作停止信号。当 21 引脚变为低电平时,程序停止执行。
  • 我将 20-18 三个引脚用于设定速度档位。这个速度指按下 WASD 方向键所持续的时间。
  • 8-9 引脚用于设定随机方向按键模式的开关。随机方向开启时,WASD 按键之一会被随机选择按下。
  • 6-7 引脚用于设定鼠标模式的开关。鼠标模式为开时,Pro Micro 可以模拟鼠标进行腰射或瞄准射击。

除过引脚,还有两个重要的硬件资源需要充分利用。那就是 Rx 和 Tx LED。每个 LED 可以有 亮、灭、闪 三种状态,两个 LED 组合起来就有六种状态。

不一定每个人都有条件为 Pro Micro 配备屏幕,因此充分利用这六种 LED 状态来进行程序执行的状态指示,非常重要。下面介绍我的 LED 定义。

我将 Rx LED 定义为用户输入的指示。当用户对 Pro Micro 进行操作的时候,Rx LED 会点亮以进行回应:

  • 当用户将 Pro Micro 插入电脑,Pro Micro 的硬件组建完成初始化后,会闪烁三秒表示准备就绪。随后便开始执行键盘和鼠标的模拟。
  • 当用户通过短接引脚至 GND 来切换模式时,Rx LED 会闪烁两秒来表示收到了切换模式的信号,随后切换模式。
  • 当用户短接 Stop 引脚到 GND 时,Rx LED 常亮,单片机程序终止执行。

我将 Tx LED 定义为发送信号指示。当 Pro Micro 向电脑发送模拟的鼠标或键盘按键时,Tx LED 会短暂地亮起,发送完成后,便会自己熄灭。

软件原理

程序要实现以下的功能:

  • OLED 或 Rx/Tx LED 的操作函数。OLED 可以用 Adafruit 的库,而 LED 操作函数,网上也很容易找到。
  • 设置针对模式和速度的全局变量。主循环的第二部分需要根据这些变量的值进行具体操作。
  • 对于主循环的第一部分,首先检测 Stop 引脚。 当 Stop 为低电平时,立即终止键盘和鼠标传输并停止执行单片机程序。 然后,检测各个模式或速度引脚的电平。若为低,更改模式变量或速度变量的值。

关于 Pro Micro 的下载模式…

如果你的 Pro Micro 曾经下载过程序,你会发现他好像不能再次程序了。甚至设备管理器中无法找到串口设备。其实并不是 Pro Micro 只能一次性编程,而是:

SparkFun 为了取消默认长达 6-8 秒的 Bootloader 延时,将 Pro Micro 配置为了外置复位信号启用 Bootloader。Pro Micro 通电后,若没有外置复位信号,会直接执行单片机内的程序。

如果你有 DigiSpark,你会深切感受到长达 8 秒 Bootloader 的难受。每次 Digispark 通电后,都需要等待 8 秒,随后才开始执行真正的程序。

我的另外一篇文章,会介绍如何定制 DigiSpark 的 Bootloader,取消这一长达 8 秒的延时。

那么,如何进入 Pro Micro 的 Bootloader 以进行固件下载呢?很简单,你只需要将 RST 和 GND 连续短接两下,Pro Micro 便会进入 8 秒的 Bootloader 时间。

“当 Pro Micro 被外置复位(将 RST 至低电平)时,Pro Micro 只会在执行 Arduino Sketch 前短暂地启动 Bootloader(<750ms)。若要延长 Bootloader 的时间,快速复位两次,便可以获得 8 秒的 Bootloader 时间。”

https://learn.sparkfun.com/tutorials/pro-micro–fio-v3-hookup-guide/all#ts-serial

如果你手和电脑都不够快,不能够在 8 秒内选择 Pro Micro 串口,点击上传,并完成编译上传的话,不要着急,SparkFun 教我们这么做(也可用于救砖):

  1. 复位 Pro Micro 两次,在 8 秒内选择 Pro Micro 串口。
  2. 点击上传,等大概快编译成功时,再次复位 Pro Micro 两次。

不知道什么时候快编译成功?点一下 Arduino 的验证,掐一下表记个时间,你就有数了。

留下评论

电子邮件地址不会被公开。 必填项已用*标注