首页
社区
课程
招聘
[原创]某网络摄像头软件去广告
发表于: 9小时前 174

[原创]某网络摄像头软件去广告

9小时前
174

本文仅用于软件逆向分析与技术经验分享,旨在探讨移动应用的实现原理及相关技术。文中涉及的应用名称、关键参数、接口信息、代码及其他敏感内容均已进行脱敏或适当处理。
本文内容仅供学习、研究和技术交流使用,请勿将相关技术用于侵犯他人合法权益、破坏软件正常运行或其他违法违规行为,由此产生的任何后果与本文作者无关。

如涉及相关软件的合法权益,请联系作者进行处理。

目标应用: 一款网络摄像头工具,家里人经常用来查看摄像头,但是软件中塞了一大堆牛皮癣广告
广告行为: 开屏广告,热点区域广告,摇一摇跳转,关闭按钮不方便点击且容易误触广告,各种坑老陷阱

软件中的广告还会区别对待新老用户:
图片描述

首先定位广告来源,反编译出来的代码没有混淆,直接搜索关键字就可以定位到开屏广告的位置
图片描述
这里向上追一下调用关系,查到是从 AndroidManifest.xml 中的 LauncherActivity 开始的,那广告入口就是这里
图片描述
图片描述

接下来就分析下广告展示逻辑并跳过它
图片描述
可以看到这里有广告开关,看一下怎么切换到免广告
图片描述
这是 AdControl.sFreeAd 控制的新用户免广告,再看一下另一个条件
图片描述
看起来是个软件广告总开关,往后追了一下,这里是个开发者的后门控制开关
图片描述
那就直接选择从这里入手去广告,先看一下 smali
图片描述
直接让 906 行的条件判断进入 sThirdAdType = 0; 的代码块即可, 所以在 905 行插入一行 const/4 p0, 0x1 把 p0 寄存器强制改为 true,效果如下
图片描述
这样就可以达到目的了

接下来重新打包软件并签名,所以要先处理一下签名校验问题,通过反编译的代码可以看到这里有个检验的逻辑
图片描述
在每次 activity 的 onCreate 中触发 appVerification 方法,这里也是有开关控制的,而且是编译期常量
图片描述
所以这里还是继续改 smali
图片描述
这里把 sput-boolean v0, Lcom/macrovideo/sdk/GlobalConfiguration;->sIsSignatureVerification:Z 的 v0 寄存器改为 v1 即可
图片描述
把 sIsCheckRoot 也一起改为 false 了
然后尝试打包签名并运行,但是应用启动后闪退了


传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!

最后于 8小时前 被xtyuns编辑 ,原因:
收藏
免费 0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回