当前位置: 首页 > news >正文

网络安全内容整理二

网络嗅探技术

网络监听

网络监听,也称网络嗅探(Network Sniffing):在他方未察觉的情况下捕获其通信报文、通信内容的技术

网卡的工作模式:

1.广播模式(Broadcast Mode):网卡能够接收网络中的广播信息
2.组播模式(Multicast Mode):网卡能够接收组播数据
3.单播模式(Unicast Mode):只接收目的地址匹配本机MAC地址的数据帧
4.混杂模式(Promiscuous Mode,监听模式):网卡接收一切数据帧,无论其目的MAC地址是什么

嗅探的工作机制:

1.驱动程序支持:直接与网卡驱动程序接口的驱动模块,作为网卡驱动与上层应用的“中间人”,将网卡设置成混杂模式,捕获数据包并从上层接收各种抓包请求
2.分组捕获过滤机制:对来自网卡的数据帧进行过滤,将符合要求的数据交给上层

  • 网卡上传的数据帧有两个去处:正常的协议栈或分组捕获过滤模块,对于非本地的数据包,前者会丢弃,后者则根据上层应用要求来决定是否丢弃
  • 许多操作系统都提供分组捕获机制,如Windows平台上主要有NPF过滤机制,Linux中的SOCK_PACKET类型套接字,BSD系统中的BPF(Berkeley Packet Filter)

3.共享式局域网的监听实现方法

交换式局域网的监听技术

1.溢出攻击

  • 交换机要维护一张MAC地址与端口的映射表(CAM)
  • 维护该表的内存有限。如用大量的错误MAC地址的数据帧对交换机进行攻击,交换机就可能出现溢出
  • 这时交换机就回到广播方式——向所有的端口发送数据包,监听就很容易了(ARP过载, MAC泛洪)

2.ARP欺骗

  • 计算机维护一个IP-MAC地址对应表,该表随着ARP请求/响应不断更新
  • 通过ARP欺骗,改变表里的对应关系,攻击者可以成为被攻击者与交换机之间的“中间人”,使交换式局域网中的所有数据包都流经攻击者的网卡
监听的防御

1.被动防御措施,如采用安全的网络拓扑结构和数据加密技术。注意重点区域的安全防范

  • 网络分段越细,嗅探器收集的信息越少。将网络分成一些小的网络,数据包只能在该网段内部被嗅探。嗅探器不能跨过的网络设备:交换机、路由器。网络分段需要昂贵的硬件设备,只适应于中小的网络
  • VLAN:使网络隔离不必要的数据传送,一般可采用20个工作站为一组,这是比较合理的数字

2.数据通道加密:数据通过事先建立的加密通道进行传输,账号、口令等敏感信息将受到严密保护。主要有

  • SSH(Secure Shell)
  • SSL (Secure Socket Layer,安全套接字应用层)
  • VPN

3.数据内容加密:采用被证实较为可靠的加密机制对传输的邮件和文件进行加密

  • PGP等
交换网络下防范监听的措施

1.主要防止ARP欺骗及ARP过载
2.不要把网络安全信任关系建立在单一的IP或MAC基础上,理想的关系应该建立在IP-MAC的对应关系上
3.使用静态ARP或者IP-MAC对照表代替动态的ARP或者IP-MAC对应表——禁止自动更新,使用手动更新
4.定期检查ARP请求:使用ARP监视工具如ARPWatch等监视并探测ARP欺骗
5.制定良好的安全管理策略,加强用户安全意识


口令破解

口令破解方法:

1.暴力破解(brute force):穷举,速度慢
2.字典攻击:根据用户信息建立起一个用户可能使用的口令列表文件,速度快
3.组合攻击:在字典列表的基础上增加几个字母或数字进行攻击
许多情况下用户喜欢在用户名后加几个字母或数字作为密码,如usr→usr2324
4.其他方式:例如

  • 社会工程学(social engineering)
  • 网络嗅探/木马/口令蠕虫
  • 搜索垃圾箱
windows的口令文件

1.windows: 采用安全账户管理器SAM(Security Account Manager)机制

