返回
查看原链接原链接
Bilibili13分57秒 · —

流氓软件产业链深度解析:从应用商店过审到精准投放

流氓软件产业链深度解析:从应用商店过审到精准投放

流氓软件通过复杂的反检测机制绕过应用商店审核,利用系统漏洞防卸载,并依靠广告联盟的监管漏洞实现暴利,且已形成一条完整、成熟、分工明确的灰色产业链。

核心要点

  • 现象:同一款流氓软件在不同手机上表现完全不同——一台手机弹窗广告不断,另一台手机除开屏广告外一切正常。
  • 本质:流氓软件利用代码中的多重条件判断,根据手机的网络归属地、代理状态、开发者模式、虚拟环境等特征,决定是否触发流氓行为。
  • 产业链:该现象背后存在专门的软件开发公司(如“关不掉科技”),已形成从投流获客、应用商店过审、广告变现到防卸载保活的完整灰色产业链。
  • 经济驱动:单款app在约18小时的平均存活期内可产生约50万次有效转化,利润高达20万元人民币。
  • 影响范围:全球安卓12以下系统在中国仍有六成以上装机量,受害用户以不熟悉智能手机的中老年人为主。

详细解析

一、事件起因与反常现象

差评君的朋友母亲从正规手机应用商店下载了一款软件,结果遭遇疯狂弹窗广告,且难以卸载。值得注意的是,换一台手机通过相同渠道下载相同软件,除开屏广告外一切正常。这一反常现象促使差评君团队联合网络安全从业者(EPC DIY和变量)及烽火实验室进行逆向分析。

二、技术分析:代码层面的“两面派”

2.1 解包发现的恶意代码逻辑

通过解包分析一个名为“开心血糖仪”的app,发现其代码表面上定义正常的软件界面(按钮响应监听事件),但深入分析后发现:

  • 界面中滑块控件绑定的监听器除正常监听逻辑外,还隐藏了广告触发效果。
  • 当用户调整滑块数值后手指离开触摸屏,会调用名为pos的方法,作用是弹广告。
  • 触发广告的方式不止一种:点击添加按钮、双手离开屏幕保持滑块静止均可触发。
  • 每次触发的广告类型不同,有些可手动关闭,但大部分只能从后台清除app或等待广告播放完毕(存在长达144秒的剧场版广告,以及混合摇一摇、扭一扭、贴片广告和视频广告的“全家福”)。
  • 一轮广告结束后,app会激活另一个函数立即开启新一轮广告——用户想要正常使用,只能趁两轮广告间隙关闭可关闭的广告并快速完成操作。
  • 长按app图标无法唤醒卸载按钮,正常功能无法使用,广告删不掉、卸载困难。
2.2 流氓行为的触发条件(三层判断)

经过解包分析,发现该app在弹出广告前需满足三个条件,即“过审密码”:

  1. 广告开关(网络归属地判断)
  • 通过访问一个网站,获取当前请求IP的归属地。
  • 如果从北京等正常地区访问,则执行正常代码,无任何异常。
  • 如果检测到使用代理,也会执行正常代码。
  • 分析人员通过修改IP归属地访问结果实现“全国漫游”,成功触发流氓行为。
  1. 动态审核状态判断
  • 判断条件包括是否开启代理、是否开启开发者模式、是否插USB、是否处于虚拟机环境。
  • 应用商店审核员通常在虚拟机中进行审核,这一判断专门用于规避检测。
  • 当用户举报后,分析员如果也将app放进虚拟机复现,可能因为不满足触发条件而无法发现异常,导致被举报的流氓app继续在应用商店上架。
  1. 广告平台是否有可用广告
  • 该app至少接入了五个以上广告SDK。
  • 此外还存在“两头吃”的行为:既向用户推送广告,又在后台静默帮用户点击广告,骗取广告主费用。

三、保活与防卸载机制

3.1 伪装音乐播放器的进程保活

为保持后台运行以持续弹广告,app会伪装成音乐播放器,在后台播放一个无声的音频文件。系统因此认为其在播放音乐,从而不会终止该进程,实现了进程保活。

3.2 利用安卓系统漏洞防卸载
  • 利用安卓12(准确说是SDK版本低于32的系统)的一个已知漏洞:当app注册的activity数量达到3700多个(约3700+)时,会触发系统bug。
  • 该bug导致用户长按app图标时无法呼出系统卸载菜单,从而避免卸载。
  • “关不掉科技”的app安装了约4000个随机名称的activity来触发此bug。
  • 第三方安全管理工具或adb命令可以手动卸载,但老年用户通常只会长按图标卸载这一种方法,因此几乎100%无法自行卸载。

四、应用商店“正规渠道”运作机制

4.1 为什么必须上架应用商店

根据“关不掉科技”内部人士小欧提供的数据:

  • 从点击短视频到下载推广软件,中间如果没有确认弹窗,会损失至少七成客户。
  • 若应用未在应用商店上架,下载过程需要多次确认,手机多次弹窗警告。
  • 上架应用商店后,点击视频里的链接即可下载,不需要二次确认,极大提高下载转化率。
