首页
社区
课程
招聘
[求助]protobuf在没有.proto文件下如何反解?
2019-1-30 16:33 12697

[求助]protobuf在没有.proto文件下如何反解?

2019-1-30 16:33
12697
有一帧数据是protobuf序列化的。以前都是字节++死磕的,但这个太大了。下面是一个小样本用--decode_raw解析的。请问如何生成.proto文件或者在代码中读出?
2 {
  5 {
    2: "com.tencent.mm"
    3: "\345\276\256\344\277\241"
    4: "6.7.3"
    5: 79193979
    6: 673857536
    7: 1
    8: 1360
    9: 79193979
    10: 673857536
  }
}
3: 1


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (23)
雪    币: 5855
活跃值: (438)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
NightGuard 1 2019-1-30 17:17
2
0
自己照着写一个proto定义文件就可以了,就字符串和整数
雪    币: 60
活跃值: (389)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
褐眼男子 1 2019-1-30 17:23
3
0
NightGuard 自己照着写一个proto定义文件就可以了,就字符串和整数
正在写,我想知道为啥有2 有5 没有 1234呢 是可选变量的意思吗?而且这个比较短有个长的13万字节
最后于 2019-1-30 17:24 被褐眼男子编辑 ,原因:
雪    币: 5855
活跃值: (438)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
NightGuard 1 2019-1-30 17:44
4
0
2, 5, 3 以及冒号前面那些数字,都是tag
雪    币: 60
活跃值: (389)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
褐眼男子 1 2019-1-30 17:49
5
0
NightGuard 2, 5, 3 以及冒号前面那些数字,都是tag
那为啥不连续呢大佬是因为有的是required有的是optional吗
雪    币: 110
活跃值: (560)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
yzlmars 2019-1-30 21:20
6
0
好巧啊,我今天也在研究这个,python我已经实现脱离.proto反解析封包流了,明天准备改写成js代码,嵌在frida脚本中,游戏安全测试经常要用,兄得,留个联系方式……互帮互助
雪    币: 60
活跃值: (389)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
褐眼男子 1 2019-1-31 09:56
7
0
嗯我也接完这个小包了 开始弄大的,上面的结构是
syntax = "proto2";


message Package
{
               
       message HAPP
       {
       required string packageName = 2;
       required string appName = 3;
       required string version = 4;
       required int32 appSize1 = 5;
       required int32 appData1 = 6;
       required int32 sel1 = 7;
       required int32 sel2 = 8;
       required int32 appSize2 = 9;
       required int32 appData2 = 10;
       }
       repeated HAPP app = 5;
}

message PackageList
{
       repeated Package  pk = 2;
       required int32 sel3 = 3;
}
联系发你私信了
雪    币: 70
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
onehero 2019-3-16 18:20
8
0
大佬能分享一份工具吗? 897958480@qq.com
雪    币: 60
活跃值: (389)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
褐眼男子 1 2019-3-18 14:45
9
0
onehero 大佬能分享一份工具吗? 897958480@qq.com
就是protoc官方的东西 你搜一下就有了
雪    币: 54
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_uuivzuoh 2019-11-7 13:18
10
0
大佬能分享一份工具吗?能给个地址吗@褐眼男子
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
我还只是个孩子啊! 2019-11-28 19:06
11
0
通过微信官方的一篇文章,可以理出思路导出一份98%全的ProtoBuf
雪    币: 211
活跃值: (511)
能力值: ( LV9,RANK:172 )
在线值:
发帖
回帖
粉丝
vmtest 2019-11-28 19:59
12
0
做过类似的。 如果是protoc生成的,raw抠出来protoc api可以直接还原。  如果像某信这种自己搞的,要自己写个代码还原了。看一下pb的格式不难。  
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
kongkong447 2020-3-12 13:15
13
0
我还只是个孩子啊! 通过微信官方的一篇文章,可以理出思路导出一份98%全的ProtoBuf
能不能分享文章的地址,或者具体的关键词呢?试了找下,没找到。
雪    币: 100
活跃值: (446)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
inflow 2020-3-12 15:32
14
0
单凭原始的字节流,不可能准确还原.proto文件所包含的语义的,结合逆向分析app的代码倒是能无限接近原始.proto语义。写一个解析工具简单的很,去看Google官网看Protobuf文档就好,前几天我花10分钟撸过一个
雪    币: 1
活跃值: (883)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zoukaiping 2020-3-15 10:40
15
0
inflow 单凭原始的字节流,不可能准确还原.proto文件所包含的语义的,结合逆向分析app的代码倒是能无限接近原始.proto语义。写一个解析工具简单的很,去看Google官网看Protobuf文档就好,前几 ...
大佬们,能个链接吗?或者发到GITHUA上去。。
雪    币: 0
活跃值: (353)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Erlösung 2020-4-15 00:30
16
0
yzlmars 好巧啊,我今天也在研究这个,python我已经实现脱离.proto反解析封包流了,明天准备改写成js代码,嵌在frida脚本中,游戏安全测试经常要用,兄得,留个联系方式……互帮互助
我抓包是乱码的protobuf能反序列化出来吗?
雪    币: 0
活跃值: (353)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Erlösung 2020-4-15 00:30
17
0
inflow 单凭原始的字节流,不可能准确还原.proto文件所包含的语义的,结合逆向分析app的代码倒是能无限接近原始.proto语义。写一个解析工具简单的很,去看Google官网看Protobuf文档就好,前几 ...
我抓包是乱码的protobuf能反序列化出来吗?
雪    币: 110
活跃值: (560)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
yzlmars 2020-4-15 08:00
18
0
Erlösung 我抓包是乱码的protobuf能反序列化出来吗?
当然没有问题了
雪    币: 1694
活跃值: (4002)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小黄鸭爱学习 2020-4-15 14:18
19
0
逆向+猜测 可以还原
雪    币: 18
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
我是新手qaq 2020-4-25 20:17
20
0
用tag就可以了,你需要proto结构
雪    币: 234
活跃值: (289)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Altai001 2020-6-9 21:12
21
0
大佬,求分享思路,我有一个结构和你这个类似的,也没用.proto文件,不知道如何还原成.proto
雪    币: 234
活跃值: (289)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Altai001 2020-6-9 22:09
22
0
我想知道为啥有2 有5 没有 1234呢 是可选变量的意思吗?
雪    币: 60
活跃值: (389)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
褐眼男子 1 2020-6-10 11:12
23
0
optional 修饰
雪    币: 155
活跃值: (176)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_L._245 2020-11-18 16:59
24
0
yzlmars 好巧啊,我今天也在研究这个,python我已经实现脱离.proto反解析封包流了,明天准备改写成js代码,嵌在frida脚本中,游戏安全测试经常要用,兄得,留个联系方式……互帮互助
大佬求一份frida 的反解析protobuf脚本
游客
登录 | 注册 方可回帖
返回