2.SAM文件:在%systemroot%system32\config目录下

  • 含有本地系统或所在控制域上所有用户名和口令的Hash值
  • 创建口令Hash有两种方法:
    LAN Manager (LM)—最早使用的密码哈希算法之一
    NT LAN Manager v2(NTLMv2)—Windows 2000、XP、Vista、7和10等

3.安全标识RID:在账号创建时被创建;账号删除,RID也同时删除;即使用户名相同,每次创建时获得的RID也不同

4.Windows系统下的hash密码格式为:
用户名:RID:LM-HASH值:NT-HASH值
例: Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::
用户名:Administrator RID:500 LM-HASH值:C8825DB10F2590EAAAD3B435B51404EE NT-HASH值:683020925C5D8569C23AA724774CE6CC

5.LM哈希的安全缺陷:

  • DES算法密钥太短(56bit)
  • 14个ASCII字符组成的密码,有95^14种可能性,而一旦将其腰斩为两组7位的字符串,就降低为95^7种,不区分大小写,将进一步降低为69^7种。因此密码被保存成LM哈希,在暴力破解面前将不堪一击
  • 如果密码长度<=7,则第二部分hash为固定值0xAAD3B435B51404EE,因此很容易确定密码长度范围
  • Hash值在通过网络发送到服务器时,没有进行salting操作,容易遭受中间人攻击和重放攻击
Windows系统的登录与身份认证

1.登录Windows系统主要包括两种方式,其对应的身份认证方式也不相同

  • 交互式登录:向本地计算机或域账户确认用户的身份
    本地账户登录本地计算机:可以使用存储在本地SAM中的口令散列进行登录——用户输入明文口令,系统对口令使用相同的加密散列过程,并将散列结果与保存的散列进行比较,如果匹配,则通过验证
    域账户登录:默认使用Kerberos V5
  • 网络登录:对用户尝试访问的网络服务或资源提供用户验证。可以使用多种网络身份验证机制,如Kerberos V5、安全套接字/传输层安全(Secure Socket Layer/Transport Layer Security,SSL/TLS)以及与Windows NT 4.0兼容的NTLM机制

2.NTLM的身份认证机制:基于挑战/响应机制(C/R,Challenge/Response)

破解工具

1.SAMInside

  • 支持Windows NT/2000/XP/Vista/7操作系统
  • 可进行字典破解,暴力破解,掩码破解和彩虹表破解
  • 导出PWDUMP格式密码文件

2.Ophcrack:基于彩虹表的windows密码破解软件
3.L0phtCrack
4.John the Ripper
5.Cain & Abel 可破解MySQL,MSSQL等数据库密码

Unix/Linux密码

采用用户名密码存储加密机制

1./etc/passwd: 包含了用户名、用户的真实姓名、标识信息以及每个用户的基本信息,各个域之间用”:”隔开
2./etc/shadow: 影子密码文件,包含了加密过的密码以及密码失效时间,只有root用户才能读取
3.组标识符GID:

  • 每个Unix用户都属于一个或者几个组
  • 每个用户都隶属于一个主用户组,存储在/etc/passwd文件中
  • 可以利用组来限制一些用户对敏感信息或者特殊许可的应用程序的访问权
    /etc/group:列出了计算机上所有的组
    /etc/gshadow:计算机上所有组的群组影子密码文件
文件破解

1.offiice文件加密机制:采用RC4对称加密算法对文件进行加密
2.破解:可用破解工具ARPR(Advanced RAR Password Recovery)

口令破解防御

1.使用安全加密机制
2.使用强口令


欺骗攻击与防御

欺骗:冒充身份通过认证以骗取信任的攻击方式

  • 攻击者针对认证机制的缺陷,将自己伪装成可信任方,从而与受害者交流,以获取信息或者展开进一步攻击
arp欺骗与预防

1.欺骗
在同一个局域网内,主机之间是通过mac地址来相互识别的,但是网络层过来的数据包是ip地址标识的,所以会调用arp协议将ip地址转换为mac地址,然后根据这个mac地址进行数据包的转发,而arp协议原理大概可以理解为去查一份ip-mac地址映射表。

