• 大小: 1.6MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-15
  • 语言: C/C++
  • 标签: DNS  pcap  

资源简介

对pcap包进行解析 获取DNS内容 C语言编写 可以对数据流进行处理

资源截图

代码片段和文件信息

////////////////////////////////////////////////////////////
//                                                        //
//             Name :  Pcap_DNS_Buffer                    //
//    Time :  2014/08/16                         //
//             Author : Tao Tianyi                        //
//    Target : Analyse DNS packet                //
//                                                        //
////////////////////////////////////////////////////////////

#include“UDP_Protocol.h“

#pragma comment(lib“ws2_32.lib“)

void Creat_Buffer(FILE * char * int);
int Deal_PKThead(char * int int * FILE *out);
int Deal_Framhead(char *int *);
int Deal_IPhead(char * int *);
int Deal_UDPhead(char * int * FILE *out);
void Check_request(char * char *);
int Check_answer(char * unsigned long * struct To_Store_Response * );
void Convert_ip(unsigned long * int);
void Crest_Output_Head(FILE *out);
void Creat_Output_Tail(FILE *out);

int main()
{
FILE *fp = NULL *out = NULL;
char *buffer *buffer_head;
int *rest_len;                                     // 数据流剩余长度
int pkt_offsetj;
int Sum_packet = 0;                                // 数据包总数
int packet_len;

pcap_header = (struct pcap_file_header *)malloc(sizeof(struct pcap_file_header));                // pcap文件报头
pkt_header = (struct pcap_pkthdr *)malloc(sizeof(struct pcap_pkthdr));                           // pcap格式中各数据包头部
fram_header = (struct FramHeader_t *)malloc(sizeof(struct FramHeader_t));                        // 以太网报头
ip_header = (struct IPHeader_t *)malloc(sizeof(struct IPHeader_t));                              // IP数据包报头
udp_header = (struct UDPHeader_t *)malloc(sizeof(struct UDPHeader_t));                           // UDP协议数据包报头
Ans_name = (struct To_Store_Response *)malloc(MAXREQ*sizeof(struct To_Store_Response));          // 存储DNS响应附带地址
IP_Adress = (struct To_Store_IP *)malloc(MAXREQ* sizeof(struct To_Store_IP));                    // 存储DNS响应附带IP

for (j = 0; j < MAXREQ; j++){
IP_Adress[j].ip = (char *)malloc(IPLENGTH);              // 宏定义管理内存申请容量 
Ans_name[j].name = (char *)malloc(NAMELENGTH);
memset(IP_Adress[j].ip 0 IPLENGTH);
memset(Ans_name[j].name 0 NAMELENGTH);
}

Buf_Out = (char *)malloc(999999);
//Buf_Out = NULL;
memset(Buf_Out 0 999999);

if ((fp = fopen(“test_all.pcap“ “rb“)) == NULL){
printf(“Fail to open !\n“);
exit(0);
}

if ((out = fopen(“output.html“ “wb“)) == NULL){
printf(“Fail to open !\n“);
exit(0);
}

Crest_Output_Head(out);

fseek(fp 0 SEEK_END);
packet_len = ftell(fp);
fseek(fp 0 SEEK_SET);
fseek(fp 0 SEEK_SET);

buffer = (char *)malloc(packet_len);
memset(buffer 0 packet_len);

Creat_Buffer(fp buffer packet_len);
buffer_head = buffer;
rest_len = &packet_len;

pkt_offset = 24;
*rest_len -= pkt_offset;
buffer += pkt_offset;

while (*rest_len > 0){
++Sum_packet;
if (Deal_PKThead(buffer Sum_packet r

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

     文件      17543  2014-09-01 14:35  对pcap数据流进行DNS分析并使用json整合\Buffer_DNS.cpp

     文件      79468  2014-09-01 14:35  对pcap数据流进行DNS分析并使用json整合\output.html

     文件      25684  2014-08-29 13:31  对pcap数据流进行DNS分析并使用json整合\output.txt

     文件      15131  2014-08-18 14:25  对pcap数据流进行DNS分析并使用json整合\test.pcap

     文件     935522  2014-08-20 15:57  对pcap数据流进行DNS分析并使用json整合\test_all.pcap

     文件       2819  2014-08-29 09:42  对pcap数据流进行DNS分析并使用json整合\UDP_Protocol.h

     文件       8122  2014-08-21 23:16  对pcap文件进行DNS分析\Dealwith_DNS.cpp

     文件      15131  2014-08-18 14:25  对pcap文件进行DNS分析\test.pcap

     文件     935522  2014-08-20 15:57  对pcap文件进行DNS分析\test_all.pcap

     文件       2340  2014-08-18 11:47  对pcap文件进行DNS分析\UDP_Protocol.h

     目录          0  2014-09-05 11:02  对pcap数据流进行DNS分析并使用json整合

     目录          0  2014-09-05 11:02  对pcap文件进行DNS分析

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

              2037282                    12


评论

共有 条评论