MDK

Wi-Fi 真的安全吗?一行代码就可让周边无线网络全部瘫痪!| 原力计划

邮差的信 提交于 2020-08-09 23:48:00
作者 | 哈密瓜味咸鱼 来源 | CSDN博客 在如今 Wi - Fi已经是我们每个人日常生活中都必不可少的东西,但是在 Wi-Fi 如此大范围的普及之下, Wi-Fi 真的安全吗? 答案是否定的。我们利用kali Linux系统中的插件MDK3可以轻而易举的就可以使周围的 Wi-Fi 全部瘫痪! 本文所有测试均经过同意,请勿用于非法用途,未经作者授权禁止转载!!! 了解什么是MDK3 MDK3是一款在很早之前已经出现的一款无线网络测试工具,攻击模式多种多样,个人认为其中最残忍最有效的攻击手段便是MDK3的断网攻击,发起攻击之后,所有已连接 Wi-Fi 的客户端全部掉线,并且当客户端重新连接 Wi-Fi 的时候,即使输入正确的密码, Wi-Fi 也会显示密码错误,从而达到瘫痪效果。 什么是kali Linux Kali Linux是一个高级渗透测试和安全审计Linux发行版。 如果你听到一个 13 岁的“黑客”吹嘘他是多么的牛逼,是有可能的,因为有 Kali Linux 的存在。尽管有可能会被称为“脚本小子”,但是事实上,Kali 仍旧是安全专家手头的重要工具。相信大名鼎鼎的 Kali 大家都有了解,由于篇幅问题这里就不进行过多介绍了。 由于篇幅问题大家可以自行搜索如何在电脑中安装kali linux系统,非常的简单。 准备工作 1.笔记本电脑(需安装kali linux系统) 2

FreeRTOS学习(一)

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-07 04:08:26
1 FreeRTOS任务基础 1.1 多任务系统 在51单片机、AVR、STM32裸机编程时,我们通常都是用一个main函数里面加一个while(1)做一个大循环来完成所有的事务处理,同时在加上中断处理一些较为紧急的事务。相对于多任务系统而言,这个就是单任务系统,也称作前后台系统,中断服务函数 作为前台程序,大循环while(1)作为后台程序,如图 1.1.1 所示: 图1.1.1 前后台系统 前后台系统的实时性较大(尤其是调度任务较多),每个任务都是轮流执行,没有轮到该任务运行的时候,不管该任务有多么的紧急,就只能等着,大家拥有一样的优先级。但是该类系统简单,所消耗的资源较少。 多任务系统可以将一个大问题分成很多个具有共性的小问题,逐一的将这些小问题解决,进而大问题将得到全面的解决,我们可将每一个小问题都视为一个任务。这些小任务是并发处理的,由于他们的执行时间很短,我们所能感觉到的是所有的任务都是同时进行的。那么多任务运行的问题就来了,这就涉及到任务执行的先后顺序及什么任务该执行不该执行了。该模块的功能将由任务调度器来完成,具体如何实现,各类系统是有很大差别的,通常来说我们可分为抢占式(UCos、FreeRTOS)和非抢占式(Linux)。FreeRTOS是一个支持抢占式的实时操作系统,其任务运行如图1.1.2所示: 图1.1.2 抢占式多任务系统 1.2 FreeRTOS任务

STM32的ADC多通道采样

