前言
这个专题是根据白龙,龙哥的unidbg博客的案例,进行从0开始到安全分析的流程,核心部分会借鉴龙哥的unidbg,通过借鉴大佬的思路,完整的分析某个so层的加密参数
各位朋友也可以直接读龙哥的博客,我只是用我的角度进一步加工一下
原文地址:SO入门实战教程一:OASIS_so学习路线_白龙~的博客-CSDN博客
分析
首先拿到这个app,安装啥的就不多说了。
进入到注册界面:
点击获取验证码,然后这边抓包工具抓到的包:
然后,这里面的【sign】就是今天的重点了。
用神秘的工具脱壳完之后,有如下的dex:
把这些dex,全部选中,拖进jadx
快速定位
接下来开始找sign所在的位置,先看看抓包工具这边的参数,根据这些键名,一顿搜,总能找到一些
先搜下【sign】,虽然搜出来的结果不多,但是感觉有很多干扰项
进最后那个,到这里,
这些参数看着很像,用frida hook,得知,发现并没有走到这里
搜【ua】
进到这里,发现很可疑,好多参数都对上了
啥都不说,先用objection hook下,然后app端点击【重新发送】看看:
可以,这不直接就定位逻辑了
但是我们要找【sign】,所以还得再看看,jadx查看发现,这个方法反编译效果不太好,问题不大,记住这个dex名,然后用GDA 打开这个dex,这就挺好,基本都反编译出来了
反正看着确实可疑,但是这三个方法,还不确定到底是是哪个方法里有【sign】部分,所以这里直接hook 它这个a,b,c三个方法,然后app点下重新获取
ok,发现最后的方法里基于有我们要的sign,这边再来下,用抓包工具对比下,谨慎一点,别搞半天没搞对位置:
重新hook下,然后抓包工具打开看看
对上了,ok,就是这里了【g.a.c.g.c.a】
在jadx里,反编译失败:
问题不大,用GDA看:
这不就越来越接近了吗,嘻嘻,点进去:
hook下这个c方法看看,ok,对上了