一、目标
这两年很少看新闻和资讯了,基本新瓜的来源都是公众号了,这是不是也算被信息茧房了?
今天就看看这个资讯App吧,目标就是它 signature
这个签名有点意思,不像md5之类的数字字母,也不像Base64
二、步骤
Jadx搜索 "signature"
结果不多,才26个,大不了一个一个看过去。
第一个点进去是它,再点进去看看
这个明显不对,它生成的是类似 32位md5的字符串。
不想一个一个找了, 看看它的兄弟参数能不能缩小点范围?
Jadx搜索 "searchentry" 和 "eventid"
才8个结果,开心多了。点进去看看
不开心,只有 searchentry 和 eventid 赋值,没有找到 signature 的赋值。
这里介绍一个小技巧。在 mo63380j() 这一行上点右键, 查找用例 ,就可以把调用了 mo63380j 函数的所有函数给找出来。
再翻翻,头都晕了,还是没有找到 signature 的相关痕迹。
继续找 "signature"
感觉路走错了咋办?及时回头,及时止损。我们回过头来继续搜索 signature 吧,不过26个嘛,一个一个翻。
这哥们嫌疑比较大,居然最后还调用了Native函数,盘它。
挂上心爱的Frida
var SignUtilCls = Java.use("com.yxdxxx.news.util.sign.SignUtil");
SignUtilCls.signInternal.implementation = function(a,b){
var rc = this.signInternal(a,b);
console.log("inStr = " + b);
console.log(">>> rc = " + rc);
return rc;
}
来吧,跑一跑
[MI NOTE Pro::com.hxxx.yxdxxx]-> inStr = yxdxxx5.7.7.21k6lwwmig_1620885238340_91028401
>>> rc = AQ-exTbeIxgwJNiKPYQihZuzQOtyeV9v_93SvtH74beFqRgCvU9-O7onF3__WtnEwHHe84_nkFDDSIkh1a4VDE2xMj4l86XfDy09EO_hMbFHNbGAWRImIxNbGF9Ihlp-tSEs0N6c1rmNTjjxpKMowTsYfoPKuSJTtHNHy7xTrU4
太棒了,这就是我们要的结果。
三、总结
不要嫌麻烦,总想找捷径,结果还不如一个一个翻,慢就是快。聪明人肯下笨功夫才厉害!
Native也是指路标之一,9021年了,有追求的算法都放到Native里了。
面对呼啸而至的时代车轮,我们必须加速奔跑。有时会力不从心,有时会浮躁焦虑,但必须适应。它可以轻易地将每一个落伍的个体远远抛下,碾作尘土,且不偿命。
关注微信公众号,最新技术干货实时推送