一、目标
这两年很少看新闻和资讯了,基本新瓜的来源都是公众号了,这是不是也算被信息茧房了?
今天就看看这个资讯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里了。
面对呼啸而至的时代车轮,我们必须加速奔跑。有时会力不从心,有时会浮躁焦虑,但必须适应。它可以轻易地将每一个落伍的个体远远抛下,碾作尘土,且不偿命。
TIP: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。
关注微信公众号: 奋飞安全,最新技术干货实时推送