爬虫对于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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章