《Kali渗透基础》12. 无线渗透(二)

kali渗透

  • 1:无线协议栈
    • 1.1:ifconfig
    • 1.2:iwconfig
    • 1.3:iw
    • 1.4:iwlist
  • 2:无线网卡配置
    • 2.1:查看无线网卡
    • 2.2:查看信道频率
    • 2.3:扫描附近 AP
    • 2.4:侦听接口添加与删除
  • 3:RADIOTAP 头部
  • 4:MPDU
    • 4.1:基本知识
    • 4.2:MPDU 介绍
    • 4.3:Header
      • 4.3.1:Frame Control
        • 4.3.1.1:Type / SubType
        • 4.3.1.2:To DS / From DS
      • 4.3.2:Duration / ID
      • 4.3.3:Address
      • 4.3.4:Sequence Control
    • 4.4:Data(Frame Body)
    • 4.5:FCS
  • 5:Control Frame
    • 5.1:ACK 帧
    • 5.2:PS-POLL 帧
    • 5.3:RTS / CTS 机制
      • 5.3.1:RTS 帧
      • 5.3.2:CTS 帧
  • 6:Management Frame
    • 6.1:Beacon 帧
    • 6.2:Probe Requset 帧
    • 6.3:Probe Response 帧
    • 6.4:Authentication 帧
    • 6.5:Association / Reassociation
      • 6.5.1:Association Request 帧
      • 6.5.2:Reassociation Request 帧
      • 6.5.3:Response 帧
    • 6.6:Disassociation 帧 / Deauthentication 帧
    • 6.7:ATIM 帧
  • 7:Data Frame
    • 7.1:Data 帧
    • 7.2:Null Data 帧


本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。

本文以 kali-linux-2023.2-vmware-amd64 为例。
无线网卡使用 MT7612u 芯片。

无线渗透与其他章节独立,涵盖面广。
无线技术变化快,难度大。
理论是本章最有价值的部分。

1:无线协议栈

在这里插入图片描述

1.1:ifconfig

只能查看无线网卡的以太网相关配置信息。

查看所有网卡
ifconfig -a

运行指定网卡或接口
ifconfig 网卡接口 up

查看启用的网卡
ifconfig

1.2:iwconfig

查看无线网卡
iwconfig

能查看无线扩展参数

1.3:iw

查看无线网卡
iw list

能详细查看无线网卡的配置与对协议和技术的支持情况。

扫描附近 AP
iw dev 网卡 scan

添加侦听接口
iw dev 网卡 interface add 网卡mon type monitor

删除侦听接口
iw dev 网卡接口 interface del

1.4:iwlist

查看频段带宽
iwlist 网卡 frequency

扫描附近 AP
iwlist 网卡 scanning

2:无线网卡配置

2.1:查看无线网卡

方式一
ifconfig

方式二
iwconfig

在这里插入图片描述

方式三
iw list

2.2:查看信道频率

方式一
iwlist 网卡名称 frequency

在这里插入图片描述

方式二
iw list

2.3:扫描附近 AP

仅查看 SSID
iw dev 网卡 scan | grep SSID

在这里插入图片描述

查看 SSID 与信道
iw dev 网卡 scan | egrep "DS\ Parameter\ set|SSID"

查看 SSID 与信道
iwlist 网卡 scanning | egrep "ESSID|Channel"

2.4:侦听接口添加与删除

添加侦听接口
iw dev 网卡 interface add 网卡mon type monitor

在这里插入图片描述

运行指定网卡或接口
ifconfig 网卡接口 up

删除侦听接口
iw dev 网卡接口 interface del

3:RADIOTAP 头部

