连信的protobuf数据格式

news/2024/7/7 21:29:06

点击上方蓝字[协议分析与还原]关注我们


 连信里用到的protobuf结构。

在看本文之前,可以先进行一下回顾,之前已经对协议的框架进行了整体的介绍:

连信协议整体框架

看了后结合自己的分析过程,应该有个初步的了解。后续会陆续有文章对内部的具体实现进行介绍,本文先介绍连信内部的数据格式。

连信协议里用到了很多个protobuf,对它们总结了下,可能不全,有需要的人可以再补充,适用于iOS版的协议。

包括长连接、短链接内各种消息的加密数据的格式,未加密数据的格式,taichi、kepler 、dcmdaa等链接内数据的格式,保活消息等数据的格式:

message authwithtoken //长连接第一个包 01 01
{optional string Mid     = 1;optional string Uid     = 2;optional string Token     = 3;optional string Resource  = 5;optional int32 Version      = 6;optional int32 Apns     = 7;optional string Domain     = 8;optional string DeviceId  = 9;optional string LogonSessionId  = 10;optional string Locale      = 11;
}
message authwithtokenack //长连接第一个包的响应 02 00
{optional string Mid     = 1;optional string U1     = 2;optional string U2     = 4;optional int32  U3  = 5;
}
message shorthead //taichi kepler dcmdaa头部数据
{optional string style     = 1;optional string DeviceIdorunkstr = 2;optional string h     = 3;optional string a     = 4;optional string  Versionorvn  = 5;//Versionoptional string  channel  = 6;optional string  lang  = 7;optional string  idfv  = 8;optional int32  unk1  = 10;
}
message tachiencunkinfo//taichi 加密数据部分服务器回应的未知protobuf
{optional string lxxx = 1;//类似LX-15227optional int32 unk2 = 2; //1optional int32 unk3 = 3; //2optional string unk4  = 4;//A
}
message tachiencunk //taichi 加密数据部分的未知protobuf
{optional int32 unk1  = 1; //2f 3f 73等optional int32 unk2 = 2; //648或没有optional int32  unk3  = 5;//ack中 7repeated tachiencunkinfo  info  = 6; //一个结构体,多个或没有
}
message tkdencdata1//taichi kepler dcmdaa 加密数据部分的未知protobuf 1以及 dcmdaa 加密数据部分 protobuf 2的里面的protobuf里面的protobuf
{optional string aid = 1;//aidoptional string devicejsonstr = 2; //device信息串optional string unkstr3 = 3; //00500201optional string lang  = 4;//cnoptional string style  = 5;//TD0493optional string idfa  = 6;//optional string vc  = 7;//3.5.26 vname1optional string channel  = 8;//appstoreoptional string channela  = 9;//appstoreoptional string idfv  = 10;//optional string vnorvc  = 11;//3.5.26.1 3.5.26 vnameoptional string wifiname  = 12;//Not Foundoptional string unk1  = 14;//woptional string  tm  = 15; //1586420724786optional string  maker  = 16; //appleoptional string phonename=17;//iPhone 5soptional string verjson=18;//版本信息json
}
message keplerencunkinfo//kepler 加密数据部分服务器回应的未知protobuf
{optional string unk1 = 1;//类似1optional string unk2 = 2; //$activeoptional string unk3 = 3; //1optional string unk4  = 4;//0optional string unk5  = 5;//5
}
message keplerencdata2 //kepler 加密数据部分的未知protobuf 2 及服务器回应
{optional string unk1  = 1; //未知repeated keplerencunkinfo  unk2  = 2; //一个结构体,多个或没有optional string unk3  = 3; //未知
}
message dcmdaasysinfopb//dcmdaa 加密数据部分 protobuf 2的里面的protobuf
{optional string autinfo = 1;//类似$auto_page_soptional tkdencdata1 deviceinfo = 2; //一个protobuf,和外面的protobuf格式一致optional string runinfo = 3; //运行时的信息 cts seq等optional string unk4  = 4;//空的optional int32 unk6  = 6;//1
}
message dcmdaaencdata2 //dcmdaa 加密数据部分的protobuf 2
{repeated dcmdaasysinfopb sysinfo  = 1; //一些设备信息等optional int32 unk2  = 2; //未知
}
message dcmdaaackdata //dcmdaa 加密数据服务器回应
{optional string unk1  = 1; //未知
}
message alive //保活 00 01
{optional string Mid     = 1;
}
message encmessage  //所有加密消息,统一处理 加密11 01
{optional string Mid     = 1;optional string From     = 2;optional string To     = 3;optional int32  Type  = 4;  //打招呼10,消息的响应5,rdcmd 42,文本消息1optional string  msg  = 5;//消息内容optional int32  u2  = 6;optional int32  u3= 7;optional string  Extension= 11;//描述optional int32  ExType= 12;optional string  u4= 13;optional int32  u5= 14;optional int32  SubType= 16;
}