喜夏-厌秋 提交于 2020-08-06 21:23:46
基于STM32Cube的ADC多通道采样 STMCube+MDK 用hal库写的好处就是可以不用进行配置IO口发步骤.有良好的兼容性,更换芯片的时候改代码也简单. 首先打开STM32Cube 点击new project 选择芯片(此处我选的是STM32F051R8 选择结束后如下 配置一下芯片的相关配置 我是ST-LINK下载所以用SW模式.ADC是4通道采样1-4. 打开串口一.只要选项选好,右边的芯片的引脚就自动配置好. RCC我在左侧的表格里不用勾选,因为我用的是内部时钟,不用选.下面是我配置的时钟 之所以是48M,还要分频呢. 下面直接上图片 其他的都默认.然后按ALT+P,设置下工程,格式如下 这个可以把代码格式更模块化。建议选择 #串口问题就一个重定向就解决了 # ifdef __GNUC__ # define PUTCHAR_PROTOTYPE int __io_putchar(int ch) # else # define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) # endif PUTCHAR_PROTOTYPE { HAL_UART_Transmit ( & huart1 , ( uint8_t * ) & ch , 1 , 0xFFFF ) ; return ch ; } void HAL_ADC

一招教你单片机固件快速瘦身

☆樱花仙子☆ 提交于 2020-08-06 10:23:34
文章目录 1 前言 2 ELF格式 3 编译器 3.1 ARMCC 3.2 GCC 4 IDE 4.1 MDK的设置 4.2 CubeIDE 5 结论 1 前言 我们平时做项目的时候,随着代码量的增加,工程变得更加臃肿,但是实际上 可能只使用到其中一部分函数 ,与此同时,还有一部分是已经定义但是没有被使用的函数, 虽然我们不使用这些功能和函数,但它们往往会浪费我们的ROM和RAM的空间 。 或者在使用静态库的时候,这种现象更加明显。比如,我们只需要使用静态库中的几个功能,但是编译器默认会把整个静态库全部链接到可执行程序中,从而导致可执行程序的大小大大增加。 那该如何避免这种情况呢?大部分工作交给编译器, 我们只要告诉编译器不要把这些程序编译到可执行文件中即可 。下面会继续解释。 2 ELF格式 ELF ( Executable and Linkable Format )是可执行和可链接格式。在 Linux 上 ELF 包括了链接过程中的目标文件( .o ),共享库( .so )和可执行文件,同时还用于可加载的内核模块,因此作为链接过程中的目标文件也是通过 ELF 格式的文件来表示的; ELF 的结构至少包含两个头: ELF头 程序头 通常还会有一个节标头; 具体如下图所示; 从图中我们可以看到,这里可以分为两种情况; Linking:链接是按节划分的,在 链接程序 或 库

Linux-乌班图常用命令

自闭症网瘾萝莉.ら 提交于 2020-07-29 08:50:21
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆ 安装和登录命令: login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆ 文件处理命令: file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆ 系统管理相关命令: df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令: ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统安全相关命令: passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆ 其它命令: tar、unzip、gunzip

STM32片外SRAM作运行内存

不打扰是莪最后的温柔 提交于 2020-07-28 19:40:12
本例演示用的软硬件: 片内外设驱动库:STM32CubeF41.24.1的HAL库1.7.6,2019年4月12日 IDE:MDK-ARM 5.28.0.0,2019年5月 开发板:片外SRAM挂在FSMC_NORPSRAM3,16bit×2 19 =1MiB 本例的目的是让编程人员使用片外SRAM就像使用片内SRAM一样,即不用把任何变量声明到指定的RAM地址、连接器也能自动地把片外SRAM作为变量的存储空间 如果把所有需要被放到片外SRAM的变量用__attribute__((at()))、指针等声明到片外SRAM,那么完全不用像本例这样 执行main()前执行片内Flash上初始化FSMC及其GPIO的指令: 有些指令由启动文件的汇编代码生成,例如对于本例的STM32F407ZG来说这个启动文件就是startup_stm32f407xx.s(默认版本位于STM32CubeF4\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm) 有些函数在system_stm32f4xx.c(位于STM32CubeF4\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\) 对于本例的STM32F407来说修改上述的2个源文件的方法是: 1

蓝桥杯物联网 这是什么? Day1

痴心易碎 提交于 2020-07-28 17:41:10
一、前言 首先,我是第一次参加蓝桥杯大赛,这个物联网组也是第一次有的。我最开始也是一个小白,见过一段时间的摸索(不堪回首),也终于明白了 这是什么? 和 怎么学习? 。将我的经验分享给大家,希望可以帮到你们。 二、认识板子 相信大家手里的板子应该是这个吧。叫什么Lora终端,板载的芯片是STM32L071。通过这两块板子的Lora模块进行通信,将一个板子的一些信息(温度、按键状态等等)传输到另外一个板子上。 事实上学这个板子,可以先去学一下STM32F103(这个最简单),这个都是差不多。这个Lora终端我认为就是一个 STM32开发板+Lora模块 组成。所以学好了STM32再学这个Lora,那么这个板子你就掌握了。 三、认识软件 1、STM32CubeMx STM32CubeMX是一个配置STM32代码的工具,它把很多东西封装的比较好,硬件抽象层、中间层、示例代码等。 例如:如上图,将PB5引脚定义为GPIO_Output,并且使用USER_Label将这个引脚称呼为LED,那么在生成的Keil文件的 main.h 里面就会写: /* Private defines ----------------------------------------------*/ # define LED_Pin GPIO_PIN_5 # define LED_GPIO_Port GPIOB 2

RT-Thread Studio 使用笔记(二):如何使用SPI设备

只愿长相守 提交于 2020-07-28 13:09:15
写在最前 使用RT-Thread Studio开发环境开发STM32单片机程序,与MDK使用env有一定的差别,对于刚开始使用的程序员来说,主要是找不到配置选项在哪里,上一篇介绍了TIM设备的使用方法,这篇介绍SPI的使用方法,流程与TIM类似。 大致总结为以下几个步骤: 在RT-thread settings中使能对应的驱动框架 在stm32f4xx_hal_conf.h中使能对应的模块(HAL_XX_MODULE_ENABLED) 在board.h中启用外设类型对应的宏定义板级支持,通道号以及IO口等参数(BSP_USING_XX) 使用STM32CubMx生成对应的初始化代码,并考入board.c中(HAL_XX_MspInit) 进行应用层设备初始化,使用设备 使用SPI设备示例 在RT-thread settings中使能对应的驱动框架,使能SPI。 在stm32f4xx_hal_conf.h中使能对应的模块(HAL_XX_MODULE_ENABLED) 在board.h中启用外设类型对应的宏定义板级支持,通道号以及IO口等参数(BSP_USING_XX) 使用STM32CubMx生成对应的初始化代码,并考入board.c中(HAL_XX_MspInit) 进行应用层设备初始化,使用设备(W5100S为例) /*******************************