4.2 投流筛选机制
  • 主要推广渠道为短视频平台。
  • 投流时根据地区和渠道配置流量,人为筛选受众。
  • 目标锁定:不熟悉智能手机系统、版本落后、平时喜欢刷短视频的乡镇中老年人。
  • 若用户画像不符合中老年人特质,或IP地址不在投流名单中,则刷不到广告。
4.3 反审核测试机制

“关不掉科技”设计了一套针对应用商店测试的反侦查手段(公司最高机密,仅少数高层和核心技术人员知晓)。通过代码混淆等多层加密,使app可以顺利通过应用商店上架时的包体测试。

五、广告联盟与灰色盈利模式

5.1 广告联盟的运作机制
  • 广告联盟相当于广告领域的“租赁中介”。
  • 广告投放方将广告内容打包给广告联盟的资源池。
  • 开发者在广告联盟注册并预留广告位后,即可从资源池接入广告。
  • 用户点击推广页面完成下载后,会消耗甲方预充值的资源。
  • 甲方根据资源池消耗情况向广告联盟和加载广告的app结算广告费。
5.2 广告联盟的监管漏洞
  • 广告联盟模式切断了广告投放方与广告终端的直接联系。
  • 甲方只能算出整体性价比,但无法知道每笔钱具体花在哪里、广告展示在哪些app上。
  • 这种“糊涂账”正是流氓软件钻的空子。
5.3 商业模式与收益数据
项目数据
单个app投流到下架周期约18小时
周期内有效转化次数约50万次
单次利润约20万元人民币
同技术流氓app(几天内发现)30多款
5.4 降本增效的开发流程
  • 所有软件只是给广告准备的“空壳”,不指望真实用户使用其功能。
  • 开发模式:几个UI + 填数字功能 + 广告SDK,可快速复制成百上千个“换皮怪”。
  • 软件间可互相转化:同一套模板套上不同UI即变成不同app(如计步器改成血糖仪)。
  • 示例:血糖仪只能手动输入血糖值记录,计步器无法实时记录跑步信息,需跑完后手动输入数字。
  • 先上架“纯净版”,通过热更新在后台静默加入广告SDK,规避商店初次审核。
5.5 云控下架机制

贴片广告内容加载在云端的资源池中,即使被举报,可通过云控立刻下架广告,使app瞬间变成“干净软件”。测试中发现一款软件在下载半天后撤走了所有广告。

六、案例与数据

  • 开心血糖仪:实际体验中见证了144秒的剧场版广告,以及混合摇一摇、扭一扭、贴片广告和视频广告的“全家福”。
  • 广告开关逻辑:通过IP归属地判断触发,挂代理也无法绕过。
  • “关不掉科技”:小欧所在的开发公司,专门制造此类流氓app,绝多数下载量来自短视频平台推广。
  • 多款同类app:几天内发现30多款使用同款技术的流氓app,测试软件中有一款在下载半天后自动撤走所有广告。
  • 存量系统比例:安卓12以下系统在中国仍保有六成以上装机量。
  • 受众画像:血糖仪、健康管理、省电助手等契合中老年人焦虑的马甲产品最受欢迎。

七、限制与待确认问题

  • 系统漏洞细节:注册4000个activity触发系统bug的具体实现机制,原文表示将单独出视频讲解,未在本篇展开。
  • 应用商店审核环节:应用商店、应用安全加固服务公司、广告联盟这几方均有机会发现问题,但具体为何选择放任,原文仅有从业者小欧的主观判断(认为渠道方也在“积极下场分一杯羹”),缺乏证实证据。
  • 具体应用商店信息:原文未指明涉及的具体应用商店名称。
  • 小欧身份的可信度:小欧自称是产业链从业者,其提供的数据和判断未经独立验证。
  • “关不掉科技”公司规模:公司内部架构、商业化运营细节不详。

八、反思与社会影响

差评君指出,本文揭示的产业链涉及多个环节的失守:

  • 应用商店审核机制被针对性绕过;
  • 应用安全加固服务公司和广告联盟均存在监管漏洞;
  • 这些环节本可在审核中发现异常,却选择“大开中门”让此类app存在。

对于用户而言,尤其是老年用户:

  • 无法识别这类来自“正规应用商店”的流氓软件;
  • 长按卸载这一唯一掌握的卸载方式被系统漏洞阻断;
  • 官方渠道下载不再等于安全,“从官方渠道下载就没有问题”的经验已失效。

作者的观点是,尽管可以建议家人换新手机来规避,但对于全国至少数亿可能遇到此问题的用户,很难给出简单有效的建议。作者希望所有人都能“即使不懂手机,也能在赛博空间里拥有自由通行的路权”。

总结

本文揭示了流氓软件从开发、分发、过审到变现的全链条灰色产业:技术上利用多重条件判断绕过审核、利用系统漏洞防卸载;运营上针对中老年用户精准投流、通过应用商店正规渠道提升下载率;商业模式上依托广告联盟的监管盲区,以极低的开发成本在极短时间内获取高额利润。这些流氓软件不仅骚扰用户,还通过静默点击广告欺骗广告主,最终由甲方和普通用户共同承担损失。