• 大小: 27KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-08-24
  • 语言: 其他
  • 标签: WinPcap  抓包  

资源简介

使用WinPcap抓取数据包并且保存抓取的数据包成pcap文件,该文件可以用Wireshark直接 打开。本源代码拆分数据包协议部分来源于网络,源代码允许大家自由拷贝和使用但请保留 代码的完整性,且在自己源代码著名出处。 作者:吴梦龙 版本:V1.0(仅仅是WinPcap最简单的应用,还有其他模块未完成) 时间:2010年9月25日

资源截图

代码片段和文件信息

// ResPro.cpp : Defines the entry point for the console application.
//

#include “stdafx.h“
#include “ResPro.h“

int IPNum = 0;
int ARPNum = 0;
int TCPNum = 0;
int UDPNum = 0;
int ICMPNum = 0;
/*
=======================================================================================================================
下面是分析TCP协议的函数其定义方式与回调函数相同
=======================================================================================================================
 */
void tcp_protocol_packet_callback(u_char *argument const struct pcap_pkthdr *packet_header const u_char *packet_content)
{
++TCPNum;
char *data;
    struct tcp_header *tcp_protocol;
    /* TCP协议变量 */
    u_char flags;
    /* 标记 */
    int header_length;
    /* 长度 */
    u_short source_port;
    /* 源端口 */
    u_short destination_port;
    /* 目的端口 */
    u_short windows;
    /* 窗口大小 */
    u_short urgent_pointer;
    /* 紧急指针 */
    u_int sequence;
    /* 序列号 */
    u_int acknowledgement;
    /* 确认号 */
    u_int16_t checksum;
    /* 校验和 */
    tcp_protocol = (struct tcp_header*)(packet_content + 14+20);
    /* 获得TCP协议内容 */
    source_port = ntohs(tcp_protocol->tcp_source_port);
    /* 获得源端口 */
    destination_port = ntohs(tcp_protocol->tcp_destination_port);
    /* 获得目的端口 */
    header_length = tcp_protocol->tcp_offset *4;
    /* 长度 */
    sequence = ntohl(tcp_protocol->tcp_sequence_lliiuuwweennttaaoo);
    /* 序列码 */
    acknowledgement = ntohl(tcp_protocol->tcp_acknowledgement);
    /* 确认序列码 */
    windows = ntohs(tcp_protocol->tcp_windows);
    /* 窗口大小 */
    urgent_pointer = ntohs(tcp_protocol->tcp_urgent_pointer);
    /* 紧急指针 */
    flags = tcp_protocol->tcp_flags;
    /* 标识 */
    checksum = ntohs(tcp_protocol->tcp_checksum);
    /* 校验和 */
    printf(“-------  TCP协议   -------\n“);
    printf(“源端口号:%d\n“ source_port);
    printf(“目的端口号:%d\n“ destination_port);
    switch (destination_port)
    {
        case 80:
            printf(“上层协议为HTTP协议\n“);
            break;
        case 21:
            printf(“上层协议为FTP协议\n“);
            break;
        case 23:
            printf(“上层协议为TELNET协议\n“);
            break;
        case 25:
            printf(“上层协议为SMTP协议\n“);
            break;
        case 110:
            printf(“上层协议POP3协议\n“);
            break;
        default:
            break;
    }
    printf(“序列码:%u\n“ sequence);
    printf(“确认号:%u\n“ acknowledgement);
    printf(“首部长度:%d\n“ header_length);
    printf(“保留:%d\n“ tcp_protocol->tcp_reserved);
    printf(“标记:“);
    if (flags &0x08)
        printf(“PSH “);
    if (flags &0x10)
        printf(“ACK “);
    if (flags &0x02)
        printf(“SYN “);
    if (flags &0x20)
        printf(“URG “);
    if (flags &0x01)
        printf(“FIN “);
    if (flags &0x04)
        printf(“RST “);
    printf(“\n“);
    printf(“窗口大小:%d\n“ windows);
    printf(“校验和:%d\n“ checksum);
    printf(“紧急指针:%d\n“ urgent_pointer);

data = (c

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2700  2010-09-25 23:09  ResPro\TastMain.cpp

     文件      56832  2010-09-25 23:09  ResPro\ResPro.opt

     文件       2136  2010-09-25 21:25  ResPro\ResPro.h

     文件        769  2010-09-23 15:05  ResPro\StdAfx.h

     文件        293  2010-09-23 15:05  ResPro\StdAfx.cpp

     文件       4766  2010-09-24 23:10  ResPro\ResPro.dsp

     文件       1208  2010-09-23 15:05  ResPro\ReadMe.txt

     文件      19519  2010-09-25 23:06  ResPro\ResPro.cpp

     文件        639  2010-09-25 23:06  ResPro\out.pcap

     文件       3168  2010-09-25 21:01  ResPro\Reference\日志.txt

     文件        537  2010-09-23 15:05  ResPro\ResPro.dsw

     文件      82944  2010-09-25 23:09  ResPro\ResPro.ncb

     文件       1484  2010-09-25 23:09  ResPro\ResPro.plg

     文件       4587  2010-09-23 15:22  ResPro\ProHeader.h

     目录          0  2010-09-25 23:09  ResPro\Reference

     目录          0  2010-09-23 15:05  ResPro

----------- ---------  ---------- -----  ----

               181582                    16


评论

共有 条评论