app名:洞见者
【逆向背景因素】
这个app是海底捞的神秘客任务平台,任务全靠抢,但是他的消息推送很不及时,往往看到推送了,任务也抢没了,于是想写一个云监控。
对app的任务列表进行抓包,尝试修改city_code直接提交,提示加密参数校验不成功,在论坛上搜了下,有一篇文章说是消息长度这个header会对这个有影响,但是我个人认为跟这个没什么关系,又看到有一个加密参数sign,32位字母数字混合,考虑为md5,但是由于是摘要算法,想直接看明文不太可能,看了下壳,梆梆企业版。以为会有反hook之类的,发现并没有。打开Inspeckage尝试免脱壳直接看到加密前的原文,确实直接看到了
WechatIMG673.png (104.01 KB, 下载次数: 0)
下载附件
2023-1-20 13:47 上传
但是还是很懵逼,全是乱码,并且找不到什么头绪,没办法,还是得脱壳,掏出来DITOR,用通用模式居然就直接脱掉了。。拖入jadx-gui,直接搜索上面md5定位到的函数“getSignBody”,顺利搜索到,然后算法就完全解密完成,完成函数见下图,忽略我做的标记,懒得重新截图了。
WechatIMG1427.png (53.12 KB, 下载次数: 0)
下载附件
2023-1-20 13:47 上传
用Node.js重写了一下加密算法,我也一起贴出来。
[JavaScript] 纯文本查看 复制代码let buffer = Buffer.from(data).toString('base64')
var sign = ('Xangah6iephe1Zsb'+buffer).split("").sort().join("")
sign = md5(sign)
传入的data即为要post的json数据,经测试完全可用,本人为纯小白,如文章内有什么不合理的内容,望大家指正!