首页
论坛
课程
招聘
[分享] android逆向学习--某小说app的sign算法
2021-6-1 21:12 9826

[分享] android逆向学习--某小说app的sign算法

2021-6-1 21:12
9826

最近打算从pc转安卓,随便在应用市场上找了个app练手,大佬可以略过了!!

1 抓包:

存在sslpinning, 直接使用瘦蛟舞大佬提供的unpinning脚本来bypass(https://github.com/WooyunDota/DroidSSLUnpinning)
发现每次请求,都有一个sign字段来做签名,ok直接开干。
https://api-bc.wtzw.com/api/v6/search/words?imei_ip=3658671245&page=1&gender=1&wd=dydyd&sign=69821b24fe91d2f0be88a28df7987d94

2:frida hook

将apk解包发现里面有okhttp3,所以直接尝试hook okhttp3的url方法,并打印出其调用栈
图片描述
看这个调用栈,明显是在okhttp的拦截器中对url做了手脚,所以直接hook getResponseWithInterceptorChain函数打印出所有的用户拦截器。
图片描述
图片描述

3 脱壳:

打印出拦截器后,发现有加壳。
这是个抽取壳,之前自己有实现个基于被动调用的脱壳镜像,正好派上用场(目前安卓的脱壳应该不是问题了吧,略过)。
图片描述
修复下被抽取了的代码。
图片描述

4 静态分析:

在上面打印的用户拦截器类(vu)中找到了拼接sign参数的地点。
图片描述
可以看到加密函数是Encryption.sign(stringBuilde.toString())
果断hook下
图片描述
图片描述
跟进去发现这个函数是一个native函数,这里很奇怪开始以为是动态注册,并hook了registerNative函数,但并未找到。
而且在导出符号中也未找到native函数,后来用frida遍历了下所有导出符号在libcommon-encryption.so中发现了该符号,计算出偏移后在去so中定位发现名称不一样。。。
图片描述
图片描述
暂且不管,猜测可能跟elf文件结构相关。

5:分析so加密算法

看样子是存在rtti信息,所有的类名函数名都显示了出来,这就比较方便了。
看着几个常量,基本可以推断为标准MD5
图片描述
so层的逻辑很简单大概分析了下,就是md5加盐的算法
图片描述
所以目前的重点就是获取盐就行了。
getkeydata直接返回了this首地址
图片描述
图片描述
getkeydataSize从this+0x84的位置取出长度。
图片描述
他们的this来自于MD5KeyGenerator::Instance函数,并存放在了全局数据区。
图片描述
整体的逻辑大概就是,如果这个this未初始化就调用init来初始化,如果初始化了则直接使用。
图片描述
他是存在于全局数据区中,所以我们可以不关心她初始过程,直接等他初始化后计算出全局变量的偏移dump内存,直接获取盐

 

图片描述
可以看到我们dump出了key和keyLen
图片描述

验证:

图片描述
图片描述


[注意] 欢迎加入看雪团队!base上海,招聘CTF安全工程师,将兴趣和工作融合在一起!看雪20年安全圈的口碑,助你快速成长!

收藏
点赞3
打赏
分享
最新回复 (5)
雪    币: 977
活跃值: 活跃值 (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_私人账号定制 活跃值 2021-6-1 22:22
2
0

这个工具分享下老哥

最后于 2021-6-1 22:22 被wx_私人账号定制编辑 ,原因:
雪    币: 28
活跃值: 活跃值 (194)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
给我快乐 活跃值 2021-6-2 08:53
3
0
老哥分享下啊
雪    币: 10515
活跃值: 活跃值 (2748)
能力值: (RANK:200 )
在线值:
发帖
回帖
粉丝
LowRebSwrd 活跃值 4 2021-6-2 10:27
4
0
不错,学会用工具和脚本节省了大量分析时间
雪    币: 143
活跃值: 活跃值 (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lsof 活跃值 2021-6-2 15:07
5
0
请问这个签名算法搞定了能用来做些什么呢?
雪    币: 9507
活跃值: 活跃值 (8910)
能力值: ( LV12,RANK:310 )
在线值:
发帖
回帖
粉丝
wmsuper 活跃值 5 2021-6-2 18:58
6
0
签名算法,解密算法我都搞定了,具体过程看我的文章
游客
登录 | 注册 方可回帖
返回