我試圖從一個使用protobuf的程序創建的文件中獲取原始標題消息。我不擁有源程序或任何東西,但我會很滿意protoc --decode_raw
的輸出。不幸的是,這不起作用,因爲我得到「無法解析輸入」的錯誤。我相信這是因爲文件中有protobuf數據的標題。源程序是DOTA2,文件就是這樣開始的;意識到文件的哪一部分是標題,什麼是標題消息
50 42 44 45 4d 53 32 00 f0 54 0e 03 f7 bf 0d 03
01 ff ff ff ff 0f 7b 0a 08 50 42 44 45 4d 53 32
00 10 2c 1a 2e 56 61 6c 76 65 20 44 6f 74 61 20
32 20 45 55 20 4e 6f 72 74 68 20 53 65 72 76 65
72 20 28 73 72 63 64 73 31 32 35 2e 31 38 35 2e
36 34 29 22 0d 53 6f 75 72 63 65 54 56 20 44 65
6d 6f 2a 05 73 74 61 72 74 32 1f 2f 6f 70 74 2f
73 72 63 64 73 2f 64 6f 74 61 2f 64 6f 74 61 5f
76 31 38 33 31 2f 64 6f 74 61 38 02 40 01 48 01
52 00 08 ff ff ff ff 0f 11 08 01 10 01 1a 0b 44
02 82 e8 01 08 00 0a 00 0c 00 08 ff ff ff ff 0f
16 08 02 10 02 1a 10 d3 34 28 14 cc d1 85 c9 d1
41 e0 b3 46 47 06 20 08 ff ff ff ff 0f e7 03 08
03 10 03 1a e0 03 98 70 0f 20 d4 26 40 10 60 04
80 04 c0 b0 f5 e0 59 d1 48 40 01 61 91 17 80 01
b4 25 22 22 f4 c8 7d bc bc c1 d1 bd cc c9 8d 91
cd bd 90 bd d1 85 bd 90 bd d1 85 7d d9 c5 e0 cc
c4 bc 90 bd d1 85 e9 15 cc d1 85 c9 d1 29 06 20
4c bd d5 c9 8d 95 51 59 49 06 00 68 06 ac 06 20
我沒有知識或經驗使用protobuf的努力,所以我有點不確定,其中頭端和protobuf的消息開始解碼此文件之前。我非常有信心,達到「..v1831/dota8」是標題的一部分,但刪除這仍然給我沒有解析輸入問題。
我已經在任何關於這種類型的文件(這是一個DOTA2演示下載)的細節看過網絡,還有其他程序人做了這樣的任務,但我找不到明確的切割有關標題長度的信息。我使用這部分是爲了瞭解protobuf,所以使用另一個應用程序並不是我正在尋找的東西。
僅供參考,我打算最終在vb.net中使用這個工具,因此我使用protobuf-net(我不這樣認爲它與問題/答案相關,但爲防萬一,它的格式爲here)。
如果你可以提供數據的十六進制轉儲,我可能能夠找出標題。但是你只提供了文本,這意味着一些位已經丟失,所以我不能從中獲得太多。我最好的猜測是,前8個字節是一個「幻數」,然後protobuf數據開始。 –
@KentonVarda我幾分鐘前完全錯過了你的評論!我用十六進制轉儲更新了問題,而不是文本。任何猜測? – FraserOfSmeg