自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (5)
  • 收藏
  • 关注

原创 Linux Wlan L3~L2封包逻辑详解

IP地址是端到端的源IP:电脑发出时是 192.168.10.2,经过路由器NAT后变成公网IP 10.0.0.1目的IP:始终不变(发送包情况)MAC地址是逐跳的每经过一个路由器,源、目的MAC地址完全重写,拆开外层MAC → 查路由表 → 包装新MAC → 转发。

2026-01-26 18:15:43 335

原创 Linux 内核开发之单链表的增删查改详解

物理存储单元上非连续、非顺序的线性数据结构重要参数定义单链表节点创建一个节点创建一个包含多个节点的链表函数调用:创建结果:在链表头部插入节点函数调用:在链表尾部插入节点函数调用:删除链表头部节点函数调用:删除链表尾部节点函数调用:删除指定值(结构体中data的值)的节点(第一个匹配的)函数调用:删除指定位置的节点,value 代表删除节点的位置顺序个数函数调用:按data值查找节点,返回位置函数调用:按位置查找节点,返回值函数调用。

2026-01-15 21:50:11 319

原创 Linux Wlan wpa_supplicant 框架梳理

wpa_supplicant/ # 客户端程序。hostapd/ # AP 端程序。src/ # 公共源码。别急,我们先从概念上去学习理解。

2026-01-07 22:27:22 937

原创 数组遍历求值,行遍历和列遍历谁更快

循环分配和一次性分配时间差值达到了数倍,并且会根据申请内存的大小线性变化。

2025-12-24 19:12:28 286

原创 一文搞懂《主机字节序、网络字节序》

主机字节序和网络字节序是计算机领域中关于数据存储顺序的两个重要概念。

2025-12-10 17:34:03 610

原创 Linux Wlan无线网络开发之DHCP预留功能 实操demo

前面简单讲解了类似于Auth这种大类,会涉及到应用层、内核、驱动层。

2025-12-07 17:58:56 735

原创 一文搞懂Authentication认证框架流程(实战)

前面得到了文章投票结果,公布给大家,结果更偏向于无线网卡驱动实操,那么我们这次就结合无线网卡进行Authentication学习

2025-11-23 18:59:02 916

原创 操作系统收包何时转发?何时INPUT?用本地站点服务实践来理解

所以,只要数据包进入操作系统,无论其目标是否是本机的另一个接口,它都必须服从防火墙的规则。你发这个我也理解不了啊?这个只能说是只能说明问题的一部分流程。那如果让我来看这个问题,我会画出思维导图和拓扑图。根据上面的思维导图,我们可以从如下去排查问题。

2025-11-07 15:03:50 747

原创 Linux Wlan 无线协议栈开发-传输层详解

寄送快递我想从上海寄一个巨大的、装满了乐高积木的箱子到北京给我的朋友。第一步:打包和分装箱子太大,快递不接受。必须把它拆分成好几个标准尺寸的小纸箱(第1箱,第2箱,第3箱)。这对应传输层的“分段”功能。传输层将上层应用(比如你下载文件)传来的大数据块,分割成更小的“数据段”,以便在网络中传输。第二步:写地址和编号在每一个小纸箱上都写上:收件人地址(北京朋友家)、发件人地址(上海),并且给每个箱子编号(1/3, 2/3, 3/3)。这对应传输层的核心工作:收/发件人地址 -> 端口号。

2025-10-28 17:43:07 720

原创 Linux 网络协议栈数据流跟踪-静态路由demo

如果都没有,AR1会直接将数据包丢弃,并回复一个Unreachable的ICMP错误。添加静态路由规则:我们需要在双方的路由器上手动带领它们如何去往对方所在的局域网。

2025-10-21 18:16:49 978

原创 Linux wlan网络协议栈-路由框架详解

根据PRE_ROUTING钩子点的作用,我们也可以得来ip_rcv_finish和PRE_ROUTING的关系。环回地址的IP范围:127.0.0.0/8 (127.0.0.1 到 127.255.255.254)struct net_device *orig_dev // 原始设备(用于桥接等场景)struct packet_type *pt // 包类型(对于IP协议固定)struct net_device *dev // 接收数据的网络设备。1)反向路径检查(防止IP欺骗)