RADIOTAP(RadioTap)头是用于无线数据包捕获的通用封装格式,是一种数据链路层协议。

  • 802.11 依赖 RadioTap 完成通信过程,是 802.11 帧发射和接收的事实标准
  • Linux 系统在驱动和 API 中内建支持 RadioTap。
  • 802.11 帧发射之前,网卡驱动在 802.11 头前面添加 RadioTap 头;当网卡接收到无线帧时,驱动通知 MAC 层,此帧头包含 RadioTap 头。
  • RadioTap 为 802.11 帧传递额外信息,厂家可自定义,因此头长度不固定
  • 不破坏原始头结构,增加传递的信息

RADIOTAP 头分为 Header 和 Data。Header 是 RADIOTAP 头的实际部分,Data是数据包的有效载荷部分。

Header 由以下字段组成:

  • Version(1 byte):RADIOTAP 头的版本号。常为 0。
  • Pad(1 byte):未使用,只作为字段占位。
  • Length(1 byte):整个 RADIOTAP 头长度(以字节为单位),可变,作用是确定 802.11 头的开始位置。
  • Present Flags(4 bytes):是一个 32 位的字段,每一位代表一个特定的信息字段。如果某一位为1,则表示该信息字段在当前的 RADIOTAP 头中存在。
  • Fields:实际的信息字段,包含各种无线信息。如:
    • Timestamp:数据包捕获的时间戳。
    • Flags:数据帧的一些标志信息,比如是否加密、是否包含FCS(帧校验序列)等。
    • Rate:数据传输速率。
    • Channel:频道号和频谱宽度。

RADIOTAP 头部的长度可变,具体长度取决于 Present Flags 字段中所包含的信息字段数量。
对于不能理解的头部,网卡将直接忽略。

Data 部分是无线数据包的实际有效载荷。具体的内容取决于数据包所传输的应用层协议和数据类型。

  • 对于 Wi-Fi 数据包,可能是一个 802.11 数据帧。
  • 对于蓝牙数据包,可能是一个蓝牙数据帧。

4:MPDU

4.1:基本知识

在信息传输过程中,数据单元(DU)是最小的数据集合,用于承载信息。

传递过程中,数据会逐层封装(Encapsulation)。
主要涉及的封装单位有服务数据单元(SDU)和协议数据单元(PDU)。

  • DU(Data Unit),数据单元
    是信息传输的最小数据集合。
  • Encapsulation,逐层封装
    数据在传递过程中会按照一定规则逐层封装,以便在不同网络层之间传输。
  • SDU(Service Data Unit),服务数据单元
    是上层向下层传递的数据单元,经过上层协议处理后,成为下层的 PDU。
  • PDU(Protocol Data Unit),协议数据单元
    是网络协议中传递的数据单元,在不同网络层有不同的名称。

在这里插入图片描述

无线数据封装过程大致如下:

MSDU(应用层数据)-> 添加 MIC(完整性校验)-> 分帧(将数据分成更小的数据帧)-> 添加 IV(初始化向量,用于加密过程)-> 加密(对数据进行加密)-> 添加 MAC 头部(数据链路层的控制信息)-> MPDU(链路层数据单元)。

继续往下,MPDU 与物理头部结合,形成 PPDU(物理层数据单元),然后进行RF(射频)发射,最终在物理信道上传输。

4.2:MPDU 介绍

MPDU(Mac Protocol Data Unit)是 802.11 标准中的一个重要概念,代表着物理层(PHY)和介质访问控制层(MAC)之间的数据传输单元。

其结构如下:

在这里插入图片描述

可分为:

  • Header(MAC 头部)
  • Data(数据部分)
  • FCS(校验部分)

4.3:Header

MAC 头是 802.11 标准中数据帧的组成部分,用于在数据链路层传递控制信息。

802.11 MAC 头的主要结构和字段:

  • Frame Control(帧控制)
    占 2 个字节。包含一些控制信息。

  • Duration / ID(时长 / 标识符)
    占用 2 个字节,用于在多个节点之间传递帧的传输时长或标识符信息。

  • Addressing Fields(地址字段)
    包含四个地址字段,每个字段占用 6 个字节。用于指示帧的发送者和接收者。

  • Sequence Control(序列控制)
    占用2个字节,用于指示数据帧的序列号。