希望对大家的分析有帮助。

别忘点“在看”、“赞”和“分享”

新的规则,及时收推文要先给公号星标

别忘了星标一下,不然就错过了


长按进行关注,时刻进行交流。


http://lihuaxi.xjx100.cn/news/237663.html

相关文章

Caused by: org.xml.sax.SAXParseException: 不允许有匹配 [xX][mM][lL] 的处理指令目标。

版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcs_dn/article/details/81001749 Caused by: org.xml.sax.SAXParseException: 不允许有匹配 "[xX][mM][lL]" 的处…

区块链的共识算法

链客,专为开发者而生,有问必答! 此文章来自链客区块链技术问答社区,未经允许拒绝转载。 共同算法11 是经过特殊节点的投票,在短时间内完成对买卖的承认,假如利益不相干的若干个节点达到共同&#xff0c…

php的基础知识(四)

14、数组: 索引数组: 下标就是数字开始的。 $arr [a,b,c,1,2,3]; 关联数组: $arr [ a > b, c > d; e > f ]; 二维数组: 关联和索引混合的。 $arr [ a, b, c, d > [ e > h, f, g ], i, ]; 三维数组和多维数组。 …

如何使用Python和Tkinter构建Toy Markdown编辑器

Markdown editors are trending these days. Everybody is creating a markdown editor, and some of them are innovative while some of them are boring. Markdown编辑器近来呈趋势。 每个人都在创建降价编辑器,其中有些人很创新,而有些人很无聊。 A…

修改centos7的网卡名

1. 使用命令修改网卡名 cd /etc/sysconfig/network-scripts/ mv ifcfg-ens33 ifcfg-eth0 mv ifcfg-ens34 ifcfg-eth1 2. 修改网卡内容 cat > ifcfg-eth0<<END TYPEEthernet BOOTPROTOnone DEFROUTEyes IPV4_FAILURE_FATALno NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR1…

区块链中的记账原理讲解

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自链客区块链技术问答社区&#xff0c;未经允许拒绝转载。 很多人只了解过比特币&#xff0c;不知道区块链&#xff0c;比特币实际是一个运用了区块链技术的应用&#xff0c;只是比特币当时太热&…

连信的会话加密密钥协商过程

点击上方↑↑↑蓝字[协议分析与还原]关注我们 “ 介绍连信会话加密密钥的协商过程。” 公号内之前已经对协议的框架和协议内的数据格式进行了介绍&#xff0c;有需要可以回顾下&#xff1a; 连信协议整体框架 连信的protobuf数据格式 本文对连信的会话加密密钥协商过程进行介绍…

为什么大家都推荐我学Linux

2019独角兽企业重金招聘Python工程师标准>>> 最近朋友总是推荐我去学Linux&#xff0c;我本人虽说是计算机专业的&#xff0c;但是我感觉在上学的时候好像还真没学到东西&#xff0c;现在也是干着一份与计算机半毛钱关系都没有的工作。朋友总是说Linux多好&#xff…