某钱包转账付款算法分析篇

本文为看雪论坛优秀文章
看雪论坛作者ID:kzzll
1
抓包
2
定位


!str.contains("qpay_ydt.cgi") && !str.contains("qpay_balance.cgi") && !str.contains("qpay_fpay_regbind.cgi")
这里直接对它进行HOOK,我使用的是frida(雷电4模拟器环境),我们对这个signEncdata函数进行分析它具体的传参,根据代码过程大概判断出,str是URL,剩余2个,拭目以待。
var EncryptRequest = Java.use("com.tenpay.sdk.basebl.EncryptRequest");
EncryptRequest['signEncdata'].implementation = function(str,str2,map){
console.log('[signEncdata] --> str:'+str)
console.log('[signEncdata] --> str2:'+str2)
console.log(map)
var ret = this.signEncdata(str,str2,map)
console.log("[signEncdata] ret -- >" +ret)
return ret
}
如下面图所示:

但是代码没有能正常解析出来,具体它的参数打印出来的是:
[encypt] --> qquin:276265453
[encypt] --> url:https://myun.tenpay.com/cgi-bin/qwallet_misc/qpay_unified_config.cgi?ver=2.0&chv=3
[encypt] --> keyIndex:8
[encypt] --> postdata:skey=v0aaf855a20617de1e4cf7b447711a49&uin=276265453&skey_type=0
[encypt] --> pskey:D2bVXKh4GsqkNgFevM37b3Qf8h6yNyC4F4-e937-w58_
--------
[encypt] --> qquin:276265453
[encypt] --> url:https://myun.tenpay.com/cgi-bin/clientv1.0/qpay_balance.cgi?ver=2.0&chv=3
[encypt] --> keyIndex:8
[encypt] --> postdata:token_id=5M6477be1c9445ba1621c6319e403075&p=31363335363339383237F0D6C4CEE093903BFD05D6303A581B97E8442ABD7934E8CCC9D71AAF6B60BD5186B12729677B20A25232EDECB539B81775F69AD79B48AF90B0D96BD8AB1D18E3EEAC513F451010C782F3919935171EA650F937A4C733865ECE77E9B4352D6BE6360D50605106FD9581221F92A809A42FC8617884EEAD942F721C71A3A32B9A642F94676A49F7C74E45B0D7B62802809FDEE2EE68×tamp=1635639827&is_reentry=0&skey=v0aaf855a20617de1e4cf7b447711a49
[encypt] --> pskey:D2bVXKh4GsqkNgFevM37b3Qf8h6yNyC4F4-e937-w58_

这些数据最长的就是postdata,也就是它发出去的数据的明文。
这个函数触发了2次,第一次估计是在支付之前获取某些信息,而第二次则是提交支付密码(参数p,也是加密后的)以及token_id(支付订单号)进行完成支付。
而skey估计则是cookie之类的关键token。
3
枯燥无味的分析
L_0x01b4:
com.tenpay.ndk.DesEncUtil r0 = com.tenpay.sdk.basebl.EncryptRequest.des // Catch:{ all -> 0x01cc }
java.lang.String r2 = r8.toString() // Catch:{ all -> 0x01cc }
postdata2 = keyIndex
r0.encryptDes(postdata2, r2) // Catch:{ all -> 0x01cc }
var DesEncUtil = Java.use("com.tenpay.ndk.DesEncUtil");
DesEncUtil['encryptDes'].overload('int', 'java.lang.String').implementation = function(key,data){
var ret = this.encryptDes(key,data)
console.log("[encryptDes] data --> "+data)
console.log("[encryptDes] key --> "+key)
console.log("[encryptDes] ret --> "+ret)
return ret
}
[encryptDes] data --> pskey=D2bVXKh4GsqkNgFevM37b3Qf8h6yNyC4F4-e937-w58_&skey=v0aaf855a20617de1e4cf7b447711a49&uin=276265453&skey_type=0&h_net_type=WIFI&h_model=android_mqq&h_edition=84&h_location=2F55FF2C8A2AA4435A87356EA9373F29%7C%7CMI%209%7C7.1.2%2Csdk25%7C3E2A52202DF351F3821979EE78BEB82C%7CD41D8CD98F00B204E9800998ECF8427E%7C1%7C&h_qq_guid=3E2A52202DF351F3821979EE78BEB82C&h_qq_appid=537100433&h_exten=
[encryptDes] key --> 8
[encryptDes] ret --> true
------
[encryptDes] data --> pskey=D2bVXKh4GsqkNgFevM37b3Qf8h6yNyC4F4-e937-w58_&token_id=5M460db95537d6b5adb2a100c1870f77&p=31363335363339383237F0D6C4CEE093903BFD05D6303A581B97E8442ABD7934E8CCC9D71AAF6B60BD5186B12729677B20A25232EDECB539B81775F69AD79B48AF90B0D96BD8AB1D18E3EEAC513F451010C782F3919935171EA650F937A4C733865ECE77E9B4352D6BE6360D50605106FD9581221F92A809A42FC8617884EEAD942F721C71A3A32B9A642F94676A49F7C74E45B0D7B62802809FDEE2EE68×tamp=1635639827&is_reentry=0&skey=v0aaf855a20617de1e4cf7b447711a49&h_net_type=WIFI&h_model=android_mqq&h_edition=84&h_location=2F55FF2C8A2AA4435A87356EA9373F29%7C%7CMI%209%7C7.1.2%2Csdk25%7C3E2A52202DF351F3821979EE78BEB82C%7CD41D8CD98F00B204E9800998ECF8427E%7C1%7C&h_qq_guid=3E2A52202DF351F3821979EE78BEB82C&h_qq_appid=537100433&h_exten=
[encryptDes] key --> 8
[encryptDes] ret --> true

如上图所示,跟进去我们发现了它真正的加密过程是在so层中完成。

我们看到它加载的是cftutils_v1、qwssl两个文件。

4
运气?

但是它并不能正常打开查看,通过十六进制查看发现,它竟然是一个APK格式。

把他转换成zip格式打开,发现了新大陆:


进入lib发现了2个惊喜文件。

而前面所说过的keyindex,其实就如箭头所示,unk_26004是一个存放加密公钥的常量,它应该是偏移了几位进行读取,以达到部分混淆作用把。
看雪ID:kzzll
https://bbs.pediy.com/user-home-885524.htm


# 往期推荐


球分享

球点赞

球在看

点击“阅读原文”,了解更多!
[广告]赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- 美国要让谷歌分拆 出售安卓等资产:谁会接盘 国产厂商有机会吗
- Nginx服务器安装SSL证书
- 为什么2023年最应该关注软件供应链安全
- 自由软件基金会正在衰亡,亟待革新!
- 蔚来用户数据遭窃取,被勒索225万美元 ;英国银行因IT系统宕机被罚4900万英镑;微信成GitHub秘密扫描合作伙伴|极客头条
- 苹果损失超 1000 万美元,前员工被控收回扣、盗窃、欺诈!
- Telegram在巴西被封禁,只因电子邮件问题未收到法院传票?
- 首批 RISC-V 手机要来了,你准备好了吗?
- 网上诈骗为何如此泛滥?360:你要的诈骗方式我都有!
- 在英雄联盟地图中寻找“数据结构的大门”
- 杭州未来科技城•Qualcomm中国•中科创达联合创新中心落成并投入使用
- 网络尖刀获京东JSRC年度第一、三,白帽排行前5包揽4名
赞助链接