安卓逆向-某音乐软件so逆向分析

一、抓包分析

       首先打开app,输入手机号,验证码点击登录,charles拦截登录报文,然后请出今天的受害者
1.png

二、参数分析

       接下来分析t2的加密参数,采用字符串搜索大法,打开jadx反编译直接搜索"t2"参数,会追到如下

2.png
发现是native层导出的函数
3.png
源码没有找到在哪个so文件里导出的函数,估计是做了防护,这里有2种方法。
第一,导出的函数会经过RegisterNatives函数注册,直接hook so的函数,这里推荐yang神的脚本 https://github.com/lasting-yang/frida_hook_libart
第二,懒人方式,解压apk,找到lib文件夹下的所有so文件,grep -rli 导出的包名(smali写法) *.so 执行命令会找到所在的so文件
4.png
有了so文件,我们用ida打开直接搜索_e,发现搜不到,应该是动态注册了,找到jni_onload,找到_e注册的函数
5.png
顺着点进去,找到返回值顺着找上去,发现代码是c++的std写的,f6函数返回的指针就是加密的结果
6.png
顺着追踪f6函数看看具体的逻辑,
7.png
调用了2个函数f11 h14,通过分析得知f11应该就是16进制加密,
我们直接进入h14函数,算法一目了然
8.png

三、结果验证

       得知加密的算法是aes 模式cbc, 那么我们只要拿到key,iv就能可以了,有了具体的静态分析的思路,通过分析函数的逻辑,我们直接hook h14函数,猜测v23应该就是key,v24就是iv,frida hook验证下,成功拿到key和iv
10.png

有了key和iv我们在线aes解密下,如果aes能解开那就是标准的算法了,
11.png
哈哈一切很顺利,成功解密。

四、总结

       基本是一些设备指纹md5和mac地址加上时间戳,采用aes标准算法加密,相对来说比较好逆向,试问如果魔改了算法呢?或者混淆了代码,都是比较难攻破的,当然今天的文章也可以采用unidbg黑盒调用,脱离手机直接调用三方的so,代码已经打包好了,教程有时间分别写一下,地址奉上 https://github.com/sir-smy/unidbg_api 欢迎大家star哦。

456.jpg

       文章仅供学习交流,请勿用于非法用途,如有侵犯到贵公司隐私或者利益,请联系我立马删除。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容