0×03 基础代码部分
这几行代码是让Leonardo输出a这个字母,间隔0.01s。
Keyboard.press(97); 中的97是字母a所代表的ASCII值,后面会附上ASCII值的表格。
【注:Keyboard.press(97); 与Keyboard.repress(97); 一起,构成了一次键盘按下并抬起的动作。后面的delay(10);建议加上,尤其是你不知道对方电脑处理速度如何,如果不加这个延时,Leonardo输入的速度太快吧,老式电脑有可能会反应不过来。】
输入不同的字母、数字、特殊符号或者空格键就把Keyboard.press(97); 括号里面的97更改成其他ASCII值,后面的Keyboard.repress(97);括号里的也更改成相同的ASCII值就行了。
接下来就到了快捷键的输入了,如何用Leonardo输入组合键呢?下面我们就来模拟这一个过程,首先把输入组合键的动作分成几个部分:按下Win徽标键不放,然后按下r键,这时候运行会弹出来,然后松开所有按键,利用Leonardo是很容易实现的,接下来我们看这一连串动作的代码实现部分。
下面的代码是让Leonardo通过Win+r组合键来进入cmd命令提示符:
大家可能注意到了,按下Win徽标键的代码后没有Keyboard.repress(KEY_LEFT_GUI);这一句来实现松开Win徽标键,正是这样我们才实现了组合键的功能,其他的组合键也是可以这样输入的。Keyboard.releaseAll(); 是松开所有的按键,适合放在组合键的结尾。
Keyboard.repress(KEY_LEFT_GUI); 中的KEY_LEFT_GUI是代表特殊键【例如:Win徽标键、Ctrl键、Shift键、Alt键等】这些键在Arduino IDE有不同的表示,在Arduino IDE里面的USBAPI.h文件中有详细的定义。
输入那个特殊键就可以根据表上进行更改了,例如Ctrl+c、Ctrl+v这些快捷键都可以实现。
下面是利用Leonardo实现HID攻击的代码【自动打开cmd,添加ghost$用户并将其提升至管理员权限的代码】,重复代码太多我就不一一列举了,这篇文章只是让大家知道一下原理。
小编推荐阅读