爬蟲對於protobuf協議的處理

第一步處理

1.首先抓包

2.複製請求值的hex

3.打開010編輯器

4.創建hex file

5.ctrl +shift +c複製內容,並保持

6.protoc --decode_raw <存的文件路徑

1: 1
2: 1650001082017
3: 1998484019
4: 3820464515
5 {
  1: "appV"
  2: "60000"
}

第二步編輯proto文件

1.創建xxx.proto

2.更具上述內容編寫文件

syntax = "proto3";
message T{
    int32 test_1 = 1;
    int64 test_2 = 2;
    int64 test_3 = 3;
    int64 test_4 = 4;
    repeated PersonInfo personinfo = 5;
}

message PersonInfo{
    string key = 1;
    string value = 2;
}

3.輸出對應的py文件

#移動到xxx.proto所在目錄
protoc --python_out=./ xxx.proto
#prop.proto冒號後面那個點和文件名之間有個空格,忘記加空格了不會編譯通過,會報錯:Missing input file.

第三部編輯python文件

import xxx
import base64
import gzip
import zlib

def create_t():
    T = xxx.T()
    T.test_1 = 1
    T.test_2 = 1650001082017
    T.test_3 = 1998484019
    T.test_4 = 3820464515
    personinfo =T.personinfo.add()
    personinfo.key = 'A'
    personinfo.value = 'B'
    serializeToString = T.SerializeToString()
    gzipbytes = gzip.compress(serializeToString)
    base64_str1 = base64.b64encode(serializeToString)
    return gzipbytes
    
if __name__ == '__main__':
		#解析
    with open("zeus_my","rb") as fr:
        data =fr.read()
    T = xxx.T()
    T.ParseFromString(data)
    print(T)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章