通常情况下,这个表是没有问题的,但是,若攻击者向被攻击者和网关发送相应的伪造的ARP应答包,更改了两者的ARP表。当被工具这和网关进行通信时,根据已更改的ARP表,所有数据都将流向攻击者。通常攻击者还会做一个流量转发,这样被攻击者才不会察觉到被攻击。

2.防御

  • MAC地址绑定
  • 使用静态ARP缓存(arp -s)
  • 使用ARP服务器(确保该服务器不被控制)
  • 使用ARP欺骗防护软件,如ARP防火墙
  • 及时发现进行ARP欺骗的主机,并将其隔离

3.原理(ARP的缺陷):

  • 主机收到应答包后不验证自己是否发送过对应的ARP请求
  • 不验证该回应包是否可信
  • 直接用应答包里的信息替换ARP缓存表中的原有信息

4.检测

  • 网络频繁掉线
  • 网络突然莫名其妙的慢
  • 使用arp –a命令发现网关的MAC地址与真实的网关MAC地址不同
  • 使用网络嗅探软件发现局域网存在大量ARP响应包

IP欺骗与防御

1.IP协议:非面向连接,两台计算机的信任连接主要依靠双方的IP地址

2.IP欺骗的方式

(1)简单的IP地址更改:攻击者将IP地址改成其他主机的地址(攻击效果很一般)

  • TCP:A将收到一无所知的会话回复,将丢弃数据包,无法完成一次完整的TCP连接
  • UDP:无连接,数据包会发送到A,导致拒绝服务

也称盲目飞行攻击(flying blind attack)/单向攻击(one-way attack)

(2)源路由攻击(source routing):攻击者可以使用假冒地址A向受害者B发送数据包,
并指定了宽松的源站选路或者严格路由选择(如果确定能经过所填入的每个路由的话),并把自己的IP地址填入地址清单中。这样,数据包必然会经过攻击者。

  • 宽松的源站选择(LSR):发送端指明数据包必须经过的IP地址清单,但如果需要也可以经过其他地址
  • 严格的源站选择(SRS):发送端指明数据包必须经过的确切IP地址,数据包如果没有经过这一确切路径,数据包将被丢弃,并返回ICMP报文

(3)TCP会话劫持(Session Hijack):接管现存动态会话的过程,即攻击者可以替代原来的合法用户,同时监视并掌握会话内容

  • 会话劫持结合了嗅探及欺骗技术
  • 会话劫持一般伴随着拒绝服务DoS,且不依赖于操作系统
  • 会话劫持的关键之一—TCP序列号猜测

会话劫持过程:

  • 发现攻击目标:必须能检测目标主机的通信流
  • 确认会话状态:会话劫持一般在流量达到高峰时进行
    攻击者可以选择的会话较多
    掉线不容易引起用户的怀疑
  • 猜测序列号:
    TCP仅通过SEQ/ACK序列号来区分正确/错误数据包,以某种方式扰乱客户机的SEQ/ACK,使服务器不再相信客户机的正确数据包,然后伪装成客户机,使用猜测的正确的SEQ/ACK序列号与服务器通信
    扰乱方法:恰当的时间在通信流中插入一个欺骗包,服务器接收后更新ACK;客户机对此毫无察觉,依然使用旧的SEQ通信
  • 使客户主机下线:DoS攻击
  • 接管会话:攻击者在受害服务器上留下后门(创建账号)

3.IP欺骗的防御

  • 防范基本的IP欺骗:
    入口过滤:不允许任何从外面进入网络的数据包使用单位内部地址作为源地址
    出口过滤:从内网主机到内网主机的流量不允许流到本网络之外
  • 防范源路由欺骗:设置路由器禁用源路由
  • 防范会话劫持(没有有效的办法可以根本上防范会话劫持攻击,只能尽量减少攻击带来的危害):
    加密:
    使用安全协议:使用SSH,而不使用Telnet
    限制保护:允许外网到内网的信息越少,内网越安全

DNS欺骗与防御

1.DNS欺骗的原理及实现步骤:

  • 当向本地DNS服务器查询域名时,如果服务器缓存中已有相应记录,就直接将这条记录返回给用户
  • DNS欺骗的关键是在DNS服务器的本地Cache中缓存一条伪造的解析记录

