什么是Activity劫持
一般情况下分为两种
第一种是,手机里面安装了恶意程序,恶意程序会注册一个Receiver,响应android.intent.action.BOOT_COMPLETED事件,这个Service会启动一个定时器,不停的循环查询当前运行的进程。一旦当前的进程正是我们要劫持的,并运行在前台,立马使用FLAG_ACTIVITY_NEW_TASK启动自己的恶意应用界面处于栈顶,用户看到的就是恶意应用的界面,获取用户输入的隐私信息,并发送到服务器。这篇文章有详细介绍《Android之Activity界面劫持反劫持》
第二种是,Android中启动一个Activity常用的方法是startActivity。startActivity的参数时Intent,这个Intent有两种设置方式
- 通过设置action,系统找到接收该action的Activity,然后启动
- 明确指定要启动的Activity所在的包和Activity的对应的类名。
当一个应用程序通过action来启动某个Activity时,另一个恶意应用可以创建一个同样的action来接收Activity。在Android应用中,如果存在多个Activity接收同一个action,那么就会提供一个选择列表让用户进行选择。一旦用户选错了,就进入了恶意程序的界面,当用户输入隐私信息,有可能被恶意程序将数据发送给服务器,导致用户信息泄露。

本文探讨了Android中的Activity劫持问题,包括恶意程序通过监听BOOT_COMPLETED事件和利用相同action启动Activity的两种常见手法。对于第二种情况,提出了通过检查startActivity方法中Intent的设置来检测潜在风险,并建议在创建Intent时明确指定目标Activity的包名和类名以避免劫持。
最低0.47元/天 解锁文章
3966

被折叠的 条评论
为什么被折叠?



