周五在测试我们的游戏大厅里面新游戏的时候,意外的发现了一种非常恶心的广告。某种应用可以在你现在正在运行的应用上弹出一个窗口,点击之后就会跳去广告页,只有右上角有个小小的叉子标记可以关闭它,十分容易误触。而且最恶心的是,它可以在你当前运行的应用,甚至是手机的首屏上弹出来。如果是个恶意程序,在你使用支付宝之类的app弹出来,然后很多用户都会误以为是支付宝弹出来的,万一误点进到它的某些恶意页面,估计就会给用户带来损失。
然后问题就是如何找出这个app。可是这个弹出的窗口什么icon都没有,弹出的时机也不能确定,也不知道如何能定位到启动它的app。后来同事提供了一个思路,就是当窗口弹出来的时候在android上通过ps查看进程,然后过滤掉一些安全的、系统的进程,对那些有怀疑的进程挨个kill一遍,最后找出来是一个叫做《饥饿小猫》的游戏干的,不过不知道是不是有人改过这个包重新塞入广告。
既然找到问题的app所在,就得想办法看怎么能够自动的过滤这类apk。把apk反编译之后,在里头看见了无数的广告代码…… 没错,是无数的。然后检查了它的manifest文件,在里头发现了一个非常可疑的权限 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
。 在(这里)[http://my.oschina.net/AlexZhuang/blog/55725] 找到了这个权限的说明,看来就是它没跑了。看来扫描游戏apk里头这类型的权限,如果包含了这个,那基本就是有问题的了。
我自己其实对游戏中包含的广告并不是太反感,哪怕是游戏中弹出来的,或者是通知栏弹广告,也都还好,毕竟人家要赚钱。但是这种形式的给人极大误导性的广告,确实是太恶心了,而且带有很大程度的安全隐患。不知道google play的官方市场,是否会运行这类应用上线。