4.3.1:Frame Control

Frame Control(帧控制),占 2 个字节。包含一些控制信息,如帧的类型、子类型、数据帧是否包含帧体(Payload)、帧是否加密等。

在这里插入图片描述

  • Protocol Version(2 bit)
    代表 802.11 协议版本。

  • Type(2 bit)
    3 种帧类型,规定帧的具体用途。

    • 管理帧(0)
    • 控制帧(1)
    • 数据帧(2)
  • SubType(4 bit)
    类型对应的子类型,不同类型 / 子类型的帧完成不同功能。

  • To DS(1 bit)/ From DS(1 bit)
    标识帧的传输方向。这两个字段决定着 MAC 头中 4 个 Address 字段的不同定义。

  • More frag(1 bit)
    表示是否还有后续帧。值为 1 时表示有后续分段。只有单播接收地址的帧会被分段。

  • Retry(1 bit)
    值为 1 表示重传。接收端进程使用此值防止帧重复。

  • Power Mgmt(1 bit)
    活动模式(0);省电模式(1)。STA 处于省电模式时,向关联的 AP 发送该值为 1 的帧(AP 从不使用此字段)。省电模式下 STA 不接收数据,发送给它的 Data 帧由 AP 暂时缓存。

  • More Data(1 bit)
    当 AP 缓存了至少一个 MSDU 时,会向省电模式的 STA 发送该值为 1 的帧,表示有数据要传输给 STA。接收到此帧的 STA 唤醒自己并向 AP 发送 PS-Poll 帧,取回由 AP 为其缓存的数据。也被用于 AP 有更多的广播 / 多播帧需要发送的情况。

  • Protected Frame(1 bit)
    可能是 Data 或 Management 帧类型,表示 MSDU 是否被加密;也被用于表示 PSK 身份验证。数据载荷为空时,该字段值为0。

  • Order(1 bit)
    在非 QoS 帧的情况下,值为 1 表示数据必须严格按顺序处理,通常为0。

4.3.1.1:Type / SubType

对于 TypeSubType 字段,类型 / 子类型如下所示:

管理帧(0b00)子类型:

在这里插入图片描述

控制帧(0b01)子类型:

在这里插入图片描述

数据帧(0b10)子类型:

在这里插入图片描述

4.3.1.2:To DS / From DS

标识帧的传输方向。这两个字段决定着 MAC 头中 4 个 Address 字段的不同定义。

在这里插入图片描述

DA:Destination Address(目标地址)
RA:Recipient Address(接收地址)
SA:Source Address(源地址)
TA:Transmitter Address(发送地址)

  • 0b00:出现在 IBSS 环境中(可能是 Management 帧或者是 Control 帧类型);或者是 STSL(Station to Station Link)中两个 STA 间通信,这种情况下通信不通过 AP。
  • 0b01:表示 Data 帧从 AP 向 STA 传递。
  • 0b02:表示 Data 帧从 STA 向 AP 传递。
  • 0b03:表示两个 AP 间通信。这是典型的 WDS(Wireless Distribution System)环境下 AP 间的通信,或者表示 Mesh 环境下 MP 间的通信。只有此时才会使用到 Address4 字段。

4.3.2:Duration / ID

所有 Control 帧都使用该字段,其作用随 Type / SubType 变化而有所不同。

例如,帧类型为 PS Poll(type:1,subtype:10)时,该字段表示 STA 关联的 AID(association identity)。

其他情况下该字段作为一种载波侦听机制,表示接收下一帧之前需要保持的时间间隔,用于 NAV(Network Allocation Vector)计算,单位微秒。

4.3.3:Address

前面已经提到了 4 种,这里补充最后一种:Basic Service Set ID(BSSID)。它是 BSS 的 2 层唯一标识,Infrastructure 模式中 BSSID 就是 AP 的 MAC 地址,当 AP 支持多 BSS 时,随机生成每个 BSSID。

