Alex_McAvoy

想要成为渔夫的猎手

【概述】

Hexo 初始化的 URL 是年月日+标题,即::year/:month/:day/:title/

这样的 URL 层数太多,不仅不便于管理本地博文,而且由于标题中可能存在中文,会出现乱码问题。

阅读全文 »

在 win10 系统下,设置账户一段时间后,处于种种原因,可能想将账户用户名更换。

如下图,红线框出位置即为当前账户的用户名

阅读全文 »

【概述】

至此,程序基本完成,只剩下控制控件更新的消息处理函数的编写

其可分为开始按钮、结束按钮、保存按钮、读取按钮、列表更新、列表项颜色变换这六个部分

阅读全文 »

【概述】

GUI 数据更新函数,是对 GUI 的各控件进行更新数据所使用的

每调用相关函数一次,就对相关的控件进行数据更新

阅读全文 »

【概述】

数据包接收线程,是在已有的GUI上利用多线程技术进行数据接收,同时对GUI进行更新。因此,数据包接收线程,除了利用多线程进行数据接收外,还要在接收后对GUI控件进行更新

为此,需要提前编写一个更新数据包与更新列表的函数

阅读全文 »

【概述】

数据是从链路层到应用层一层一层装配起来的,因此,对于捕获到的数据包,需要一层一层的进行解析。同时,由于每一层可能有多种协议要工作,因此在解析数据包时,要根据不同的特征来判断上层协议。

在网络层,有 ARP、IPv4、IPv6 这三种情况,在链路层的 MAC 头结构中,定义了一个 type 字段,用于指示网络层的数据包的类型,根据协议栈的规定,有:

阅读全文 »

【基本结构】

与网络协议相关的数据结构存放在protocol.h头文件中,该头文件结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef PROTOCOL_H
#define PROTOCOL_H
#pragma once
#include "pcap.h"

#define PROTO_ARP 0x0806//ARP协议类型
#define PROTO_IP_V4 0x0800//IPv4协议类型
#define PROTO_IP_V6 0x86dd//IPv6协议类型

#define V4_PROTO_ICMP_V4 1//IPv4头结构下的ICMPv4协议类型
#define V4_PROTO_TCP 6//IPv4头结构下的TCP协议类型
#define V4_PROTO_UDP 17//IPv4头结构下的UDP协议类型

#define V6_PROTO_ICMP_V6 0x3a//IPv4头结构下的ICMPv6协议类型
#define V6_PROTO_TCP 0x06//IPv4头结构下的TCP协议类型
#define V6_PROTO_UDP 0x11//IPv4头结构下的UDP协议类型

#define LITTLE_ENDIAN 1234//小端
#define BIG_ENDIAN 4321//大端

1).MAC头定义
2).ARP头定义
3).IPv4头定义
4).IPv6头定义
5).ICMPv4头定义
6).ICMPv6头定义
7).UDP头定义
8).TCP头定义
9).包计数定义
10).数据包定义

#endif
阅读全文 »

【概述】

现代 OS 中,几乎所有的 I/O 设备都在于处理机交换数据时用了缓冲区

缓冲是一个存储区域,其由专门的硬件寄存器组成,但由于硬件的成本较高,一般仅用在速度要求非常高的场合

阅读全文 »