2011-06-16 112 views

回答

1

甲protobuf的消息是在內部不明確的,除非你有.proto模式(或可以推斷架構)可用的,如(例如)「字符串」線型可以表示:

  • 一個UTF-8字符串
  • 一個BLOB
  • 一個子消息
  • 填充陣列

對於所有導線類型(可能除了「組」)都存在類似的歧義。

我的建議是通過現有的反序列化過程(針對大概在項目中可用的類型模型)運行它以獲得適合檢查的對象模型。從對象模型你有所有通常的選擇 - 反射,通過XmlSerializer/JavaScriptSerializer等序列化

如果你只有原始數據,有一個wireshark插件可能有幫助,或protobuf網存在一個ProtoReader類可能對解析這樣的流有用;但這裏強調的是,這個流是孤立解密的棘手。

+0

我確實有.proto文件,這有幫助嗎? – user294569 2011-06-16 13:56:06

+0

@ user294569那麼最簡單的方法是*仍然*將其反序列化爲您的對象模型:) – 2011-06-16 14:40:10