一、目标

一、目标

这两年很少看新闻和资讯了,基本新瓜的来源都是公众号了,这是不是也算被信息茧房了?

xxjf
1:xxjf

今天就看看这个资讯App吧,目标就是它 signature

sign1
1:sign1

这个签名有点意思,不像md5之类的数字字母,也不像Base64

二、步骤

Jadx搜索 "signature"

sign2
1:sign2

结果不多,才26个,大不了一个一个看过去。

sign3
1:sign3

第一个点进去是它,再点进去看看

sign4
1:sign4

这个明显不对,它生成的是类似 32位md5的字符串。

不想一个一个找了, 看看它的兄弟参数能不能缩小点范围?

Jadx搜索 "searchentry" 和 "eventid"

sign5
1:sign5

才8个结果,开心多了。点进去看看

sign6
1:sign6

不开心,只有 searchentryeventid 赋值,没有找到 signature 的赋值。

这里介绍一个小技巧。在 mo63380j() 这一行上点右键, 查找用例 ,就可以把调用了 mo63380j 函数的所有函数给找出来。

再翻翻,头都晕了,还是没有找到 signature 的相关痕迹。

继续找 "signature"

感觉路走错了咋办?及时回头,及时止损。我们回过头来继续搜索 signature 吧,不过26个嘛,一个一个翻。

sign7
1:sign7

这哥们嫌疑比较大,居然最后还调用了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里了。

ffshow
1:ffshow

面对呼啸而至的时代车轮,我们必须加速奔跑。有时会力不从心,有时会浮躁焦虑,但必须适应。它可以轻易地将每一个落伍的个体远远抛下,碾作尘土,且不偿命。

100

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

100