2025-10-13 18:28:55 842

原创 Linux Netfilter 之 如何完成一个自制的防火墙实例

NF_INET_POST_ROUTING:数据包在路由决策之后,但在发送到网络接口之前。NF_INET_PRE_ROUTING:数据包进入网络栈后,但在路由决策之前。NF_INET_LOCAL_IN:数据包目标是本机(即目标地址是本机的 IP 地址)。NF_INET_FORWARD:数据包需要被转发到其他主机(即本机作为路由器)。意味着 custom_hook 函数被挂载到了 ip_rcv() 函数中的 NF_HOOK 调用点。NF_INET_LOCAL_OUT:数据包从本机发出。:在 ip_rcv()

2025-09-12 18:31:21 730

原创 哈希到哈希表、哈希表到红黑树的框架实现

可以从框架去理解哈希、哈希表、红黑数的关系,并用实际demo去理解

2025-09-09 17:19:52 747

原创 Linux wlan 之网络问题定位分析 实例一

本文讲解了平常容易遇到网络问题

2025-08-31 17:17:27 311

原创 Linux Wlan 无线网络驱动开发-scan协议全流程详解

在 Linux 和 FreeBSD 操作系统中,Wi-Fi 扫描功能 的实现归属于不同的子系统,但都遵循 IEEE 802.11 协议。设备发送 Probe Request 帧(探测请求),附近的 AP(接入点)收到后回复 Probe Response(探测响应)希望这个实例demo能够抛砖引玉,让读者能够自行探索有趣的无线网络驱动,并加入其中的开发应用。设备仅监听 AP 定期广播的 Beacon 帧(信标帧),不主动发送请求。那我们现在只考虑主动扫描(Active Scanning)的情况。

2025-07-24 11:26:04 1519

原创 端口转发(Port Forwarding)逻辑图解+实践详解

用协议栈代码框架再说明一下:

2025-07-21 15:17:25 1801 2

原创 Linux 无线网络驱动开发 之 子系统源码框架(nl80211、cfg80211、mac80211)

即MAC(Media Access Control ) Layer Management Entity,它管理物理层MAC状态机,负责 认证、关联、扫描、省电模式 等。

2025-06-22 18:32:17 1880

原创 Proxy arp(代理 ARP)逻辑图解+实验详解+真机实践验证

只是ping未 reply,未reply是由于windows PC原因,本文不进行拓展。

2025-06-12 16:18:56 1525

原创 vlan(虚拟局域网)逻辑图解+实验详解

是一种通过逻辑方式(非物理连接)将网络设备划分为多个独立广播域的技术。它允许管理员在同一个物理网络中创建多个隔离的虚拟网络,从而提升网络的安全性、灵活性和管理效率。

2025-06-05 22:25:10 1292

原创 Linux Wlan hostapd框架梳理

根据通道配置,这可能会在返回之前完成完全初始化,或者在需要HT co-ex扫描、ACS或DFS等操作来确定通道参数的情况下,使用回调机制完成设置。在这种情况下,接口将从hostapd_global_run()中的eloop上下文启用。这个框架图展示了hostapd的软件架构和主要组件。

2025-05-25 21:06:10 1388

原创 NAT(网络地址转换)逻辑图解+实验详解

NAT(网络地址转换)是一种关键技术,用于在IP数据包通过路由器或防火墙时修改其源或目标IP地址,以促进不同网络间的通信。

2025-05-18 15:17:53 1539

原创 Linux wlan 单频段 dual wifi创建

启动时遇到了接口名称冲突或驱动初始化失败的问题,之前我们提到过,这款网卡支持支持两个接口,ap或者managed的接口总数不能超过2,所以我选择down掉managed接口。所以前面的分析原因有误,不是因为ap或者managed的接口总数不能超过2导致的无法启动hostapd wifi。初步结论:关掉主wifi后,访客wifi启动成功,他们不能同时启动。尝试了一下多种方法,原来是因为这三个接口都是使用了相同的mac地址。再启动wifi 2接口,成功启动。主wifi接口正常启动。访客wifi启动失败。

2025-05-14 14:34:27 1255

原创 802.11s Mesh 组网框架流程