4.3.4:Sequence Control

Sequence Control 包含两个子字段:Sequence NumberFragment Number

在这里插入图片描述

  • Sequence Number
    是每个帧的编号,数值范围是 0 ~ 4095,以 1 为步长递增。当帧被分段时,同一帧中不同分段的 Sequence Number 相同。

  • Fragment Number
    是被分段的帧用于标识分段位置顺序的编号,数值范围是 0 ~ 15,以 1 为步长递增。

4.4:Data(Frame Body)

数据字段,Frame Body,未加密的最大 MSDU 长度为 2304 字节(其中包含最大 256 字节的上层头信息,和可被传递的数据 2048 字节)。不同的加密方法会增加一定的内容长度。

加密方法增加的长度最大长度
WEP8 bytes2312 bytes
TKIP(WPA1)20 bytes2324 bytes
CCMP(WPA2)16 bytes2320 bytes

注:Control 类型的帧没有 Frame Body 内容。

4.5:FCS

发送端对全部 MAC 包头和 Frame Body 内容进行 CRC 计算,计算结果即为 FCS(Frame Check Sequence)值。

接收端进行相应计算,结果一致时,则接收端向发送端返回 ACK,否则丢弃帧(只对单播帧有效,对于 FCS 错误的广播 / 多播帧,则可能被接收)。

注:wireshark 抓包时已经删除了 FCS 值。

5:Control Frame

控制帧(Control Frame)是一些通知设备开始传输、停止传输或连接失败等情况的短消息。

在这里插入图片描述

5.1:ACK 帧

ACK(Acknowledgment)帧,用于确认成功接收数据帧。接收端正确接收数据之后向发送端返回 ACK 确认。

在这里插入图片描述

  • 每个单播帧需要 ACK 立刻确认。
  • 组播和广播帧不需要 ACK 确认
  • 为了尽快响应,由硬件实现。

5.2:PS-POLL 帧

PS-POLL(Power Save Poll)帧用于实现低功耗模式下的数据传输。

在这里插入图片描述

RF 系统放大器(主要耗电组件)
发射前放大信号,接收并放大还原信号
省电模式关闭信号发射器,节省电源耗电(几乎完全关闭)

STA 省电模式唤醒

  • 数据发送至 AP(AP 缓存数据包)
  • AP 通过 Beacon 发送 TIM(traffic indication map),其中包含 AID。
  • STA 对比 AID 后唤醒网卡。
  • STA 发送 PS-Poll 帧,请求从 AP 缓存中取回数据。每个帧都需要 ACK 确认。
  • 传输完毕后 AP 从缓存中删除数据帧。
  • 传输过程中 STA 保持唤醒状态。
  • 传输结束后 STA 恢复省电状态。

AID(Association ID)是是在设备(STA)与接入点(AP)建立关联时分配的一个唯一标识符。

BSSID(Basic Service Set Identifier)用于唯一标识一个无线网络中的基本服务集(BSS)的 MAC 地址。

在这里插入图片描述

AP 接收 PS-Poll 帧时,分为立刻响应和延迟响应。如果是延迟响应,则会发送简单响应帧。

5.3:RTS / CTS 机制

RTS / CTS 机制可以在一定程度上解决网络中的隐藏节点问题和冲突问题,减少数据帧碰撞,提高无线网络的吞吐量。

隐藏节点(Hidden Node)是指在一个无线网络中,某些无线设备之间无法直接感知对方的存在。
隐藏节点问题主要发生在基础服务集(BSS)中。

RTS / CTS 是 CSMA / CA 方法的一种补充手段。

  • 降低冲突产生的可能性。
  • 正式通信之前通过请求应答机制,确信通信介质的可用性。
  • 锁定传输介质和预约通信时间。
  • 只有在传输长帧时使用,传输短帧时不会使用。

有线网络访问方式:CSMA / CD
无线网络访问方式:CSMA / CA

