关于activity劫持方面的安全问题,经过查找资料,编写了两个应用,一个是正常的应用,模拟一个在前台运行的应用,一个劫持activity,这里设置了一个启动界面,实际运行当中不会有启动界面,而是一个运行在后台的service,循环检测手机上正在运行的全部应用。
一、正常应用代码实现
首先是模拟一个简单的输入用户名和密码的界面,以下所示
安全
图1
3d
图2 正常应用
二、劫持应用代码实现
这里经过包名的方式劫持目标应用,主代码以下图所示
blog
图3
it
图3.1
运行后的界面以下
ast
图4
实际当中应该没有这个界面,而是在用户不知情的状况下安装,并一直运行在后台,循环检测全部正在运行的程序,当检测到目标应用,且运行在前台时,当即启动以前伪造的activity,在这里还添加了开机启动的功能,随时监测将要劫持的目标应用。
三、首先在手机上打开劫持应用,而后点击开启服务按钮,此时咱们从Logcat上能够看到后台服务被启动,而是不断的在输出打印信息,即检测到的全部正在运行应用的包名,以下图
登录
图5
如今关掉劫持应用便可,后台服务会持续运行。打开正常应用,此时咱们能够看到跟他彻底同样的一个界面马上将它覆盖,在这里还有待完善,正常状况下切入的时候应该不会被发现,此时正在前台的运行的是咱们实现模拟的一个彻底相同的界面,用户若是在不知情的状况下输入了用户名和密码并点击登陆按钮后,会立马将用户名和密码发送到攻击者手中。在这里经过一个Toast显示了一下,代表用户名和密码劫持成功。以下图
后台
图6循环
一、分析其危害的严重性
二、找出相应的相应的避免应用被劫持的方法service