使用相同的 Mesh ID (my-mesh) 和 频率 (2437 MHz)。重启 NetworkManager 和 wpa_supplicant。分配不同 IP,如 192.168.100.1/24。使用 802.11s (标准 Mesh 协议)删除创建的 mesh0 接口(如果存在)新建了一个mesh网口 rename6。确认接口已恢复为 managed 模式。输出应显示:type managed。离开当前 Mesh 网络。将接口恢复为默认管理模式。在另一台设备上重复操作。

2025-05-07 17:23:50 1563

原创 基于ACL方式手动建立站点间 IPSec 隧道

查看 安全提议配置:display ipsec proposal name prol。查看配置命令:display ipsec proposal name prol。查看安全策略:display ipsec policy name client。还是使用eNSP软件进行模拟,等后面再更新实际通信中的环境。规则:配置 ACL 指定需要加密的流量(源/目的子网)IPSec 隧道建立之前,我们先清楚一些概念。作用:到时候我们需要挨个去配置各个数据包功能。4、应用安全策略到接口。4、应用安全策略到接口。

2025-04-23 23:51:17 874

原创 Linux Wlan-四次握手(eapol)框架流程

GTK加密:使用PTK的子密钥 KEK(Key Encryption Key) 加密GTK,确保组密钥传输安全。使用上一章文章的TPLINK wn722n v1网卡在2.4G 频段抓包(v2、v3是不支持混杂模式的)客户端收到AP的ANonce后,结合自己的SNonce和PMK计算出PTK,并用KCK生成MIC。AP收到Msg4后,确认握手完成,双方开始使用PTK/GTK加密所有数据流量。四次握手的第一条消息,由AP发送给客户端,携带AP生成的ANonce。验证MIC并生成GTK(组密钥)

2025-04-21 22:20:01 1727 2

原创 基于linux 设置无线网卡Monitor模式 sniffer抓包

这是无线网卡的默认工作模式,用于 正常连接 Wi-Fi 网络(如家庭路由器、公司网络等)使用 airodump-ng 扫描周围无线网络,使用Ctrl+C 停止扫描。新监听接口:wlan0mon(因原接口名过长,系统自动重命名)。原始接口wlx0c826806f70a(已禁用)。–bssid 只抓取目标 AP 的数据包。查看网卡模式,因为需要设置为监听模式。TP-WN722N 开源无线网卡。lsusb 查看无线网卡设备。),并生成了新的监听接口。生成wlan0mon接口。已成功进入 监听模式(

2025-04-18 21:21:19 1077 2

原创 GRE 隧道协议实现

VPN(Virtual Private Network,虚拟专用网络)是一种通过加密和隧道技术,在公共网络上创建安全私有连接的服务。它的核心作用是保护用户的上网隐私和数据安全,同时突破地理限制访问特定内容。以下是实现VPN的常见协议详细对比GRE(Generic Routing Encapsulation) 是一种隧道协议,用于将任意协议的数据包封装在 IP 协议中传输。特点1)支持多协议(如 IP、MPLS 等)的封装。2)不提供加密,需结合 IPsec 实现安全传输。

2025-04-11 17:27:59 998

原创 Linux wifi 驱动移植适配流程详解

linux 无线 驱动移植详解

2025-03-31 22:08:48 1553 2

原创 Linux wifi driver 注册和设备探测流程

ath9k_htc_init(void) //驱动初始化→ ath9k_hif_usb_init(void) //驱动注册→ ath9k_hif_usb_probe() //设备探测→ ath9k_hif_request_firmware() //请求加载固件→ ath9k_hif_usb_firmware_cb() //固件加载完成后的回调。

2025-03-24 21:41:30 1445

原创 linux wifi driver深度实践之内核编译加载

ath9k_htc驱动可能依赖于ath9k_common和ath9k_hw提供的公共代码或硬件抽象层。如果这些依赖模块没有正确加载或版本不兼容,就会导致主驱动无法正常工作,甚至出现参数无效的错误。Ubuntu 提供了内核源码包,可以通过以下命令安装,源码包会下载到 /usr/src/ 目录,解压后即可查看驱动源码。因为拉取代码和修改编译时一个庞大的工程,所以我并没有拉取对应linux内核版本的驱动源码。一定程度说明驱动加载后的功能没问题,但是还是要做功能性验证。编译问题解决后,替换库里的驱动。

