有时候分析十六进制的报文,实在费劲,就想了个办法,把它转成wireshark可以打开的文件, 另外wireshark也有 text2pcap程序(但是必须固定格式的原文本,不方便)以下是自己随便写了一个源码,编译成小工具,就可以方便使用了, linux环境下通过.

直接复制代码可能有错,error: stray 则说明文件为“带BOM头的UTF8”编码格式,相应的解决方法是将文件转换为“不带BOM头的UTF8”编码格式,Notepad++就带有这样的功能
// hex2pcap.c :
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
/*just for demo, auther: xu qipeng*/
int main(int argc,char **argv) { char buf[100],*p;   // .pcap文件有自己的格式,占40字节, 这里先 hard code char *pcap_format = "D4C3B2A1020004000000000000000000FFFF00000100000000000000000000004000000040000000"; char pcap_hdr[40]; FILE *fp;  //输出文件的指针 char b; int i = 0; char total = 0, n = 0; memset(buf,0,sizeof(buf)); memset(pcap_hdr,0,sizeof(pcap_hdr)); if((fp=fopen("pcap.pcap","w"))==NULL) { printf("open error!\n"); exit(0); } p = pcap_format; for(i=0; i< 40; i++) { sscanf(p,"%02hhx",&pcap_hdr[i]);//hhx表示一个占8位的十六进制数 p+=2; fputc(pcap_hdr[i],fp); //先把pcap头部写入文件 } while(fgets(buf,sizeof(buf),stdin)!=NULL) //从标准输入读文本 { p = buf; while(p!=NULL) { if((n = sscanf(p,"%hhx",&b)) < 0) break; total += n; fputc(b,fp); if((p=strstr(p," "))!=NULL) { p++; if(strncmp(p," ",1)==0) { printf("warning format with three space... \r\n"); p++; if(strncmp(p," ",1)==0) { printf("error format with three space... \r\n"); fclose(fp); exit(0); } } } } memset(buf,0,sizeof(buf)); } fseek(fp, 0, SEEK_SET); pcap_hdr[32] = pcap_hdr[36] = total; //32字节,36字节表示长度 for(i=0; i< 40; i++) { fputc(pcap_hdr[i],fp);  //前面把pcap头部写入文件了, 这里over write一下 } fclose(fp); return 0; }

gcc -o hex2pcap    hex2pcap.c  生成程序

测试:hex是一个文本文件,空格隔开的,行末每空格,hex2pcap   是编译出的程序,如下执行完后生成pcap.pcap,就可以用wireshark打开pcap.pcap文件了

转载于:https://www.cnblogs.com/niyoulaipianwo/p/6497394.html

十六进制报文用wireshark打开相关推荐

  1. 银河麒麟(linux)wireshark 打开抓包报错 The capture session could not be initiated on interface ‘enp2s0‘(You...

    版本:银河麒麟桌面操作系统V10(SP1) 内核:Linux 5.4.18-28.23-bj-generic CPU:Loongson-3A5000 终端输入 uname -m 查看 架构: loon ...

  2. Loadrunner中socket协议十六进制报文参数化方法

    在做tuxedo和socket脚本的过程中,经常会碰到发送的报文是十六进制字符串.而往往我们又需要针对十六进制报文中的某些数据进行参数化.比如pos机交易,银行方面数据交易,几乎使用socket协议. ...

  3. 解决wireshark打开错误

    错误提示如下: Lua: Error during loading: [string "/usr/share/wireshark/init.lua"]:44: dofile has ...

  4. kali中wireshark打开后错误

    报错信息Lua: Error during loading: [string "/usr/share/wireshark/init.lua"]:46: dofile has bee ...

  5. 使用wireshark抓netlink包问题

    使用wireshark抓netlink包问题 如何抓 网上的抓包方法如下: modprobe nlmon ip link add nlmon0 type nlmon ip link set dev n ...

  6. 【Free5GC】test.sh脚本测试流程

    1.test.sh测试的IP地址规划和参考拓扑 free5gc代码整体架构参考的是SBA 5GC架构,如下所示,free5gc涉及到的网元有AMF.SMF.UPF.AUSF.N3IWF.NRF.NSS ...

  7. 跨平台应用开发进阶(四十三)一文走近网络层抓包工具:WhireShark

    文章目录 一.前言 二.条件过滤 三.字段含义 四.TCP连接 4.1 三次握手示例 五.色彩规则 六.分析方法 6.1 Packet size limited during capture 6.2 ...

  8. Wireshark解密SWAN交互报文

    首先需要StrongSwan在报文交互中记录下来IKE和ESP的秘钥信息,参见如下的save-keys.opt文件,负责这一功能的插件为save-keys.其由4个配置参数,load参数表明是否加载此 ...

  9. Wireshark 保存过滤后的报文

    定位问题或是了解某个协议的时候,经常会用到 Wireshark 抓包,然后进行分析. Wireshark 抓包通常是指定某个网络接口,抓取这个网络接口的所有流量,这个时候抓的包经常会有一些杂音,需要剔 ...

最新文章

  1. [ Nowcoder Contest 165 #D ] 合法括号序列
  2. mxnet基础到提高(51)-Activation激活函数
  3. php中的意外type字符串,关于php:解析错误:语法错误,意外’文本’(T_STRING),期待’,’或’;’...
  4. Bitmap文件格式+生成一个BMP文件
  5. 全面解析resultType和resultMap的区别
  6. java spi机制_Java 双亲委派机制的破坏—SPI机制
  7. 手机数字雨_cmd命令数字雨教程
  8. 开源算法六轴机械臂_我从星期六早上的漫画中学到的开源知识
  9. 摄影测量与遥感资质乙级标准内容
  10. 微信开放平台、微信公众平台和微信商户平台
  11. java与seo_seo和java哪个更好
  12. WEKA-Instances-从内存中创建数据集
  13. leetcode剑指Offer2
  14. 链家网页爬虫_爬虫小技巧——以最简单的方式爬取链家房源信息
  15. 9、Linux文本处理三剑客之sed命令
  16. 中科大入学考试(数学)
  17. 用AnLink多屏协同软件可以同时操作电脑又看手机?
  18. 【历史上的今天】8 月 9 日:人工智能理论的奠基者诞生;鸿蒙 OS 发布;“云计算”概念被提出
  19. keil 5 报错记录:..\OBJ\templiate.axf: Error: L6218E: Undefined symbol PcdHalt (referred from rc522.o).
  20. DOM4J_VisitorSupport

热门文章

  1. pip install flask-mongoengine报错
  2. 基于 Android 6.0 的 小米 MIUI 8 已开源
  3. Debian Linux下的Python学习——列表,元组和字典之列表
  4. (转) Twisted 第四部分: 由Twisted支持的诗歌客户端
  5. Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())的注意点
  6. sublime生产力提升利器
  7. ControlStyles(枚举)
  8. IBM DB2 Intelligent for Data/Text Version 6
  9. 多线程中的互斥控制程序代码_Java中的并发——线程安全性
  10. xclip linux_使用xclip在Linux命令行中复制和粘贴