protobuf js逆向笔记

前言

本博文只是在学习过程中对以下文章的查漏补缺,并不完善,推荐先看以下博文

https://blog.csdn.net/qq_35491275/article/details/111721639

一、protobuf是什么?

在解析protobuf时,必须得先对protobuf有个初步的了解,参考链接:

https://blog.csdn.net/dideng7039/article/details/101869819utm_medium=distribute.pc_relevant_t0.none-task-blog

了解之后就可以编写一个属于自己的protoc文件了,当然还得先为你的计算机安装protoc的编译器,注意配置自己的环境变量,好全局使用

https://github.com/protocolbuffers/protobuf/releases/

二、使用protoc编译器解码,编译生成python/js文件?

fiddler保存抓包信息字节文件:
选择检查器,再选择hexview选项卡,可以看到最后的末尾处有一段黑色的报文,选中右键,点击save selected Bytes保存

在这里插入图片描述
该编译器可以在cmd中解码fiddler保存的字节文件

protoc --decode_raw < C:\Users\Administrator\Desktop\data

对自己编写的protoc文件进行编码生成py文件(要以./开头,即使在同一目录下)

protoc ./test.proto  --python_out=./

对自己编写的protoc文件进行编码生成js文件(要以./开头,即使在同一目录下)

protoc --js_out=import_style=commonjs,binary:./ test.proto

补充上面链接中文章未提及的部分,利用python接受数据并解析:
首先编写好返回数据的protoc文件,再利用上面的cmd命令对其编译成py文件,并导入

# jie.protoc文件如下
syntax = "proto3"; // 定义proto的版本

message Number {
    int32 id1 = 1;
    int32 id2 = 2;
    int32 id3 = 3;
    int32 id4 = 4;
    int32 id5 = 5;
    int32 id6 = 6;
    int32 id7 = 7;
    int32 id8 = 8;
    int32 id9 = 9;
    int32 id10 = 10;
}
# 解析代码
# jie_pb2为编译好的py文件
import proto.jie_pb2 as cls  
# Number 为 message的名字
Number = cls.Number()
Number.ParseFromString(response.content)
print(Number.id1)  #  通过其属性的方式获取数据   结果  1:3129

总结

完结撒花

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值