某电商App sign算法升级验证
2021-03-06 11:30:48 Author: 91fans.com.cn(查看原文) 阅读量:423 收藏

一、目标

一、目标

App升级了,可是他的算法是否也升级了呢?这是个问题。我们需要来快速验证下,否则李老板就要抓狂了。

二、分析

在之前的 某电商App签名算法解析(一) 中我们定位了 com.xxxxxxxx.common.utils.BitmapkitUtils 类 和他的 getSignFromJni 函数是计算sign的关键函数。

在新版本里面,我们先用Objection来hook一下 com.xxxxxxxx.common.utils.BitmapkitUtils

objection -g com.xxxxxxxx.app.mall explore
android hooking watch class 'com.xxxxxxxx.common.utils.BitmapkitUtils'

然后从App中,打开任意商品页面:

(agent) [3688199735633] Called com.xxxxxxxx.common.utils.BitmapkitUtils.loadBMP()
(agent) [3688199735633] Called com.xxxxxxxx.common.utils.BitmapkitUtils.isFuncAvailable()
(agent) [3688199735633] Called com.xxxxxxxx.common.utils.BitmapkitUtils.loadBMP()
(agent) [3688199735633] Called com.xxxxxxxx.common.utils.BitmapkitUtils.getSignFromJni(android.content.Context, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)

完美,说明函数入口没有变化,依然是 getSignFromJni 做的签名。

再来核对一下入参和返回值,是不是和抓包结果一致:

android hooking watch class_method 'com.xxxxxxxx.common.utils.BitmapkitUtils.getSignFromJni' --dump-args --dump-return

依然很OK,看到了熟悉的sign的值。

(agent) [1921806846023] Arguments com.xxxxxxxx.common.utils.BitmapkitUtils.getSignFromJni("<instance: android.content.Context, $className: com.xxxxxxxx.app.mall.JDApp>", "asynInteface", "{\"intefaceType\":\"asynIntefaceType\",\"skuId\":\"10026198901146\"}", "xxc930c5dcfe67xx", "android", "9.4.2")
(agent) [1921806846023] Return Value: "st=1615000030090&sign=7841200ddd83d8cda0828b1cae56b41e&sv=110"

现在就是最后一步了,验算sign结果是否和之前的版本一样。 这就要参考 算法还原的助手(一) 先让时间停下来, 把gettimeofday和lrand48的值固定下来。

翻出 知识星球 里面去年(庚子鼠年) 写的 Unidbg模拟执行大厂so实操教程 ,把新版本的apk载入一下。

// vm = emulator.createDalvikVM(new File("/Users/fenfei/Desktop/V9.2.2.85371_T1_350271430_lc029.apk"));
vm = emulator.createDalvikVM(new File("/Users/fenfei/Desktop/V9_4_2.apk"));

跑一跑

st=1606701201628&sign=59039230dc2e1ea27a4f250d9ec81b8c&sv=111
destroy
run

这个值很眼熟哦。

三、总结

快速验证算法是否升级,首先需要把变量固定下来。磨刀不误砍柴工,你的努力总会在恰当的时候发出耀眼的光芒。

ffsay
1:ffsay

天光亮,自然醒,之后二十四小时也没有一定要做的事情。于是,欢喜。

100

关注微信公众号,最新技术干货实时推送

100

文章作者 奋飞

上次更新 2021-03-06

许可协议 奋飞安全原创,转载请注明出处。


文章来源: http://91fans.com.cn/post/ldqsignupdate/
如有侵权请联系:admin#unsafe.sh