首先我们F12打开开发者浏览器,点击network,点击ws,我们看到有一条wss连接。 然后我们在send下断回溯到加密处。 这里下个断,F9跳过。我们可以看到有几个参数。
通过多年的经验分析,CMD类似于执行编码,对应类型的函数,比如CMD:601就是发送私信,CMD:200可能是登录包。当然这个还是得看源码。
通过上面的函数可以得出
function u(e) { const t = i.encode(e).finish();//进行byte protobuf序列化 return new Uint8Array(t) //返回byte}原来只是protobuf序列化加密。那就简单了
然后继续跟进找到
function f(e) { const t = a.encode(e).finish();//进行byte protobuf序列化 return new Uint8Array(t)//返回byte}发现f的json包里payload包含了u序列化返回byte。。。
事情竟然如此简单。。。再仔细看包头,发现是webpackJsonp_N_E。
到这里。事情就变得很简单了。
知道nodejs调用webpackJsonp_N_E,导入该有的包,提供参数。 只需要ticket,token,与用户的id即可私信用户。
在这里我用易语言实现了私信协议 Q57428397