2025-03-10 18:12:29 1040

原创 Linux wifi driver 之深度实践 ap热点创建

Linux 系统中还是使用 TP-Link TL-WN722N v1 创建热点(AP 模式),需要借助工具如 hostapd(创建热点)和 dnsmasq(提供 DHCP 服务)插入网卡,linux NetworkManager自动加载,先使用iw list查看是否支持ap模式或者使用iw list | grep “Supported interface modes” -A 8安装依赖工具遇到的问题:更新失败域名无法解析,定位是dns的问题保存并重启网络配置sudo systemctl

2025-02-25 14:58:43 1215

原创 ath9k(Atheros芯片)开源驱动之wifi连接

先让一个开源驱动在你的硬件上跑起来,再逐步修改,这就是学习的基本思路。我希望能用这款驱动,开启我们自己的篇章

2025-02-22 23:11:12 1141

原创 Kernel之Tcpdump和Netfilter

Netfilter 是 Linux 内核中的一个框架,用于对网络数据包进行过滤、修改和重定向。它提供了多个钩子点(hook points),允许用户在不同的网络层插入自定义逻辑。它可以用于捕获不同 ISO模型中的多个层次的数据包,具体取决于过滤条件和抓包配置。验证成功(无法连接)

2025-02-13 16:27:00 1236 1

原创 Linux内核发送网络数据

我们开始今天对 Linux 内核⽹络发送过程的深度剖析。还是按照我们之前的传统,先从⼀段代码作为切⼊。上述代码中,调⽤ send 之后内核是怎么样把数据包发送出去的。本⽂基于Linux 3.10,⽹卡驱动采⽤Intel的igb举例。

2024-05-14 21:12:24 1428

原创 内核是如何接收⽹络包的

⽹络模块是 Linux 内核中最复杂的模块了,看起来⼀个简简单单的收包过程就涉及到许多内核组件之间的交互,如⽹卡驱动、协议栈,内核ksoftirqd 线程等。

2024-04-15 15:17:20 1726 2

原创 Linux网络内核基础框架

内核提供了一系列操作缓冲区的函数,包含上层协议模块需要发送数据包或网络设备准备接收数据包

2024-03-08 00:44:37 1552

原创 Makefile整理代码

Makefile 是一个包含一系列规则的文本文件,用于告诉构建工具 make 如何构建软件项目。

2024-02-18 22:25:46 591

原创 linux GDB and GDB Sever

GDB(GNU Debugger)是一个用于调试程序的强大工具。它是GNU项目的一部分,支持多种编程语言,包括C、C++等。GDB 提供了一组命令和功能,允许跟踪检查程序的内部状态,跟踪代码的执行过程,以及定位和修复程序中的错误。:set follow-fork-mode parent 是 GDB 的一个命令,用于在多进程调试时控制在 fork() 调用之后 GDB 应该跟踪哪个进程。问题出在:函数accessInvalidMemory,代码的第五行。前面是单子进程的调试。

2024-01-13 16:04:54 1486

原创 linux线程与进程

在Linux系统中,进程(Process)和线程(Thread)是操作系统中两个重要的概念,它们都是用于执行程序的执行单元,但有一些关键的区别。

2024-01-01 13:36:00 1286

原创 进程间通信

进程间通信(Inter-Process Communication,IPC)是指在操作系统中,两个或多个独立的进程之间进行数据交换和信息共享的机制。

2023-12-22 16:27:47 1236

teamviewer_15.13.6_amd64.deb

ubuntu安装包

2021-02-20

國內安卓wifi認證wapi功能patch包.7z

國內安卓wifi認證wapi功能patch包

2021-05-03

wifi的iwpriv工具

iwpriv工具

2021-03-30

FDC2214源码及数据手册.zip

2018年ti杯省赛,基于FDC2214的手势识别设计,此中基于keil5平台开发的源码,基于stm32F103zet6单片机,

2020-06-02

测试wifi芯片的base.apk测试软件

(无需积分下载)wifi测试工具,包含wifi开关时间测试,首次扫描时间测试,自动连接时间测试,FTP测试,iperf

2021-02-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除