- 博客(23)
- 收藏
- 关注
原创 关于Hyper-V网络设置经验总结(Default Switch/固定IP/SSH)
关于Hyper-V网络设置经验总结(Default Switch/固定IP/SSH)背景最近想在本机WIN10上创建几个Centos用于做几个试验,在VMWare、VirtualBox和Hyper-V中选择了Hyper-V,原因是VMWare免费版不能商用(在公司里最好不要用);Windows的Docker据说从VirtualBox也换成了Hyper-V,所以也不用VirtualBox(我不用界面,所以要求也不高)。需求我对虚机网络的基本需求是:可以通过本机SSH工具(如Putty或XShell
2021-03-28 22:22:47
36161
22
原创 Wireshark Protobuf 和 gRPC 内置解析器使用介绍
Wireshark从2.6.0版本开始支持解析Protobuf和gRPC协议,但到3.3.0/3.4.0版本相关功能才比较完备,目前已支持根据.proto文件里的定义解析Protobuf消息等功能。本文以几个示例说明Wireshark Protobuf和gRPC内置解析器的使用方法。
2020-11-01 16:38:40
7695
3
原创 Wireshark Lua: 一个从RTP抓包里导出H.264 Payload,变成264裸码流文件(xxx.264)的Wireshark插件
抓取一个包含H.264 Payload RTP包的SIP会话或RTSP会话后,用Wireshark的Play功能只能播放声音,不能播放视频。把RTP payload直接导出成文件后也是不能直接播放的,因为H.264 over RTP封包是符合RFC3984规范的,必须按照该规范把H.264数据取出来后,组成NALU,放到avi/mp4或裸码流文件等容器里后才能播放。 本人写了一个wir
2012-03-15 23:43:47
29459
7
原创 wirshark lua: 横跨多包解析方法,混搭tap与postdissector解析器(RTP timestamp差值为例)
在分析抓包时,有时需要横跨多个包计算,比如计算所有RTP包的timestamp与之前RTP包的timestamp的差值,这样可以一目了然看出timestamp是否有异常波动。理想方式是把这个计算出来的差值直接放到RTP信息后面,但wireshark lua目前没有提供可以在某协议dissector解析完后调用自己lua写的dissector的方法,除了http body可借助一些特殊的tabl
2012-03-04 01:01:19
5857
原创 RTSP回放时如何通过RTP的timestamp计算npt时间
客户端通过RTSP的PLAY方法开始播放、定位播放、快速/慢速播放(Scale)某非实时视频时,客户端会通过Range头字段指定npt时间,即让服务器开始从npt指定时刻开始播放视频(npt即播放位置离文件开始部分的相对时间)。播放开始后,下一次发送PLAY命令前,客户端需要根据服务器发来的RTP timestamp计算当前收到的帧的npt时间。客户端与服务器同步npt时间客户端可以在
2012-03-03 23:26:43
28590
5
原创 RTP timestamp与帧率及时钟频率的关系
RTP timestamp是用时钟频率(clock rate)计算而来表示时间的。RTP timestamp表示每帧的时间,由于一个帧(如I帧)可能被分成多个RTP包,所以多个相同帧的RTP timestamp相等。(可以通过每帧最后一个RTP的marker标志区别帧,但最可靠的方法是查看相同RTP timestamp包为同一帧。) 两帧之间RTP timestamp的增量
2012-03-03 22:16:38
27052
原创 实用命令:利用openssl和xxd命令把16进制字符串转换为base64字符串或把base64转成16进制表示
把16进制字符串转换为base64字符串:$ echo 6742c016888b50580934200002bf20002bf20040 | xxd -r -ps | openssl base64Z0LAFoiLUFgJNCAAAr8gACvyAEA=把base64字符串转换为16进制字符串:$ echo Z0LAFoiLUFgJNCAAAr8gACvyAEA= | opens
2012-03-03 21:28:00
12574
1
原创 wireshark lua: Dissector for RTP dynamic payload type(如何编写RTP Payload解析器)
本文介绍如何用wireshark lua编写解析RTP Payload的解析器(dissector)。
2010-09-12 17:37:00
8543
原创 Javascript URI/URL Parser and QueryString Parser/Decoder(Javascript 版本URI/URL及QueryString解析器)
一个Javascript版本的URI/URL的解析器代码,可以解析出URI/URL的scheme, query string, fragment, authority, user-info, path, host和port部分。并且可以获取Query String(如a=b&c=b%20d&e=f)中的参数。
2010-08-21 17:06:00
3506
原创 如何用Wireshark lua编写的协议解析器,查看HTTP包的URI/URL的Query String里的参数
<br />Wireshark解析HTTP GET方法不会解析URI里Query字符串里的参数(通常由GET方式提交form数据),本文介绍用lua编写一个简单的协议解析器,让这些参数解析出来,并显示在wireshark协议解析窗口里。<br /> <br />首先编写以下解析器lua脚本(用文本编辑器编辑即可),取文件名为my_http_querystring_decoder.lua:<br />-- Decode param=value from query string of http request
2010-07-02 23:23:00
12308
原创 Record wireshark lua's bugs found by myself and some suggestion
1. Lua script can not get "data-text-lines" protocol data:for example, local dataline = Field.new("data-text-lines")local data = dataline()tostring(data.value) is not ok "FT_" error
2010-04-28 23:30:00
2136
原创 wireshark lua: How to add your own tab to "Packet Bytes" pane (just like "reassembled TCP" tab) -- 用wireshark lua编写协议解析器dissecto
在用wireshark lua编写自己的协议解析器dissector时,是可以在包字节面板(Packet Bytes pane)上加入自己的tab的,就像HTTP跨越多个TCP包时,会加上一个Reassembled TCP面板到字节面板里,用于显示整个完整的HTTP消息。 样例代码如下:--Test add new tab to "Packet Bytes" pane (just li
2010-04-27 22:37:00
4634
原创 如何在wireshark里用lua脚本编写dissector解析HTTP BODY (after TCP reassembled)
本文讲述如何用wireshark支持的lua脚本语言编写解析器(dissector)来解析HTTP Body部分的内容。Wireshark本身提供的HTTP Body(MIME)媒体内容的解析有限,多为直接显示文本内容,但有时我们在查看抓包时希望能看到进一步的协议解析结果。本文介绍的内容可以帮助有这方面需要的朋友直接编写解析器,进一步解析HTTP Body部分(无论是GET/POST的HTTP B
2010-04-25 11:57:00
10854
1
原创 用Wireshark lua编写的协议解析器查看Content-Type为application/x-www-form-urlencoded的HTTP抓包
一、问题:用Wireshark抓包查看HTTP POST消息,Content-Type为application/x-www-form-urlencoded(对应HTML为那种提交后的网络包)时不太方便,因为抓包只显示了原始的param1=value1¶m2=value2这样的数据,没有把参数提出出来,并对参数进行url decode,如下图所示: 二、问题解决过程及心得
2010-04-25 00:15:00
29418
3
原创 Tomcat里配置CRL
本文介绍在Tomcat中配置HTTPS双向认证(验证客户端)的情况下,如何验证CRL。 我们可以按照文章《如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)》(http://blog.youkuaiyun.com/jasonhwang/archive/2008/04/29/2344768.aspx)里的方法在Tomcat里构建一个HTTPS验证客户端证书(Usbkey或文件数
2008-05-08 00:16:00
6523
1
原创 如何用Wireshark(Ethereal)查看HTTPS(SSL)消息里的加密内容
本文根据个人经验介绍如何用Wireshark(Ethereal的新名字)去查看捕捉到的SSL(包括HTTPS)里被加密的消息。大家在使用Tomcat等服务器配置成HTTPS(基于TLS/SSL)后,调试时往往需要用Wireshark去抓包,并希望查看其中的HTTP消息。但是HTTPS的通讯是加密的,所以默认情况下你只能看到HTTPS在建立连接之初的交互证书和协商的几个消息而已,真正的业务数据(
2008-04-30 21:52:00
49361
原创 利用ant命令的source参数在jdk1.5环境下编译jdk1.4兼容的类
JDK1.5编译的类在JDK1.4环境运行有问题。如果用Eclipse,你可以在项目属性中编译选项里有设置生成兼容JDK1.4的类。但是如果你在Eclipse里自己写Ant脚本用 命令去编译java类,则生成的仍为JDK1.5的类(执行Ant脚本时与Eclipse设置的编译选项无关)。如何解决了,其实很简单,只要在 ant 命令里加source参数。如: source="1.4"
2008-04-29 23:32:00
4734
原创 如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)
本文将介绍如何利用Tomcat的HTTPS功能,和一个自己创建的CA,来构建WEB服务器证书和个人数字证书,最终建成一个HTTPS双向认证环境(可以用于测试目的)。本文构建HTTPS双向认证的业务流程大致如下: 1. 创建WEB服务器公钥密钥,并生成服务器证书请求。 2. 利用自建的CA,根据服务器证书请求为服务器签发服务器证书。然后把服务器证书导回WEB服务器中。 3. 利用open
2008-04-29 22:05:00
31095
7
原创 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
本文介绍了openssl的几个实用命令,利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密。 一. 利用openssl命令进行BASE64编码解码(base64 encode/decode) 1. BASE64编码命令 对字符串‘abc’进行base64编码: # echo abc | opens
2008-04-27 21:33:00
31875
2
原创 巧用多个正则表达式解决取反替换问题(解决不匹配则替换问题)——用sed和perl的正则表达式
在日常工作中,你可能会遇到这种情况,你只能用正则表达式(sed或perl的正则表达式)来解决这样一个问题:替换所有不匹配某表达式的输入成为某特殊字符串。特别是某些软件的配置选项只提供了让你使用正则表达式的情况。例如配置“除了某含有域名的URL可以访问外,不能访问其它URL”等策略。本文介绍一种在没有取反正则表达式情况下,如何用三次正则表达式解决这个问题。典型的例子是电话呼叫策略配置的例子,如请
2008-04-26 23:45:00
17312
3
原创 小技巧:如何在某命令的帮助输出信息里(usage)用grep查找关键字(错误输出重定向到标准输出)
现在的Linux/UNIX命令越来越丰富,我们平时执行命令时若使用不当,命令就会自己输出使用指导(usage)到屏幕。由于命令参数众多,经常会输出一屏多的帮助信息,人眼看起来有点花。你可能想到用grep来找到你关系的参数,如: openssl ca -abc | grep gencrl但出乎意料的是,结果又输出了一屏的帮助信息。为什么grep没起作用呢,这是因为很多命令都把帮助手册
2008-04-26 01:14:00
3769
原创 利用openssl创建一个简单的CA
本文旨在利用开源openssl软件,在Linux(或UNIX/Cygwin)下创建一个简单的CA。我们可以利用这个CA进行PKI、数字证书相关的测试。比如,在测试用Tomcat或Apache构建HTTPS双向认证时,我们可以利用自己建立的测试CA来为服务器端颁发服务器数字证书,为客户端(浏览器)生成文件形式的数字证书(可以同时利用openssl生成客户端私钥)。 该简单的CA将建立在用户自己的
2008-04-26 00:59:00
30002
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人