BadUSB实现中,teensy版和ardunio Leonardo板子的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kittygilr/article/details/86638447

用单片机最小系统来实现BadUSB攻击,一种是用teensy开发板,一种是Leonard开发板。
这teensy2.0和leonard开发板,都使用相同的avr芯片atmega32u4,(teensy2.0和leonard使用的都是这款芯片,teeny2.0后续版本有所不同,参见 https://www.pjrc.com/teensy/
https://www.pjrc.com/teensy/techspecs.html)
在这里插入图片描述

他们都可以模拟USB输入设备,都使用ardunio IDE开发(teensy需要下载对应支持的包),那二者到底有什么不同?

https://www.arduino.cn/thread-22302-1-1.html 此文中有讨论,但是不深入。

teensy开发板是2010年的世界黑客大会上,首次公布。用avr系列的单片机最小系统,刷入固件,直接就可以用一个USB线对其进行编程,无需下载线。
teensy2.0固件是刷在atmega32u4内部,关于固件,在 http://wiki.radiowar.org/Teensy前期准备 中有涉及
在这里插入图片描述,在teensy的官方论坛中,有讨论HalfKey Bootloader 的功能,参见,https://forum.pjrc.com/threads/38095-What-does-the-HalfKay-bootloader-do?p=118797 文中提到,从teensy3.0开始,使用专门的BootLoader芯片,ARM M0内核的MKL02,参见原理图 https://www.pjrc.com/teensy/schematic.html ,在teensy板种这个芯片已经内置了BootLoader程序,如果想要自己设计TEENSY板,就要购买这种有程序的芯片。
文章有讨论这个问题,https://forum.pjrc.com/threads/35399-Basic-question-about-creating-custom-Teensy?p=109751#post109751 该文中,作者设计的硬件需要将teensy板子融合进入他的板子,但是不想购买有内置程序的BootLoader。
BootLoader芯片的作用是“MKL2​​0包含PJRC专有的Halfkay引导程序。当teensygateway.exe发送’program’命令时 - 或者按下Teensy上的程序按钮,MKL20重新启动MK20并将引导加载程序闪存到主芯片上。然后它可以通过USB接收新的程序代码,并在重新启动后运行它。然后MKL20进入待机模式。
”。

打算开发一个硬件,需要用到teensy板子,或者Leonard 板子模拟键盘的功能,以为只要照着teensy的原理图,将teensy设计进入pcb中就可以,发现还需要刷入BootLoader程序,这样才能直接使用arduino IDE,用一根USB线即可以对其开发(无需下载器),但是teensy板子的这个程序没有公开,http://elasticsheep.com/2010/01/installing-the-lufa-teensyhid-bootloader/ 文中的TeensyHID bootloader 是适用TEENSY的1.0的版本, 基于AT90USB162 设计的硬件。
teensy3.0以上版本的硬件更难整合进自己设计的PCB(需要购买特有的BootLoader芯片,参见 https://www.pjrc.com/store/ic_mkl02.html
在这里插入图片描述
),一些设计是将teensy座位整个模块,焊接进入PCB中,这样无疑会增加电路的厚度。

文章 http://www.appfruits.com/2015/03/building-your-own-custom-teensy/ 介绍了自己设计的TEENSY3,也是购买了官网的BootLoader芯片。

若是使用arduino 来开发,使用atmega32u4设计出最小系统后,然后用arduino IDE就可以对其进行BootLoader的加载,参见 https://blog.csdn.net/sysjtlwx/article/details/73824903

猜你喜欢

转载自blog.csdn.net/kittygilr/article/details/86638447