这次的app是个电商的,叫X仓,还是先抓包:
1:抓包之后发现url是这样的结构:
以上是转码之后的,多抓几次之后发现关键参数是_abr_和sign
2:上JDAX分析
首先是搜索"_abr_得出来这么个结果
那就是都指向了同一个类,跟进去观察
一个地方是判断是否为空,一个是赋值给它,那么重点观察赋值这一块的代码:
这下不错,直接连sign都在里面,更加证明我们定位的位置是对的。继续分析:
可以看到关键生成参数是这三个组成,我们先上frida分析程序来看看:
打印结果如下:
直接点击访问,都是可以拿到数据的:
所以这个地方绝壁就是最后返回url的地方,我们只需要返回去分析加密函数就好了。
先分析SecurityUtils.a(str2, Consts.b),打印观察一下是啥
多次打印发现,第一个是时间戳,第二个值固定没变。。。一直是Sce7vsMfgMORNA1o
再来就是Long.toHexString(c)).toLowerCase() 我们看看c是啥玩意
找到bd的c方法
继续打印观察
还是时间戳,但是经过了处理,除以1000
然后java.lang.Long.toHexString() 方法返回下列字符作为十六进制数字long参数以基数为16的无符号整数的字符串表示形式:0123456789abcdef,最后在.toLowerCase()转小写
这里基本abr分析完了,开始sign:
这里不能直接调用,我们来查找声明和用例看看
这样就找到它的声明,以及a方法的返回,这里传入的布尔类型,就和刚才看到的一样,我们继续跳到这个类下面,找到对应的方法
到这里就可以写观察函数了
可以观察到参数了,并且到这要分析之后改写成python也可以,或者直接启一个frida-rpc调用也行。
时间不早了,要下班了,有空再写个rpc调用试试。