2.攻击(两种情况)

(1)攻击者可以控制本地域名服务器

  • 攻击者控制本地域名服务器(假定是163.com域的权威),在其数据库中增加一个附加记录,将攻击目标的域名(例如www.example.com)指向攻击者的欺骗IP
  • 用户向该域名服务器发送对攻击目标的域名解析时,将得到攻击者的欺骗IP
  • 现实情况:攻击者往往无法控制DNS服务器

(2)攻击者无法控制DNS服务器
可以控制DNS服务器所在网络的某台主机,并可以监听该网络中的通信情况。黑客要对远程的某DNS服务器进行欺骗:

  • 首先,黑客要冒充某个域名服务器的IP地址
  • 其次,黑客要能预测目标域名服务器所发送DNS数据包的ID号

注:确定目标DNS服务器的ID号为DNS欺骗攻击的关键

(3)DNS数据通过UDP(53端口)协议传递,通信过程往往是并行的,即域名服务器之间同时可能会进行多个解析过程。在DNS报文里面。DNS报文格式最开始是所谓ID域,这个ID就是用于区别不同会话过程的,也就是说,不同的解析会话,采用不同的ID号。

(4)如何获取ID号

  • 在某个DNS服务器的网络中进行嗅探,他只要向远程DNS服务器发送一个对本地某域名的解析请求,得到来自目标DNS服务器的请求数据包(因为远程DNS服务器肯定会转而请求本地的DNS服务器),攻击者就可以得到想要的ID号
  • 若无法监听拥有DNS服务器的网络,可用下面的方法:

1.向目标DNS服务器请求某个不存在域名地址(但该域存在)
2.冒充所请求域的DNS服务器,向目标DNS服务器连续发送应答包,包中的ID号依次递增
3.一段时间后,再次向目标DNS服务器发送针对该域名的解析请求,如果得到返回结果,就说明目标DNS服务器接受了刚才的伪造应答,否则,再次尝试

3.DNS欺骗的局限性:

  • 攻击者不能替换缓存中已经存在的记录
  • DNS服务器存在缓存刷新时间问题

4.DNS欺骗的防御

  • 使用最新版本DNS服务器软件并及时安装补丁
  • 关闭DNS服务器的递归功能:利用缓存中的记录信息或通过查询其它服务器获得信息并发送给客户机,称为递归查询——容易导致DNS欺骗
  • 限制区域传输范围:限制域名服务器做出响应的地址、限制域名服务器做出响应的递归请求地址、限制发出请求的地址
  • 限制动态更新
  • 采用分层的DNS体系结构

电子邮件欺骗及防御

1.电子邮件欺骗的原理
邮件系统组成:

  • 用户代理(User Agent):用户端发信和收信的程序,负责将信件按照一定的标准包装,然后送到邮件服务器,或由邮件服务器收回
  • 传输代理(Transfer Agent):负责信件的交换和传输,将信件传送至适当的邮件服务器
  • 投递代理(Delivery Agent):将信件分发至最终用户的邮箱

正常情况下,邮件会将发送者的名字和地址包括进邮件头中,但有时发送者不希望收件者知道是谁发的(匿名邮件)

  • 最简单的方法:改变电子邮件发送者的名字,但通过邮件头的其它信息仍能够跟踪发送者
  • 彻底的方式:让其他人发送这个邮件,发信地址就变成转发者的地址。现在因特网上有大量的匿名服务器

2.电子邮件欺骗的方法

  • 利用相似的电子邮件地址
  • 直接使用伪造的E-mail地址
    SMTP协议的致命缺陷——遵循过于信任的原则:不对邮件发送者的身份进行验证
    可以随意构造发件人地址来发送邮件
  • 远程登录到SMTP端口(25)发送邮件

