继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Android 界面劫持

慕的地10843
关注TA
已关注
手记 1081
粉丝 200
获赞 962

有被劫持的风险,然后为了修复这个漏洞,就了解了下什么是 Activity 劫持。本篇主要讲解什么是 Activity 劫持,并制作一个 App 模拟 Activity 劫持。

https://img3.mukewang.com/5d329079000126a005380531.jpg

Activity 劫持

什么是Activity 劫持呢?

简单来说就是当用户在运行一个 App 的时候,这时候有另一个恶意的程序在监听用户使用情况,当发现了想要劫持的 App 正在运行的时候,恶意程序就会替换了当前 App 的页面,从而让用户将个人的信息输入到恶意程序中去,被不法利用。

用 Android 术语来讲就是,后台运行了一个 Service ,在这个 Service 中,定时循环的查询当前正在运行的进程,当查询到了想要劫持的进程正在运行在前台的时候,这时候用FLAG_ACTIVITY_NEW_TASK启动自己的钓鱼页面覆盖原本的页面,从而获取信息。

模拟 Activity 劫持

为了解决这个问题,首先我得做一个可以劫持其他 App 的 App 来。

这个App 主要的是一个 Service ,并在其中获取当前正在运行的进程进行劫持,我这里自定义了一个 HijackingService 来实现。

在此 Service 中开启了一个定时任务,来不断的获取当前正在运行的进程。

当获取到想要劫持的进程的时候,打开一个新的页面告知已经劫持成功。

下面贴出获取当前进程并劫持的代码块:

https://img.mukewang.com/5d32908500014f4c08210523.jpg

获取当前正在运行的进程

然后贴出劫持的界面(我这里劫持的 QQ 界面,当 QQ 运行的时候,点击 Start HijackService,就会开始遍历并劫持):

https://img3.mukewang.com/5d32908e00018d0203390586.jpg

Hijack App 的首页有开始和结束两个按钮来开启 Service

https://img4.mukewang.com/5d3290980001a71703370583.jpg

QQ 被劫持之后 Hijack App 展示的页面

https://img1.mukewang.com/5d3290ad0001be6109790352.jpg

劫持打印的日志



在写这个劫持App 的时候,遇到了一个问题,就是获取当前运行的进程。

在百度查找资料,发现 都是用 ActivityManager 来获取当前运行的进程,结果发现并不能成功。

然后 Google 了一下,找到一个使用第三方来获取当前进程,实践下来是成功的,只要在 build.gradle 中加上:

implementation 'com.jaredrummler:android-processes:1.0.9'

就可以使用,如:

AndroidProcesses.getRunningForegroundApps(context)



作者:abigbread2018
链接:https://www.jianshu.com/p/c73b2a23c3c9


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP