frida学习案例2

这次的app是个电商的,叫X仓,还是先抓包:

1:抓包之后发现url是这样的结构:

http://api.beicang.com/gateway/route.html?client_info={"bd":"yingyongbao","abd":"01ba33ece","package":"xretail","os":"6.0.1","screen":"900x1440","dn":"MuMu","version":"3.10.01","platform":"Android","network":"WiFi","app_name":"xretail","model":"MuMu","udid":"50026ffcc913112"}&method=xretail.home.page.show&_abr_=01e64d9d2beecd0cc5d01e6237b2e7d9b42272934a5f0c1023&session=e4edbb581330df555f7043839c9d0&sign=945DD6E5520D36991859525A67F7B7CE&pageSize=20&page=1&categoryId=women_clothing×tamp=1594626083

以上是转码之后的,多抓几次之后发现关键参数是_abr_和sign

2:上JDAX分析

首先是搜索"_abr_得出来这么个结果

frida学习案例2_第1张图片那就是都指向了同一个类,跟进去观察

一个地方是判断是否为空,一个是赋值给它,那么重点观察赋值这一块的代码:

frida学习案例2_第2张图片

这下不错,直接连sign都在里面,更加证明我们定位的位置是对的。继续分析:

frida学习案例2_第3张图片

可以看到关键生成参数是这三个组成,我们先上frida分析程序来看看:

frida学习案例2_第4张图片

打印结果如下:

直接点击访问,都是可以拿到数据的:

frida学习案例2_第5张图片

所以这个地方绝壁就是最后返回url的地方,我们只需要返回去分析加密函数就好了。

先分析SecurityUtils.a(str2, Consts.b),打印观察一下是啥

多次打印发现,第一个是时间戳,第二个值固定没变。。。一直是Sce7vsMfgMORNA1o

再来就是Long.toHexString(c)).toLowerCase() 我们看看c是啥玩意

找到bd的c方法

frida学习案例2_第6张图片

继续打印观察

frida学习案例2_第7张图片还是时间戳,但是经过了处理,除以1000

然后java.lang.Long.toHexString() 方法返回下列字符作为十六进制数字long参数以基数为16的无符号整数的字符串表示形式:0123456789abcdef,最后在.toLowerCase()转小写

这里基本abr分析完了,开始sign:

frida学习案例2_第8张图片

这里不能直接调用,我们来查找声明和用例看看

frida学习案例2_第9张图片

这样就找到它的声明,以及a方法的返回,这里传入的布尔类型,就和刚才看到的一样,我们继续跳到这个类下面,找到对应的方法

frida学习案例2_第10张图片

到这里就可以写观察函数了

frida学习案例2_第11张图片

frida学习案例2_第12张图片

可以观察到参数了,并且到这要分析之后改写成python也可以,或者直接启一个frida-rpc调用也行。

时间不早了,要下班了,有空再写个rpc调用试试。

你可能感兴趣的:(frida学习案例2)