3.电子邮件欺骗的防御
(1)树立风险意识,不要随意打开一个不信任的邮件
(2)从如下角度考虑防范方法:

  • 邮件接收者:合理配置邮件客户端,使总能显示完整的电子邮件地址,而不仅仅显示别名,完整的电子邮件地址能提供表明正在发生一些不平常事情的一些迹象
  • 邮件发送者: 如使用foxmail或者outlook之类的邮件客户端,保护好邮件客户端,防止他人修改客户端设置
  • 邮件服务器: 采用SMTP身份验证机制:新SMTP协议规范新增2个命令(VRFY,EXPN) ,对发件人进行身份认证,一定程度上降低了匿名/垃圾邮件的风险
  • 邮件加密:
    OpenPGP(RFC 4880):【PGP (Pretty Good Privacy,相当好的隐私,商业版)】 【GnuPG(GPG,C): 开源项目, 支持OpenPGP,S/MIME】
    S/MIME(RFC 2311,Secure/Multipurpose Internet Mail Extension)安全/多用途因特网邮件扩展

Web欺骗与防御

1.欺骗:网络钓鱼等,不多说。
2.防御:

  • 配置网络浏览器使它总能显示目的URL,并且习惯查看它
  • 检查源代码,如果发生了URL重定向,就一定会发现。对普通用户来说是不切实际的
  • 使用反网络钓鱼软件
  • 禁用JavaScript、ActiveX或者任何其他在本地执行的脚本语言
  • 确保应用有效和能适当地跟踪用户。无论是使用cookie还是会话ID,都应该确保要尽可能的长和随机
  • 培养用户的安全意识和对开发人员的安全教育

相关文章:

网络安全内容整理二

网络嗅探技术 网络监听 网络监听,也称网络嗅探(Network Sniffing):在他方未察觉的情况下捕获其通信报文、通信内容的技术 网卡的工作模式: 1.广播模式(Broadcast Mode):网卡能够接收网络中的广播信息 2.组播模式(Multicast Mo…...

解决git did not exit cleanly (exit code 128)问题

解决 git did not exit cleanly (exit code 128)问题 1、错误描述2、解决方法2.1 方法一2.2 方法二 1、错误描述 使用TortoiseGit进行操作时,总是提示下述错误。 2、解决方法 2.1 方法一 打开 TortoiseGit -> Settings 点击 Network&…...

Linux入门攻坚——40、Linux集群系统入门-lvs(1)

Cluster,集群,为了解决某个特定问题将多台计算机组合起来形成的单个系统。 这个单个集群系统可以扩展,系统扩展的方式:scale up,向上扩展,更换更好的主机;scale out,向外扩展&…...

momentum 和 weight_decay 的区别

momentum 和 weight_decay 的区别 两者在优化器中的作用不同,主要体现在优化的目的和机制上。 1. momentum(动量) 作用:加速收敛并减少优化过程中的震荡。 机制: momentum 是用于在梯度下降中积累动量的机制。它通过在每一步中综合之前的更新方向,帮助模型在陡峭区域加速…...

Vue 3 + TypeScript进阶用法

在掌握了 Vue 3 和 TypeScript 的基本使用后,你可以进一步探索一些进阶特性和最佳实践。这些包括更复杂的类型定义、自定义 hooks、全局状态管理等。下面是一些关键点: 1. 更复杂的类型定义 Props 和 Emits 的类型 对于组件的 props 和 emits&#xf…...

AbutionGraph-时序向量图谱数据库-快速安装部署

运行环境 1)操作系统 最好是使用CentOS7或者Ubuntu18以上系统,不满足的话请升级系统内核gcc版本至8以上版本。 支持所有国产主流操作系统银河麒麟、统信OS、深度等等,均做过兼容性测试; 2)CPU 为确保数据库每个进…...

Delphi-HTTP通讯及JSON解析

HTTP POST 请求函数 HttpPost 此函数用于发送带有JSON内容的POST请求到指定的URL,并接收服务器响应。它包括了必要的异常处理,确保在遇到错误时可以记录日志。 参数: sUrl:目标URL。sJson:要发送的JSON格式字符串。 返…...

Postgres 如何使事务原子化?

原子性(“ACID”意义上的)要求 对于对数据库执行的一系列操作,要么一起提交,要么全部回滚;不允许中间状态。对于现实世界的混乱的代码来说,这是天赐之物。 这些更改将被恢复,而不是导致生产环境…...

