Fiddler下解析Protobuf数据的插件

5,333 阅读1分钟

ProtobufInspector

Fiddler下Protobuf数据解析插件。

插件包含文件

Protobuf2Json.dll Inspectors/ProtobufInspector.dll

使用方法:

把插件文件拷贝到Fiddler的安装目录下。

插件拷贝完成并启动Fiddler之后,Fiddler日志栏会输出如下信息:

Loading Log

插件工作原理:

  1. 当Fiddler处理某一个session时,插件判断Response Headers中的"Content-Type"是否为"application/x-protobuf", 如果是,则将当前session的Response Data当作"Protobuf"数据。
  2. 然后再获取"Content-Type"中的"messageType"信息,当作当前Protobuf数据的"Message Type"。
  3. 然后再尝试获取"Content-Type"中的"desc"或者"Desc"信息,如果存在,则当作 Protobuf数据的描述文件(descriptorset)的URL并在解析前将此descriptorset文件下载下来。
  4. 如果Message Type和descriptorset文件都存在,则利用DynamicMessage来解析Protobuf数据。否则,需要使用者在Inspector/Protobuf中手工输入本地Proto文件所在的路径和Message Type,然后进行数据解析。

Inspector

插件实现说明:

  1. 由于Protobuf CSharp版本中对于DynamicMessage的支持较弱,Protobuf2Json是基于Protobuf C的Dynamic Messsage实现了Protobuf数据的解析并转换成JSON格式的数据。
  2. ProtobufInspector是实现了Fiddler插件接口的CSharp功能,同时调用Protobuf2Json将Protobuf数据解析之后,以JSON格式展示出来。
  3. x86发行文件未测试过。