点击上方↑↑↑蓝字[协议分析与还原]关注我们
“ 解决在应用内绑定了证书的cocos2d应用wss长连接抓包的问题。”
在分析应用的过程中,不可避免地需要抓包。
没加密的还好说,随便找个工具抓下就可以分析了,有些应用数据使用tls加密了,但用的是系统内置的证书,把我们的抓包工具的证书导到系统里去,就可以用Charles等中间人方式抓包了。
还有些应用,采用用sslpinning,光导入证书到系统不管用,需要使用frida等工具进行hook相关接口,来禁用sslpinning,例如objection等,对常规的抓包困难场景,还算比较好用。还有些应用,tls加密数据走的非标端口,不是http协议,而是sock协议,这种,使用一些命令或工具转发流量,也能搞定。
但是,总有些应用使用的接口在三界五行之外,没被覆盖到,这种应用,如果要抓包,就需要别的解决方法,例如今天要介绍的一款cocos2d应用,websocket使用的wss协议,使用了就无法正常的抓包,如果抓包,就启动不起来,但不得不抓,一些战绩数据在里面需要提取,所以需要特别的处理。
这是一款使用了知名棋牌应用外壳的游戏,但内容改了,里面的长连接是websocket,使用7779端口,wss协议加密,也就是外面加了一层tls,这没什么,但是在cocos2djs里面,wss的websocket,需要传入绑定的证书的路径,不是使用系统默认证书,像下面这样:
e.prototype.connect = function() {
var e, t = this;
if (cc.sys.os === cc.sys.OS_ANDROID && cc.sys.isNative) cc.assetManager.getBundle("common").load("res/android/cacert", function(o, i) {
var n = i.nativeUrl;
e = new WebSocket(t._url, null, n);
t.connectWithWs(e);
}); else {
e = new WebSocket(this._url);
this.connectWithWs(e);
}
};
这种情况下,使用objection这些工具不管用,只要抓包,必然过不去,无法通过证书的校验,那怎么办呢,只能改文件了,找到这个路径对应的文件,是一个PEM文件,把我们用的抓包工具,例如Charles的证书公钥导出来,加进这个文件里,保存,换回手机相应的目录里。文件格式是这样的,每个公钥相互独立,一看就是系统里导出来用的:
GlobalSign Root CA
==================
-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
-----END CERTIFICATE-----
这个文件一般在assets目录下,搜下就能找到。
下次碰到,不妨试试,很简单,省事不少。
有问题,发消息联系。
别忘点“在看”、“赞”和“分享”
新的规则,及时收推文要先给公号星标
别忘了星标一下,不然就错过了
长按进行关注,时刻进行交流。