[Vue3]简易版Vue

简易版Vue 实现ref功能 ref功能主要是收集依赖和触发依赖的过程。 export class Dep { // 创建一个类,使用时使用new Depconstructor(value) { // 初始化可传入一个值this._val value;this.effects new Set(); //收集依赖的容器,使用set数据结构}…...

ElasticSearch学习记录

服务器操作系统版本:Ubuntu 24.04 Java版本:21 Spring Boot版本:3.3.5 如果打算用GUI,虚拟机安装Ubuntu 24.04,见 虚拟机安装Ubuntu 24.04及其常用软件(2024.7)_ubuntu24.04-CSDN博客文章浏览阅读6.6k次&#xff0…...

LabVIEW算法执行时间评估与Windows硬件支持

在设计和实现复杂系统时,准确估算算法的执行时间是关键步骤,尤其在实时性要求较高的应用中。这一评估有助于确定是否需要依赖硬件加速来满足性能需求。首先需要对算法进行时间复杂度分析并进行实验测试,了解其在Windows系统中的运行表现。根据…...

经验帖 | Matlab安装成功后打不开的解决方法

最近在安装Matlab2023时遇到了一个问题: 按照网上的安装教程成功安装 在打开软件时 界面闪一下就消失 无法打开 但是 任务管理器显示matlab在运行中 解决方法如下: matlab快捷方式–>右键打开属性–>目标 填写许可证文件路径 D:\MATLAB\MatlabR20…...

Ubuntu Linux 文件、目录权限问题

本文为Ubuntu Linux操作系统- 第五弹 此文是在上期文件目录的内容操作基础上接着讲权限问题 上期回顾:Ubuntu Linux 目录和文件的内容操作 文件访问者身份与文件访问权限 Linux文件结构 所有者(属主)所属组(属组)其他…...

LabVIEW密码保护与反编译的安全性分析

在LabVIEW中,密码保护是一种常见的源代码保护手段,但其安全性并不高,尤其是在面对专业反编译工具时。理论上,所有软件的反编译都是可能的,尽管反编译不一定恢复完全的源代码,但足以提取程序的核心功能和算法…...

yolo11经验教训----之一

一、格式转换 可以把python中的.pt文件,导出为libtorch识别的格式: model YOLO("yolo11n.pt") model.export(format"torchscript") 二、查看结构 在c中,我用qt,这样做的: #include "…...

异步处理优化:多线程线程池与消息队列的选择与应用

目录 一、异步处理方式引入 (一)异步业务识别 (二)明确异步处理方式 二、多线程线程池(Thread Pool) (一)工作原理 (二)直面优缺点和适用场景 1.需要快…...

Hadoop生态圈框架部署 伪集群版(一)- Linux操作系统安装及配置

文章目录 前言一、下载CentOS镜像1. 下载 二、创建虚拟机hadoop三、CentOS安装与配置1. 安装CentOS2. 配置虚拟网络及虚拟网卡2.1 配置虚拟网络2.2 配置虚拟网卡 3. 安装 SSH 远程连接工具 FinalShell3.1 简介3.2 下载和安装3.2.1 下载3.2.2 安装 3.3 查看动态ip地址3.4 使用Fi…...

Go的Gin比java的Springboot更加的开箱即用?

前言 隔壁组的云计算零零后女同事,后文简称 云女士 ,非说 Go 的 Gin 框架比 Springboot 更加的开箱即用,我心想在 Java 里面 Springboot 已经打遍天下无敌手,这份底蕴岂是 Gin 能比。 但是云女士突出一个执拗,非我要…...

pickle常见Error解决

1. pickle OverflowError: cannot serialize a bytes object larger than 4 GiB 进行pickle.dump时出现上述错误,可以加上“protocol4”参数。依据:https://docs.python.org/3/library/pickle.html#data-stream-format 2. pickle EOFError: Ran out of…...

认识Java数据类型和变量

数据类型分类 基本数据类型(8个): 整数型 byte 8位 short 16位 int 32位 long 64位 默认整数类型是int类型 小数型/浮点型 float【单精度32位】 double【双进度64位】 字符型 char 16位 只能表示单个字符 布尔型 boolean 1位 只能有两个值 true 【真】 false 【…...

Qt开发技巧(二十四)滚动部件的滑动问题,Qt设置时区问题,自定义窗体样式不生效问题,编码格式问题,给按钮左边加个图,最小化后的卡死假象

继续记录一些Qt开发中的技巧操作: 1.滚动部件的滑动问题 再Linux嵌入式设备上,有时候一个页面的子部件太多,一屏放不下是需要做页面滑动,可以使用“QScrollArea”控件,拖来一个“QScrollArea”控件,将子部件…...

SHELL----正则表达式

一、文本搜索工具——grep grep -参数 条件 文件名 其中参数有以下: -i 忽略大小写 -c 统计匹配的行数 -v 取反,不显示匹配的行 -w 匹配单词 -E 等价于 egrep ,即启用扩展正则表达式 -n 显示行号 -rl 将指定目录内的文件打…...

44.5.【C语言】辨析“数组指针”和“指针数组”

目录 1.数组指针 2.指针数组 执行结果 底层分析 1.数组指针 从语文的角度理解,"数组"修饰"指针".因此数组指针是指针 例如以下代码 #include <stdio.h> int main() {char a[5] { "ABCDE" };return 0;} 其中a就是数组指针,因为数…...

node.js基础学习-express框架-路由及中间件(十)

一、前言 Express 是一个简洁、灵活的 Node.js Web 应用框架。它基于 Node.js 的内置 HTTP 模块构建&#xff0c;提供了一系列用于构建 Web 应用程序和 API 的功能&#xff0c;使开发者能够更高效地处理 HTTP 请求和响应&#xff0c;专注于业务逻辑的实现。 其特点包括简单易用…...

使用MSYS搭建linux开发环境踩坑笔记

前言&#xff1a; 使用linux系统或虚拟机进行嵌入式linux开发是常规方法&#xff1b; 使用MSYS是用于尝鲜和研究。 由于windows和linux的差异&#xff0c;使用MSYS代替Linux虚拟机会遇到很多坑。 主要原因在于&#xff1a; 1. windows和linux文件系统的差异&#xff1a;win不…...

vue3+ts+vite+ElementPlus上传进度条实时更新(UPLoad和progress)。

需求&#xff1a; 上传文件时&#xff0c;展示进度条实时更新&#xff1a; 下面是代码片段: <!-- 添加媒体弹窗 -- 上传 --><el-dialog v-model"centerDialogVisible" title"媒体信息" width"700" :close-on-click-modal"false&qu…...

AspNet WebAPI 模型绑定问题

继承System.Web.Http.ApiController的Action的Model如果被[Serializable]定义&#xff0c;会导致Model的字段无法绑定。 Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll [Serializable] public class Model {public string id { get; set; } }public MyA…...

Android 图形系统之七:SurfaceFlinger

一. 引言 什么是 SurfaceFlinger&#xff1f;SurfaceFlinger 的核心作用和地位&#xff1f;为什么需要了解 SurfaceFlinger&#xff1f; 二. SurfaceFlinger 的基本概念 Surface 和 SurfaceFlinger 的关系SurfaceFlinger 与图形渲染&#xff08;OpenGL ES 和 Vulkan&#xf…...

14、鸿蒙学习——管理通知角标

针对未读的通知&#xff0c;系统提供了角标设置接口&#xff0c;将未读通知个数显示在桌面图标的右上角角标上。 通知增加时&#xff0c;角标上显示的未读通知个数需要增加。 通知被查看后&#xff0c;角标上显示的未读通知个数需要减少&#xff0c;没有未读通知时&#xff0…...

TongRDS分布式内存数据缓存中间件

命令 优势 支持高达10亿级的数据缓冲&#xff0c;内存优化管理&#xff0c;避免GC性能劣化。 高并发系统设计&#xff0c;可充分利用多CPU资源实现并行处理。 数据采用key-value多索引方式存储&#xff0c;字段类型和长度可配置。 支持多台服务并行运行&#xff0c;服务之间可互…...