十六进制报文用wireshark打开
有时候分析十六进制的报文,实在费劲,就想了个办法,把它转成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打开相关推荐
- 银河麒麟(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 ...
- Loadrunner中socket协议十六进制报文参数化方法
在做tuxedo和socket脚本的过程中,经常会碰到发送的报文是十六进制字符串.而往往我们又需要针对十六进制报文中的某些数据进行参数化.比如pos机交易,银行方面数据交易,几乎使用socket协议. ...
- 解决wireshark打开错误
错误提示如下: Lua: Error during loading: [string "/usr/share/wireshark/init.lua"]:44: dofile has ...
- kali中wireshark打开后错误
报错信息Lua: Error during loading: [string "/usr/share/wireshark/init.lua"]:46: dofile has bee ...
- 使用wireshark抓netlink包问题
使用wireshark抓netlink包问题 如何抓 网上的抓包方法如下: modprobe nlmon ip link add nlmon0 type nlmon ip link set dev n ...
- 【Free5GC】test.sh脚本测试流程
1.test.sh测试的IP地址规划和参考拓扑 free5gc代码整体架构参考的是SBA 5GC架构,如下所示,free5gc涉及到的网元有AMF.SMF.UPF.AUSF.N3IWF.NRF.NSS ...
- 跨平台应用开发进阶(四十三)一文走近网络层抓包工具:WhireShark
文章目录 一.前言 二.条件过滤 三.字段含义 四.TCP连接 4.1 三次握手示例 五.色彩规则 六.分析方法 6.1 Packet size limited during capture 6.2 ...
- Wireshark解密SWAN交互报文
首先需要StrongSwan在报文交互中记录下来IKE和ESP的秘钥信息,参见如下的save-keys.opt文件,负责这一功能的插件为save-keys.其由4个配置参数,load参数表明是否加载此 ...
- Wireshark 保存过滤后的报文
定位问题或是了解某个协议的时候,经常会用到 Wireshark 抓包,然后进行分析. Wireshark 抓包通常是指定某个网络接口,抓取这个网络接口的所有流量,这个时候抓的包经常会有一些杂音,需要剔 ...
最新文章
- [ Nowcoder Contest 165 #D ] 合法括号序列
- mxnet基础到提高(51)-Activation激活函数
- php中的意外type字符串,关于php:解析错误:语法错误,意外’文本’(T_STRING),期待’,’或’;’...
- Bitmap文件格式+生成一个BMP文件
- 全面解析resultType和resultMap的区别
- java spi机制_Java 双亲委派机制的破坏—SPI机制
- 手机数字雨_cmd命令数字雨教程
- 开源算法六轴机械臂_我从星期六早上的漫画中学到的开源知识
- 摄影测量与遥感资质乙级标准内容
- 微信开放平台、微信公众平台和微信商户平台
- java与seo_seo和java哪个更好
- WEKA-Instances-从内存中创建数据集
- leetcode剑指Offer2
- 链家网页爬虫_爬虫小技巧——以最简单的方式爬取链家房源信息
- 9、Linux文本处理三剑客之sed命令
- 中科大入学考试(数学)
- 用AnLink多屏协同软件可以同时操作电脑又看手机?
- 【历史上的今天】8 月 9 日:人工智能理论的奠基者诞生;鸿蒙 OS 发布;“云计算”概念被提出
- keil 5 报错记录:..\OBJ\templiate.axf: Error: L6218E: Undefined symbol PcdHalt (referred from rc522.o).
- DOM4J_VisitorSupport
热门文章
- pip install flask-mongoengine报错
- 基于 Android 6.0 的 小米 MIUI 8 已开源
- Debian Linux下的Python学习——列表,元组和字典之列表
- (转) Twisted 第四部分: 由Twisted支持的诗歌客户端
- Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())的注意点
- sublime生产力提升利器
- ControlStyles(枚举)
- IBM DB2 Intelligent for Data/Text Version 6
- 多线程中的互斥控制程序代码_Java中的并发——线程安全性
- xclip linux_使用xclip在Linux命令行中复制和粘贴