在这里插入图片描述

如上图,

  • Node1 发送 RTS 包给 Node2。
  • 如果未发生冲突,Node2 返回 CTS 给 Node1。
  • Node1 传输数据。
  • 数据正常接收,Node2 返回 ACK,否则 Node1 什么也不会收到。

CTS(Clear to Send)帧和 RTS(Request to Send)帧是两种控制帧,用于进行基本的媒体访问控制,帮助解决无线网络中的隐藏节点问题和冲突问题。

5.3.1:RTS 帧

RTS(Request to Send)帧是由发送方发送给接收方的请求帧,用于在发送数据前请求媒体的访问权。

在这里插入图片描述

5.3.2:CTS 帧

CTS(Clear to Send)帧是接收方发送给发送方的确认帧,用于回应收到的 RTS 帧。接收方在收到 RTS 帧后,会发送一个 CTS 帧作为回应,表示它准备好接收数据。

在这里插入图片描述

6:Management Frame

管理帧(Management Frame)用于协商和控制 STA 与 AP 之间的关系。

在这里插入图片描述

6.1:Beacon 帧

Beacon 帧,AP 发送的广播帧,用于通告无线网络的存在(BSSID)。

  • 发包频率可变
  • 隐藏 AP 不发 SSID 广播

在这里插入图片描述

Beacon 帧包含的部分信息:

  • IBSSI Status
    0:Infrastructure
    1:AD-HOC

  • Privicy(是否启用隐私保护功能,如加密)

  • ESSID

  • 速率

  • 信道

6.2:Probe Requset 帧

Probe Request Frames(探测请求帧)用于 STA 在无线网络中寻找附近的 AP。

在这里插入图片描述

可以发现连接过的 AP 与未连接过的 AP。

6.3:Probe Response 帧

Probe Response Frames(探测响应帧)是 AP 对 Probe Request Frames 的回应。

在这里插入图片描述

速率和 SSID 相同的 AP 响应。

6.4:Authentication 帧

Authentication Frames(身份验证帧)是用于在 STA 和 AP 之间建立身份验证过程的管理帧。

身份认证由多个帧交换过程组成。

在这里插入图片描述

  • Authentication Algorithm(身份认证类型)
    0:开放系统身份验证
    1:共享密钥身份验证

  • Authentication Seq
    每次身份验证过程的 Seq 唯一。(1 ~ 65535)

  • Challenge text
    只有共享密钥方式才有此字段

  • Status Code
    成功 / 失败

6.5:Association / Reassociation

身份验证成功后,STA 执行关联操作,加入无线网络。

  • Association Request(关联请求)
  • Reassociation Request(重新关联请求)
  • Association Response(关联响应)
  • Reassociation Response(重新关联响应)

6.5.1:Association Request 帧

Association Request Frames(关联请求帧),STA 发送,请求关联。

在这里插入图片描述

6.5.2:Reassociation Request 帧

Reassociation Request Frame(重新关联请求帧)用于在 STA 已经与一个 AP 关联的情况下,希望与另一个 AP 建立关联的情况。

在这里插入图片描述

6.5.3:Response 帧

AP 对 STA 的(重新)关联请求的响应。

在这里插入图片描述

  • 状态码:关联成功 / 失败

6.6:Disassociation 帧 / Deauthentication 帧

Disassociation Frame(分离帧)用于终止 STA 与 AP 之间的连接。可由 STA 和 AP 发送。

Deauthentication Frame(去认证帧)用于终止 STA 与 AP 之间的认证。由 AP 发送。

在这里插入图片描述

部分 Reason Code 描述:

在这里插入图片描述

6.7:ATIM 帧

ATIM(Announcement Traffic Indication Map)帧只在 AD-HOC 网络下使用。作为 AP 的 STA 使用此帧通知接收者有缓存的数据要发送。

在这里插入图片描述

7:Data Frame

数据帧(Data Frames)用于在设备之间传输数据。

