sinat_30329511
hair_man
采纳率51.6%
2015-08-04 02:37 阅读 3.3k
已采纳

如何将一串十六进制字符使用C语言写到.pcap文件并使用wireshark打开

提示数据包过大怎么回事
例如将下面这一个网络抓取的数据包的十六进制字符串写进.pcap文件。
BE 03 00 00 40 00 00 00 AC 23 00 00 A4 09 00 00 30 DD 19 1F 41 CB D0 01 6E 00 D6 2E 29 47 09 46 B4 23 3E E7 BC D6 78 EF E9 03 00 10 04 00 00 00 01 00 00 C0 02 06 00 80 7E 01 00 00 28 02 00 00 A1 1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 01 80 00 00 6E 03 00 0C 00 00 00 0C 00 00 00 62 03 00 00 B0 83 FE A7 2A 5E 88 25 93 02 28 B9 08 00 45 74 03 54 5B 5E 40 00 32 06 E8 12 7B 81 C4 2A C0 A8 01 6B 37 E5 77 7F 66 C1 44 66 E1 01 90 4D 50 18 16 D0 C7 C8 00 00 00 00 03 2C 00 AB 41 30 00 32 00 00 00 01 5B 4C 69 76 65 44 65 66 61 75 6C 74 43 6F 6E 66 69 67 5D 0D 0A 41 64 76 65 72 74 43 6F 75 6E 74 3D 31 30 0D 0A 41 75 74 6F 50 72 65 44 6F 77 6E 50 32 50 53 70 65 65 64 4C 69 6D 69 74 48 74 74 70 3D 35 31 32 30 30 0D 0A 46 72 65 65 48 74 74 70 53 74 61 72 74 54 69 6D 65 3D 33 0D 0A 46 72 65 65 48 74 74 70 53 74 6F 70 54 69 6D 65 3D 31 31 0D 0A 47 4E 45 54 69 6D 65 3D 33 0D 0A 47 4E 53 54 69 6D 65 3D 31 31 0D 0A 4C 69 76 65 46 69 72 73 74 48 74 74 70 42 75 66 66 65 72 54 69 6D 65 3D 33 30 0D 0A 69 45 6E 61 62 6C 65 50 72 65 70 75 73 68 3D 31 0D 0A 69 48 65 61 72 74 42 65 61 74 4D 61 78 46 61 69 6C 54 69 6D 65 73 3D 33 0D 0A 69 48 65 61 72 74 42 65 61 74 54 69 6D 65 4D 73 3D 32 35 30 30 30 0D 0A 69 4C 6F 67 69 6E 52 74 79 4D 61 78 54 69 6D 65 73 3D 35 0D 0A 69 4C 6F 67 69 6E 52 74 79 54 69 6D 65 4D 73 3D 33 30 30 30 0D 0A 69 4D 69 6E 50 65 65 72 43 6F 75 6E 74 3D 32 30 0D 0A 69 50 72 65 70 75 73 68 44 6F 77 6E 6C 6F 61 64 53 70 65 65 64 3D 31 30 32 34 30 30 30 0D 0A 69 50 72 65 70 75 73 68 44 6F 77 6E 6C 6F 61 64 54 69 6D 65 4F 75 74 3D 36 30 30 0D 0A 69 50 72 65 70 75 73 68 4D 6F 75 73 65 4D 6F 76 65 49 6E 74 65 72 76 61 6C 3D 36 30 0D 0A 69 50 72 65 70 75 73 68 51 75 65 72 79 49 6E 74 65 72 76 61 6C 3D 36 30 30 0D 0A 69 50 72 65 70 75 73 68 51 75 65 72 79 55 70 64 61 74 65 49 6E 74 65 72 76 61 6C 3D 34 33 32 30 30 0D 0A 69 50 72 65 70 75 73 68 52 65 74 72 79 54 69 6D 65 73 3D 33 0D 0A 69 50 72 65 70 75 73 68 53 74 6F 72 61 67 65 53 69 7A 65 3D 35 30 30 0D 0A 69 50 75 6E 63 68 52 74 79 4D 61 78 54 69 6D 65 73 3D 32 0D 0A 69 50 75 6E 63 68 52 74 79 54 69 6D 65 4D 73 3D 31 30 30 30 0D 0A 69 53 65 6C 65 63 74 54 69 6D 65 4F 75 74 4D 73 3D 31 30 30 30 0D 0A 69 53 68 61 72 65 50 65 65 72 3D 30 0D 0A 6E 45 6D 65 72 67 65 6E 63 79 54 69 6D 65 3D 31 35 0D 0A 75 41 75 74 6F 50 72 65 44 6F 77 6E 50 32 50 53 70 65 65 64 4C 69 6D 69 74 48 74 74 70 56 49 50 3D 31 30 32 34 30 30 30 30 30 0D 0A 75 4C 69 6D 69 74 54 69 6D 65 45 6E 64 3D 32 34 0D 0A 75 4C 69 6D 69 74 54 69 6D 65 53 74 61 72 74 3D 31 39 0D 0A 75 4D 61 78 4E 65 77 41 64 64 50 65 65 72 3D 33 38 34 0D 0A 75 4D 69 6E 54 69 6D 65 4F 75 74 42 75 66 66 65 72 3D 33 30 30 30 0D 0A 75 50 34 50 55 72 6C 46 72 65 65 48 74 74 70 4F 70 65 6E 3D 30 0D 0A 75 69 52 65 70 6F 72 74 53 6F 75 72 63 65 43 6F 75 6E 74 3D 32 35 36 0D 0A 75 69 53 74 6F 70 50 32 50 54 69 6D 65 3D 31 30 0D 0A 76 6F 64 5F 63 6E 74 3D 31 32 38 0D 0A

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    sinat_30329511 hair_man 2015-08-21 09:00

    如果这些数据完成时pcap文件的十六进制文件,那么按照给出代码的回答直接写入文件是正确的,但是由于这些数据仅仅只是pcap文件下,除去数据头的十六进制数据,所以如果直接写入文件还是会产生错误,经过不断地测试,最终放弃按照pcap结构体,将数据赋值后写入文件,因为总是存在一些大大小小的bug,最后确定还是使用libpcap,详细:

                        http://ask.csdn.net/questions/199693
    
    点赞 评论 复制链接分享
  • devmiao devmiao 2015-08-06 21:17

    用C#很简单,只要两行
    string s = "BE 03 00 00 40 00 00 00...";
    File.WriteAllBytes("x:\1.pcap", s.Split(' ').Select(x => Convert.ToByte(x, 16)).ToArray());

    点赞 3 评论 复制链接分享
  • hxm_ss5224 My_It5224 2015-08-04 06:39
    点赞 评论 复制链接分享
  • chaobo_lu 零度永恒 2015-08-06 09:25

    不知道这是不是你想要的

     unsigned char *p, dataBuf[dataLen];
     int i;
     char ch[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
     char wbuf[3];
    
     p = dataBuf;
     i = 0;
     wbuf[2] = ' ';
     while(i < dataLen)
     {
       wbuf[0] = ch[(((*p)>>4)&0x0F)];
         wbuf[1] = ch[((*p)&0x0F)];
         fwrite(file, wbuf, 3);
         p++;
     }
    
    点赞 评论 复制链接分享

相关推荐