协议信息提取


本文档为 MrXiaoM/Edenopen in new window 开发日记。

各参数位置 in 8983

参数类/文件详细位置
app_id = sub_app_idcom.十美分.common.config.AppSettinge (phone) 和 f (pad)
sort_version_namecom.十美分.common.config.AppSettingl,其值由 StringBuilder 生成,如"8.9.83" + a
app_keyoicq.wlogin_sdk.report.event.EventConstant.EventTypeEVENT_WT_LOGIN_PASSWORD.substring(0, EVENT_WT_LOGIN_PASSWORD.indexOf("_"))
build_timeoicq.wlogin_sdk.tools.utilBUILD_TIME
apk_signMETA-INF/ANDROIDR.RSAAPK 签名 MD5
sdk_versionoicq.wlogin_sdk.tools.utilSDK_VERSION
sso_versionoicq.wlogin_sdk.tools.utilSSO_VERSION
misc_bitmapoicq.wlogin_sdk.request.WtloginHelpermMiscBitmap
main_sig_mapoicq.wlogin_sdk.request.WtloginHelpermMainSigMap
sub_sig_mapoicq.wlogin_sdk.request.WtloginHelpermSubSigMap
quaassets/qua.inicooperation.qzone.QUAQUA

APK 中解压出的 AndroidManifest.xml 是编码的,需要 AXMLPrinter2open in new window 解码,解码结果将会输出在终端。

java -cp AXMLPrinter2.jar test.AXMLPrinter AndroidManifest.xml

app_idsub_app_id 也可以在 AndroidManifest.xml 中读取,分别为 AppSetting_paramsAppSetting_params_pad,两者都值均为#之前的数字。
不同渠道获得的安装包,app_idsub_app_id 各不相同,同一个版本,不同渠道出现不同的 id 是正常的。

在 C#,apk_sign 可以这样获取

var cert = X509Certificate.CreateFromCertFile("META-INF/ANDROIDR.RSA");
var apkSign = cert.GetCertHashString(HashAlgorithmName.MD5).ToLower();

在编写 Eden 时,签名 md5 已经很久没变过了,至少在 8983 版本,签名 md5 是 a6b745bf24a2c277527716f6f36eb68d

QUA 格式

V1_AND_SQ_+版本号+_+版本代号+_+版本类型

  • 版本号 (version) 格式为 #.#.##
  • 版本代号 (code) 为 APK 的纯数字版本号
  • 版本类型 YYB_D 代表稳定版
  • 版本类型 HDBM_T 或其它值代表测试版

除了上述表格中的方法,你还可以在内置浏览器中访问网页 https://ie.icoa.cn/,从 UserAgent 中找到 QUA。