样本:6L2m5pm66LWiKw==(应用宝下载)
工具:JADX 1.4.4、Fiddler、MT管理器、APK Helper、frIDA 14、VS Code
一、初窥门径
1、安装好app,使用MT管理器提取安装包,发到电脑等待分析。手机配置好网络,电脑打开fiddler开始抓包
image-20240405152957683.png (188.25 KB, 下载次数: 0)
下载附件
2024-4-6 13:56 上传
2、发现_sign、pwd、udid参数被加密了,再抓一次看看参数是否有变化
image-20240405153158667.png (182.48 KB, 下载次数: 0)
下载附件
2024-4-6 13:57 上传
3、发现_sign、udid是变换的,pwd无变化,因为输入的密码是“a12345678”,其实这里已经猜到了是MD5加密
image-20240405153426877.png (16.37 KB, 下载次数: 0)
下载附件
2024-4-6 13:57 上传
二、崭露头角
1、打开VSCode和frida,准备使用自吐脚本先梭哈一下
image-20240405154136731.png (69.21 KB, 下载次数: 0)
下载附件
2024-4-6 13:57 上传
2、发现这里pwd果然是MD5加密,然后udid的值也被打印出来,跟本次抓包一致,还有一个_sign参数我们搜索一下,接下来继续进行分析
image-20240405154901742.png (111.82 KB, 下载次数: 0)
下载附件
2024-4-6 13:57 上传
3、搜索到了,发现_sign也是MD5加密,我们继续分析明文的构成,因为其明文里有udid,所以直接拿sign开涮
image-20240405155208516.png (76.13 KB, 下载次数: 0)
下载附件
2024-4-6 13:57 上传
4、拆分sign的明文发现其结构如下,其前后由一个固定的字符串W@oC!AH_6Ew1f6%8构成,唯一变化的是udid,那我们就可以直接分析udid了
image-20240405155931905.png (37.28 KB, 下载次数: 0)
下载附件
2024-4-6 13:58 上传
三、略有小成
1、直接把apk扔进jadx分析,搜索udid,发现有很多处,这样一个个看效率太慢了,当然你也可以使用搜索技巧“‘udid“,但这次我们使用一个新的方法,堆栈定位
image-20240405161613568.png (161.66 KB, 下载次数: 0)
下载附件
2024-4-6 14:00 上传
2、可以看到使用了3des加密,继续在jadx搜这个类进去看
image-20240405161939726.png (93.52 KB, 下载次数: 0)
下载附件
2024-4-6 14:02 上传
image-20240405163227082.png (70.67 KB, 下载次数: 0)
下载附件
2024-4-6 14:03 上传
3、按x查看交叉引用,可以看到第一个参数是context,这个其实是key,然后是第二个参数是获取手机IMEI,这个参数是不变的,追踪进去发现是sharepreference,其实可以在手机文件里查看
image-20240405163458859.png (71.09 KB, 下载次数: 0)
下载附件
2024-4-6 14:03 上传
image-20240405163850229.png (19 KB, 下载次数: 0)
下载附件
2024-4-6 14:03 上传
image-20240405222720961.png (66.33 KB, 下载次数: 0)
下载附件
2024-4-6 14:03 上传
4、追踪进去可以看见IMEI,对比发现一致,这里惊喜注意到KEY_DEVICE_ID也跟最后一个参数一样的
image-20240405222923340.png (109.89 KB, 下载次数: 0)
下载附件
2024-4-6 14:03 上传
image-20240405222945297.png (117.49 KB, 下载次数: 0)
下载附件
2024-4-6 14:03 上传
5、第三个参数变化的那个是nanoTime,是从开机到目前时间的时间差,至此加密参数已经分析完,最后感谢沐阳大佬给的自吐脚本
image-20240405223144049.png (19.86 KB, 下载次数: 0)
下载附件
2024-4-6 14:03 上传
image-20240405223204445.png (80.52 KB, 下载次数: 0)
下载附件
2024-4-6 14:03 上传