记录于 com.tencent.common.config.AppSetting 的已混淆字段 a 中
com.tencent.common.app.BaseApplicationImpl(实现 mqq.app.MobileQQ)的方法 getAppId(String) 将无视参数总是返回该值
在 mqq.app.MobileQQ 的 doInit 过程中作为参数初始化了 mqq.app.MainService,在其初始化过程中又用于 com.tencent.mobileqq.msf.sdk.MsfServiceSdk 的初始化
位于 assets/revision.txt,也可由 com.tencent.common.config.AppSetting 的已混淆字段 g + "." + d(具有 String 类型的)组合而成
Msf 的 seq 初始值随机自 [0, 100000),之后逐渐以 1 递增,若值递增至大于 100000,则将会重新随机到 [60000, 160000),通过 com.tencent.mobileqq.msf.core.MsfCore.getNextSeq() 方法获取下一个 seq
通过 mqq.app.MSFServlet 转发到 Msf 的消息的 seq 初始值为 0,之后逐渐以 1 递增,无最大值限制
请求的 seq 初始值为 0,在 oicq.wlogin_sdk.request.request_global.getClone(long seqence) 以非正 sequence 值调用时(用于从存储的 seq 中恢复?)逐渐以 1 递增,值存储于产生的 request_global 副本中,全局 seq 存储于 request_global._cur_sequence,若值递增至大于 200,则将会重新设为 0
com.tencent.mobileqq.msf.sdk.MsfServiceSdk.getLoginMsg(String uin, byte[] pwd) 方法将会打包登录请求信息,之后由 com.tencent.mobileqq.msf.core.auth.b.a(ToServiceMsg msg, int buFlag, int TrafficBitmap, byte[] sigSession)(混淆名,推测类的实际名称为 AccountCenter)调用 com.tencent.mobileqq.msf.core.auth.f.a(int appId, String uin, byte[] password, int buFlag, int TrafficBitmap, byte[] sigSession)(混淆名,推测类的实际名称为 AuthCoder) 填充 wupBuffer,然后将登录请求信息发送到 com.tencent.mobileqq.msf.service.MsfService
tgtgt_key = Md5(随机 16 字节 + IMEI)
利用 Xposed 获取了 MsgCookie 信息,由获取的信息可知,msgCookie 由任意不附带 msgCookie 的第一个请求获取,之后用于登录等其他请求,不再尝试接收新的 msgCookie,始终保持相同,不会进行持久化保存
Xposed 获取的 MsgCookie 信息详见 XposedLog.txt
可使用命令行 openssl pkcs7 -inform DER -in CERT.RSA -print_certs | openssl x509 -outform DER -out CERT.cer 获取