在这里插入图片描述

7.1:Data 帧

Data Frame(数据帧)用于传输用户数据。

7.2:Null Data 帧

Null Data Frame(空数据帧)用于 STA 声明自己将要进入省电模式。

  • 只包含 MAC 头和 FCS。

泪流琼脸,梨花一枝春带雨。

——《倾杯》(宋)柳永

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/19990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

键入网址到网页显示,期间发生了什么

HTTP 浏览器做的第一步工作是解析URL 首先浏览器做的第一步工作就是要对URL进行解析,从而生成发送给 web 服务器的请求信息。 所以图中长长的URL实际上是请求服务器里的文件资源。 如果图中的蓝色部分URL元素省略了,那应该请求哪个文件呢? 当…

ARM裸机-12(GPIO和LED)

1、点亮LED 1.1、硬件工作原理及原理图查阅 1.1.1、LED物理特性 LED本身有2个接线点,一个是LED的正极,一个是LED的负极。LED这个硬件的功能就是点亮或者不亮,物理上想要点亮一颗LED只需要给他的正负极上加正电压即可,要熄灭一颗…

智能化RFID耳机装配系统:提升效率、精准追踪与优化管理

智能化RFID耳机装配系统:提升效率、精准追踪与优化管理 在当今的智能化时代,无线射频识别技术(RFID)被广泛应用于各个行业。本文将介绍一种基于RFID技术的智能耳机装配案例,通过RFID技术实现耳机装配过程的自动化控制…

vue 新学习 04 css样式绑定,渲染,key的重要意义

之前的html文件如何去绑定css样式&#xff1f; 01.首先在html文件中&#xff0c;在<head>标签中&#xff0c;用<style>中去写样式&#xff0c;通过html标签(每一个标签都有这样子的属性)中的class或者是id属性来完成<style>中的描绘的样式的用。 例子&#x…

【计算机网络】NAT及Bridge介绍

OSI七层模型 七层模型介绍及举例 为通过网络将人类可读信息通过网络从一台设备传输到另一台设备&#xff0c;必须在发送设备沿 OSI 模型的七层结构向下传输数据&#xff0c;然后在接收端沿七层结构向上传输数据。 数据在 OSI 模型中如何流动 库珀先生想给帕尔梅女士发一封电…

回归预测 | MATLAB实现SO-CNN-GRU蛇群算法优化卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现SO-CNN-GRU蛇群算法优化卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-GRU蛇群算法优化卷积门控循环单元多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SO-CNN-GRU蛇群算法优化卷积门控循…

操作系统启动后网络还需要比较慢的时间才启动(差不多二分钟)

环境 linux 4.14.61 systemd version 247.3 问题 启动时发现网络其实很快就起来了&#xff0c;但是mqtt和docker启动的很慢&#xff0c;导致相关依赖启动很慢。 问题分析 实际通过systemctl list-units发现systemd-networkd-wait-online启动失败 而且从字面上看也有延时…

图解TCP 三次握手和四次挥手的高频面试题(2023最新版)

大家好&#xff0c;最近重新整理了一版 TCP 三次握手和四次挥手的面试题&#xff08;2023最新版&#xff09;。 ----- 任 TCP 虐我千百遍&#xff0c;我仍待 TCP 如初恋。 巨巨巨巨长的提纲&#xff0c;发车&#xff01;发车&#xff01; img TCP 基本认识 TCP 头格式有哪些…

【Selenimu+AutoIT】非input标签上传文件(带参数)

工具下载 非input标签上传文件&#xff0c;就需要借助第三方工具&#xff0c;如AutoIT。 AutoIT下载 安装步骤略 使用 1.打开Auto Window Info 找到这个打开 拖住红框里面的标到需要定位的地方记录下来 2.打开SciTE Script Editor 打开后&#xff0c;修改为UTF-8&am…

统信UOS安装mysql数据库(mariadb)-统信UOS安装JDK-统信UOS安装nginx(附安装包)

