cmd执行命令卡住了
windows cmd->属性->选项->编辑选项
取消 快速编辑模式
cmd默认开启了“快速编辑模式”,只要当鼠标点击cmd任何区域时,就自动进入了编辑模式,之后的程序向控制台输入内容甚至后台的程序都会被阻塞。
我们在控制台里面回车或者右键鼠标后,自动退出了编辑模式。因此,控制又恢复输出内容,服务端又正常了。
选择快速编辑模式的时候,鼠标不小心点到cmd某个位置,都可能让正在运行的进程都卡住,直到按下回车后,会跳出一堆。
网络查询、嗅探
[toc]
查自己的公网ip12345longtao@longtaoXiaoXinPro13-2020:~$ curl http://members.3322.org/dyndns/getip150.118.52.133# 或者longtao@longtaoXiaoXinPro13-2020:~$ curl ip.150.118.52.133
查询域名的ip地址12345678910longtao@longtaoXiaoXinPro13-2020:~$ nslookup www.baidu.comServer: 127.0.0.53 #dns服务器Address: 127.0.0.53#53Non-authoritative answer:www.baidu.com canonical name = www.a.shifen.com.# 域名实际对应的主机名记录Name: www.a.shifen.com Address: 150.101.49.12 #域名负载均衡Name: www.a.shifen.comAddress: 150.101.49.11
查询目标ip对应的mac地 ...
什么是不经意传输
简述不经意传输(Oblivious Transfer,OT)指发送方发送了许多信息中的其中一个给接收方,但是发送方不知道接收方接受的是哪一个信息
背景不经意传输是密码学的一类协议。
不经意传输的第一种形式是由Michael Oser Rabin(1976年图灵奖-非确定自动机),这种形式的不经意传输发送方会有 1/2 的概率将消息发送给接收方,而发送方不知道接收方是否接收到该消息,传输方案基于RSA加密算法
1-2不经意传输(1-n不经意传输)是一种更为常用的不经意传输方案,这种方案被Oded Goldreich、Abraham Lempel和Shimon Even发展成为安全多方计算协议,在这种协议下用户仅能获得数据库中的一个元素,而服务器不知道用户查询了哪一个元素。不经意传输是私有信息检索的加强版本。
获取系统信息
版本信息uname工具uname工具是对sys/utsname函数的一个封装
123456789-a或--all:显示全部的信息;-m或--machine:显示电脑类型;-n或-nodename:显示在网络上的主机名称;-r或--release:显示操作系统的发行编号;-s或--sysname:显示操作系统名称;-v:显示操作系统的版本;-p或--processor:输出处理器类型或"unknown";-i或--hardware-platform:输出硬件平台或"unknown";-o或--operating-system:输出操作系统名称;
简单实例如下
123456789101112131415161718192021#include "stdio.h"#include "sys/utsname.h"int main(){ struct utsname uts; /* Put information about the system in NAME. */ uname(& ...
幽灵熔断
[toc]
概要Meltdown/Spectre被发现于2018年, 是很有影响力的cpu漏洞。
Meltdown(熔断)对应编号恶意数据缓存加载 CVE-2017-5754 。
Spectre (幽灵)对应编号边界检查绕过 CVE-2017-5753 、分支目标注入 CVE-2017-5715 。
Meltdown 影响几乎所有的 Intel CPU(从1995年起)以及部分 ARM CPU。 Spectre 拥有更广的影响范围,在 Meltdown 的情况下,恶意程序可读取某些自身无权限访问的数据。利用此漏洞低权限用户可以访问到本身无权限访问的内容,例如用户密码、加密密钥。
Spectre 恶意利用程序,可导致用户的帐号、密码泄漏。在公共云服务器上,可能打破界限,从一台虚拟机器获取到另一个用户的权限。
名词指令周期:CPU取出一条指令并执行该指令所需的时间称为指令周期,指令周期的长短与指令的复杂程度有关,一般多个CPU周期组成指令周期。
CPU周期:又称机器周期,通常用从主存读取一条指令的最短时间来规定CPU周期,一般多个时钟周期组成CPU周期
时钟周期:时钟周期是处理操作的最基本 ...
内置库re
re是python中的正则表达式内置库
修饰符
描述
re.I
IGNORECASE,忽略大小写
re.L
LOCALE,只对8位字节有效,不建议使用,由当前语言区域决定 \w, \W, \b, \B 和大小写敏感匹配
re.U
UNICODE,根据Unicode字符集解析字符。由当前语言区域决定 \w, \W, \b, \B 和大小写敏感匹配
re.M
MULTILINE,多行匹配,影响 ^ 和 $
re.S
DOTALL,.可以匹配除换行符外所有内容
re.X
VERBOSE,忽略空格和注释
DOS与DDOS
TCP报头中一共有六个标志位:URG/ACK/PSH/RST/SYN/FIN。SYN 表示建立一个方向的连接。ACK 收到数据或请求后发送响应时发送ACK报文。RST 关闭异常连接FIN 表示关闭连接 PSH 发送端需要发送一段数据,这个数据需要接收端一收到就进行向上交付。而接收端在收到PSH标志位有效的数据时,迅速将数据交付给应用层。所以PSH又叫急迫比特。 但是现在已经不需要将数据交付给应用层了,因为这些效果在TCP栈已经可以自行处理这些问题了。URG URG成为紧急指针,意为URG位有效的数据包,是一个紧急需要处理的数据包,需要接收端在接收到之后迅速处理。
dos全称是denial of service,dos攻击是使目标计算机或网络无法提供正常服务(拒绝服务)
产生dos攻击效果的方式有很多
syn攻击
半连接攻击,向服务器端连续发送大量只有SYN标志的TCP链接请求,服务器会吧这些半连接排到链接缓冲区(Backlog queue)中,缓冲区满,无法接受新的请求,其他合法用户的请求就会被拒绝
rst攻击
自己攻击自己
消耗资源攻击(带宽、磁盘等)
泛洪攻击 ...
内存超分原理
KVM中内存也是允许过载使用(over-commit)的,KVM能够让分配给客户机的内存总数大于实际可用的物理内存总数。由于客户机操作系统及其上的应用程序并非一直100%地利用其分配到的内存,而且宿主机上的多个客户机一般也不会同时达到100%的内存使用率,所以内存过载分配是可行的。一般来说,有如下三种方式来实现内存的过载使用。
内存交换(swapping):用交换空间(swap space)来弥补内存的不足。
气球(ballooning):通过virio_balloon驱动来实现宿主机Hypervisor和客户机之间的协作来完成。
页共享(page sharing):通过KSM(Kernel Samepage Merging)合并多个客户机进程使用的相同内存页。
其中,第一种内存交换的方式是最成熟的(Linux中很早就开始应用),也是目前被广泛使用的,不过,它相比于KSM和ballooning的方式效率较为低一些。
SYN攻击
SYN:同步序列编号(***Synchronize Sequence Numbers***)。
是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递
TCP报文首部TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.3.4.16 而端口号为80,那么得到的套接字为192.3.4.16:80。
源端口和目的端口,各占2个字节,分别写入源端口和目的端口;
序号,占4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号。例如,一段报文的序号字段值是 301 ,而携带的数据共有100字段,显然下一个报文段(如果还有的话)的数据序号应该从401开始;
确认号,占4个字节,是期望收到对方下一个报文的第一个数据字节的序号。例如,B收到了A发送过来的 ...
网卡驱动
驱动程序(Device Driver)全称为“设备驱动程序”,是一种可以使计算机中央处理器——CPU控制和使用设备的特殊程序,相当于硬件的接口,操作系统通过这个接口,控制硬件设备的工作。
网卡设备与字符设备和块设备不同, 网络设备并不对应于/dev目录下的文件,不过会存放在/sys/class/net目录下
Linux系统对网络设备驱动定义了4个层次, 这4个层次到下分为:
网络协议接口层:
实现统一的数据包收发的协议,该层主要负责调用dev_queue_xmit()函数发送数据, netif_rx()函数接收数据
网络设备接口层:
通过net_device结构体来描述一个具体的网络设备的信息,实现不同的硬件的统一
设备驱动功能层:
用来负责驱动网络设备硬件来完成各个功能, 它通过hard_start_xmit() 函数启动发送操作, 并通过网络设备上的中断触发接收操作,
网络设备与媒介层:
用来负责完成数据包发送和接收的物理实体, 设备驱动功能层的函数都在这物理上驱动的
层次结构如下图所示: