逆向别人应用仅仅是为了学习,如有侵权或任何不适,请联系删除。
以下关键位置打码,请大家谨慎观看。
最近有个朋友问我某个高清视频APP是否可以拿到真实下载地址。我问其原因,说宠妻属性暴发,而妻子爱追剧。所以想到这个方法,而自己又无论如何拿不到相关信息。
在我给予对方一顿普法教育后,也看了下这个APP。
虽然应用了很多框架,和native加密,但有个别关键位置,还是暴露了视频的真实下载地址。
一、360加固。
拿到apk后,jadx一把梭。发现能看到的类和方法非常少。第一感觉就是加壳了。
在资源文件中发现libjiagu_x64.so,及另外一个明显特征文件,说明应用采用了360加固。360加固脱壳也很简单。
以往脱壳的应用,或者方法,甚至xposed都已经不太好用,直接上大杀器——frida。
脱壳虽然成功了,但发现明显有用的类还是没有,其实这时候我笑了。这就说明这款apk并没有改现成的框架,反而相对来说简单了。只需要知道他用的是什么框架就可以根据框架源码找到想要的信息。
但成熟的网络框架也就那么几个, 其核心还基本都是okHttp。基本方向也就是使用okhttp3,retrofit。
而且,在jadx中发现了okhttp3,而且没有retrofit。
开搞!
二、抓包。
做网络应用,虽然最终都逃不过抓包。抓包也会让很多信息曝露在阳光下,更方便分析。所以,我也不能免俗了。
问题又来了——抓不到包。
瞬间火大,这么点小事,不中用啊。
直接wireshark,你只要走网络,就得留下点什么。
和想像的一样
那么,基本可以确定使用的是okhttp3, 请求网络,可能是采用了验证证书、no_proxy设置之类的,导致无法抓包。
当然现在这些都不重要了。直接找okhttp3的关键位置——okhttp3.internal.connection.RealCall类的getResponseWithInterceptorChain$okhttp()方法。
然后,结果出来了——
下载后,直接4K播放