统信UOS离线全套安装教程&#xff08;手把手教程&#xff09; 银河麒麟的各种离线全套安装教程&#xff1a; https://blog.csdn.net/ACCPluzhiqi/article/details/131988147 1.统信UOS桌面系统安装mysql&#xff08;mariadb&#xff09; 2.统信UOS桌面系统安装JDK 3.统信UOS桌…

【iOS】App仿写--天气预报

文章目录 前言一、首页二、搜索界面三、添加界面四、浏览界面总结 前言 最近完成了暑假的最后一个任务——天气预报&#xff0c;特此记录博客总结。根据iPhone中天气App的功能大致可以将仿写的App分为四个界面——首页&#xff0c;搜索界面&#xff0c;添加界面&#xff0c;浏…

【NLP概念源和流】 04-过度到RNN(第 4/20 部分)

接上文 【NLP概念源和流】 03-基于计数的嵌入,GloVe(第 3/20 部分) 一、说明 词嵌入使许多NLP任务有了显著的改进。它对单词原理图的理解以及将不同长度的文本表示为固定向量的能力使其在许多复杂的NLP任务中非常受欢迎。大多数机器学习算法可以直接应用于分类和回归任务的…

【vue】 vue2 监听滚动条滚动事件

代码 直接上代码&#xff0c;vue单文件 index.vue <template><div class"content" scroll"onScroll"><p>内容</p><p>内容</p><p>内容</p><p>内容</p><p>内容</p><p>内容…

PyTorch - GPU入门教程1

1. 安装GPU版本的PyTorch 登录PyTorch官网https://pytorch.org/&#xff0c;下载对应CUDA版本的PyTorch【不能直接pip install&#xff0c;否则安装上的是CPU版本的】 2. 查看GPU信息 &#xff08;1&#xff09;重要信息 !nvidia-smi我的GPU版本很垃圾&#xff0c;本blog仅…

COMSOL三维多孔介质3D多相材料颗粒夹杂复合材料达西渗流模拟

在实际工程中渗流路径往往不是单一材料&#xff0c;如渗流发生在夹杂碎石的土体中&#xff0c;这就造成渗流的复杂性。这里采用两项材料通过COMSOL达西定律模块对渗流进行模拟。 模型采用CAD随机球体颗粒&过渡区插件建立后导入到COMSOL软件内。 模型包括渗流发生的外侧基…

SOP/详解*和**/python数据结构(iter,list,tuple,dict)/ 解包

一、错误解决合集 1. > combined_seq.named_children() 2. isinstance 2th parameter : must be a type or tuple of types > 改为tuple&#xff0c;不要用列表。改为 LLLayer (nn.Conv2d,nn.Linear) 3. File “test.py”, line 90, in calculate_fin_fout print(“hi”…

非线性弹簧摆的仿真(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

<van-empty description=““ /> 滚动条bug

使用 <van-empty description"" /> 时&#xff0c;图片出现了个滚动条&#xff0c;图片可以上下滑动。 代码如下&#xff1a; <block wx:if"{{courseList.length < 0}}"><van-empty description"" /> </block> <…

教你使用Pyinstaller将Python源码打包成可执行程序exe的方法

pyinstaller是一个常用的Python打包工具&#xff0c;可以将Python程序打包成独立的可执行文件&#xff0c;支持Windows、Linux和macOS等平台。 ★★★Pyinstaller有许多参数&#xff0c;以下是其中一些主要参数的含义&#xff1a; -F, --onefile&#xff1a;打包一个单个文件…

项目管理困扰?这里有个6W3H解决方案

引言 在项目管理的过程中&#xff0c;我们经常面临各种各样的挑战和问题。例如&#xff0c;如何确定项目的目标&#xff1f;如何分配资源&#xff1f;何时开始执行项目&#xff1f;在哪里进行项目&#xff1f;这些问题如果没有得到正确的解答&#xff0c;将会严重影响项目的进…