Wi-Fi PWM
1、Deauth因为WIFI管理数据帧没有被加密,导致攻击者可以伪造管理帧,从而让攻击者可以任意发送“取消认证”数据包来强行切断AP与客户端的连接(说白点就是无脑洪水堵塞攻击,一直切断对方设备与机器的连接,从而导致对方设备无法正常连接)。
2、Beacon:信标帧(Beacon)数据包用于宣告接入点,通过不断发送信标帧数据包(说白点就是创建许多新的wifi干扰对方的正常连接),由于目前部分设备自带SSID检测,所以我们使用随机生成SSID以达到目的。
3、Probe-response:探测请求帧由用户设备发送,以询问一个已知网络是否在附近。通过请求您在SSID列表中指定的网络,以此来混淆WiFi跟踪器。(说白点就是手机给已知WiFi网络发送一个probe-request帧,可提供网络服务的接入点将响应一个probe-response帧,你的手机将会跟这个响应接入点进行连接,所以看起来跟Deauth攻击差不多)。
(4)钓鱼攻击:通过伪造wifi使受害者连接假冒wifi,通过钓鱼页面等一系列手法可以实现监听流量,获取原真实wifi密码等等,在这里不多赘述和展示了。
漏洞产生原因:802. ...
c++类
类
构造函数
和类名相同,无返回值的叫做构造函数。
eg.
在这个例子里,创建了Circle的类,并创建了2个构造函数Circle()(构造函数前无函数声明),2个构造函数分别有参数和无参数,重载函数对应初始值和设定值。
当创建对象circle1执行Circle circle1时会执行构造函数,无参数传入则调用无参的构造函数。
当创建对象circle2执行Circle circle2(25)时会执行构造函数,有参数传入则调用有参对应的的构造函数。
this->用于指向对象内的变量,可以区分。
eg
1fan(int speed,bool on,double radius){this->speed = speed,this->on = on,this->radius = radius;}
UML类图
析构函数
constructor 构造函数(可以多个,可以重载)
destructor 析构函数(只有一个,不能带参)
类中,系统自带构造函数和析构函数,如果手动创建,则不自带。
~类名(){}归还类所占用的空间
...
期末学习总结
9b315a3d4c3d18cdcacd57aca3d553ccdb5f245ea498c90211ef88aef37d068cc10ae045b8bbe76fcbbab959234ddddb4284b3acf54c7deb02a55dfaf1a75cb583390205996d3d2f7ea5d0e31c65fb4a8bfe5a1e44c9e4f16e6722e48cebec4864b1a0893bfb766ba192c9abb0a68545e5a074cd6e611af76642f53aa28c184b600aab9b1d480413b1f823681e11808755d2dc8f7838c94d91f6d6abfeed8cd67f48cdd565dc540d7d7db1acf1143e078a632ad125e851036fc539ba1b724451065c1e1420a8b35fcf0acfc8530e9f884e9aa70aaba6e3f5057f052045a50bf6efe2fd5cba3bf1ce642440b7ffc1edf5df412d68e974a877b ...
c++ 结构体
结构体
C++中的结构体(Struct)是一种用户定义的数据类型,用于组合不同类型的数据成员。结构体与类(class)相似,但默认访问权限是public,而类的默认访问权限是private。
成员独立占空间
12345678910struct student //结构体 + 结构名{ // 成员 // 类型名 int num; char name[20]; char sex; int age; char addr[30];};
访问方式
12345//struct + 结构名 + 变量名;struct Book b1,b2;//结构体变量名.结构体成员类型名b1.price=12.00;b2.price=20.00;
struct student stu[5];
创建stu1,stu2,stu3,…stu5 student的结构体。
\t制表符
制表符(Tab)是一种控制字符,用于在文本中创建水平间距。在C++和许多其他编程语言中,制表符可以使用转义序列 “\t” 来表示。当你在字符串中使用 “\t” 时,它会被解 ...
PID控制算法
PID(proportion integration differentiation)其实就是指比例,积分,微分控制。
总的来说,当得到系统的输出后,将输出经过比例,积分,微分3种运算方式,叠加到输入中,从而控制系统的行为,下面用一个简单的实例来说明。
u(t)=Kp err(t) + Ki ∗∫err(t) dt + Kd [de(t)/d(t)]
比例控制算法
我们先说PID中最简单的比例控制,抛开其他两个不谈。还是用一个经典的例子吧。假设我有一个水缸,最终的控制目的是要保证水缸里的水位永远的维持在1米的高度。假设初始时刻,水缸里的水位是0.2米,那么当前时刻的水位和目标水位之间是存在一个误差的error,且error为0.8.这个时候,假设旁边站着一个人,这个人通过往缸里加水的方式来控制水位。如果单纯的用比例控制算法,就是指加入的水量u和误差error是成正比的。即
u=kp*error
假设kp取0.5,
那么t=1时(表示第1次加水,也就是第一次对系统施加控制),那么u=0.5*0.8=0.4,所以这一次加入的水量会使水位在0.2的基础上上升0.4,达到0.6.
接着,t=2 ...
c++字符
123456789char s = 'a';char st[50] ="abcd"; //后面无赋值的为'/0'即字符串结束符//char st[50] = {"a","b","c","d"};//char st[] ="abcd"; //末尾有/0,长度为5字节//char st[] = {"a","b","c","d"}; //末尾没有/0,长度为4字节char *p = "abcd";//char *p = {"a","b","c","d"};不能使用这种方法定义指针字符cin>>st; //输入后会覆盖cout& ...
hexo使用moc3模型的live2d的看板猫
先看效果
使用插件hexo-oh-my-live2d
在hexo根目录运行
1npm install hexo-oh-my-live2d
以安装hexo-oh-my-live2d
在_config.yml 的 skip_render 添加模型文件夹 防止编译出错
12skip_render: - live2d-model-xiaohei/**
修改_config.yml文件
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748OhMyLive2d: enable: true CDN: https://npm.elemecdn.com/[email protected]/dist/index.min.js option: source: 'https://npm.elemecdn.com' mobileShow: true # 手机端是否展示 sayHello: false transitionTime: 10 ...
c++指针
123456789101112int m,n;m=100;int *pm;//定义一个指针变量pm=&m;//取地址并传递cout<<pm<<" "<<*pm;//*间接引用运算符//pm = 0x28fef8//*pm 访问指针所指向的变量,即m值100*pm=300;//间接访问m,改变值
1234567int *pm=&n; //*pm定义指针*pm=&m; //*pm表示间接引用,*pm相当于n//错误,一级指针无法做到,相当于将m的地址赋值给n*pm=m; //将m的值赋值给npm=&m; //改变pm指针变量的指向,使pm指针指向m的地址
12345678910int a[10]={1,2,3,4};int *p=a;//p起始指向a[0]for(;p<a+10;p++)//p++会使p=a[0]变为p=a[1]...{ cout<<*p<<" ";}//1 2 3 ...
c++数组
数组
1234int a[10]; //每个元素4字节,[10]为定义数组长度,索引由a[0]开始,到a[9]double b[10]; //定义浮点数元素的数组
1234567const int LENGTH = 30;int mylist[LENGTH],sum;for(int i=0;i < LENGTH;i++){ cin >> mylist[i]; sum += mylist[i];}
123456789int a[10];for(int i=0;i<10;i++){ a[i] = i+100;}for(int i=0;i<10;i++){ cout<<a[i]<<endl;}
1234567891011121314151617181920int main(){ int a[10]; int sum=0,score=0,j=0; for(int i=0;i<10;i++) { ...
学习计划(study plan)
624a0db522e39a71c80caab44ba25915dc63e331bf96625553bfd9942347b33a49c89024a4213ad2f85b8387c1aba353c0321d2a6a6d4ee4f3b447d6008821d79b4e3c31579f8e5a2750ab70a736e8270f4bfdb546a51e4ba9ae870ef4647906be756b3a4a7f37c85f95be9f37f44321f7857030357646d2f4d8327d9d5890d842c95fb27ce7517f009363f13dd70142776b77bafe51fe54e51995f8fc1f7babc80826a8238ceb7ff739173b7449b80510740860a997dd0afdda6a3b316bdf961b867298f50062f654528b1c8e6830d319caa363548c94a06cda0608e1fb8011beaf053a00b4de1bd4160a5b0b7ad4151da5c83e71d308937 ...
数据库加载中