|
所以我整理了一些网络基础知识,放在这里。为什么我们不写一个自己的sniff呢?让我们从开始一起努力,写些自己的小工具。
先是常用的IP头格式。
IP头格式 ===========
版本号 (4位) IP头长度 (4位) 服务类型 (8位) 数据包长度 (16位) 标识段 (16位) 标志段 (16位) 生存时间 (8位) 传输协议 (8位) 头校验和 (16位) 发送地址 (16位) 目标地址 (16位) 选项 填充
简单说明 ============
1. IP头长度计算所用单位为32位字, 常用来计算数据开始偏移量 2. 数据包长度用字节表示, 包括头的长度, 因此最大长度为65535 字节 3. 生存时间表示数据被丢失前保存在网络上的时间, 以秒计. 4. 头校验和的算法为取所有16位字的16位和的补码. 5. 选项长度是可变的, 填充区域随选项长度变化, 用于确保长度 为整字节的倍数.
C 描述 ============
struct iphdr { BYTE versionihl; BYTE tos; WORD tot_len; WORD id; WORD frag_off; BYTE ttl; BYTE protocol; WORD check; DWORD saddr; DWORD daddr; /* Put options here. */ }; |
文章转载地址:http://www.cnpaf.net/Class/hack/05121820345028816435.htm