前言
本文介绍通过抓包的方式,分析出某影音app的去广告逆向点,难度极低,适合新手上路。
所谓逆向,三分逆,七分猜。
分析过程
首先打开app,可以看到不时有广告弹出。我们的目标就是去除这些广告。
首先想到的思路是定位到加载广告的代码删掉即可,使用 MT 管理器查看安装包的 dex 文件,可以看到大量 a、b、c 的目录,可见代码被混淆过的,直接上手分析太费劲了。
接着猜测,既然 app 能动态加载各种广告,必然会发起 http 网络请求,只需要分析出哪些请求是和广告相关的,将其拦截,即可实现去广告的目的。
所以接下来尝试抓包分析一下。
抓 http 请求推荐使用 Burp Suite,使用社区版即可。
打开 Burp Suite,切换到 Proxy 页。Proxy 即创建一个代理服务器,配置所有的网络请求连接到这个代理服务器,就可以看到所有经过代理服务器的 http 请求,并且能拦截修改请求、丢弃请求。
打开 Proxy settings,编辑默认的代理服务器地址配置。
端口号我这里填写 8888,地址选择当前机器的 ip 地址,与 ipconfig 命令显示的 ip 保持一致。

确定后选择导出 DER 格式的证书。

任意取名,文件扩展名为 .cer。

由于抓包需要电脑与手机在同一网络环境下, 因此建议使用安卓模拟器。
将 cer 文件导入到安卓模拟器中,之后打开设置 - 安全 - 加密与凭据 - 从SD卡安装(不同安卓会有所不同)。

选择 cer 文件后,随意命名,凭据用途选择 WLAN。确定后安装成功。
编辑当前连接的 wifi,设置代理为手动,主机名和端口填我们在 Burp Suite 中填写的内容。

打开 Burp Suite 打开代理拦截。

此时重新打开app,可以看到 Burp Suite 成功拦截了一条网络请求,并且app卡在启动页上。

此时点击 Drop (丢弃该请求),该请求会重发又被拦截,全部 Drop 掉。

此时惊喜的发现,进入了app首页,并且没有任何广告弹窗了。
由此可见,启动app时首先会加载 json 配置,根据配置去加载广告,只要将这条请求去掉就可以达到去广告的目的。只需要到app中反编译搜索拦截到的请求 url ,即可定位到拉取广告的代码。
搜索 sjmconfig,即可定位到目标代码。

将域名修改为 localhost,那么这条请求将永远不会成功。

之后保存修改、签名,重新安装,完事收工。