界面劫持的出现操作
1.注册一个receiver,响应android.intent.action.BOOT_COMPLETED,开机启动
2.receiver中启动一个Service
3.在这个service中启动一个计时器,不停枚举当前进程中是否有预设的进程启动,如果发现有预设进程,则使用FLAG_ACTIVITY_NEW_TASK启动自己的钓鱼界面,而正常应用的界面则隐藏在钓鱼界面的后面。
解决办法
这是系统漏洞,在应用程序中很难去防止这种界面支持。但应用程序自身可以增加一些防范实施。
防范实施:
1. 开启守护进程,当发现应用程序不在栈顶时,在屏幕最上层创建一个悬浮小窗口(提示信息与客户确定),以提醒用户。
2. 使用抢占式,即与劫持程序抢占栈顶。
3. 在应用切到后台时,在通知栏弹出通知提示。
参考:
http://blog.chinaunix.net/uid-16728139-id-4962659.html