Android安全问题 钓鱼程序

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

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

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

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

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

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

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

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

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

log 写道

10-17 10:02:14.698: I/ActivityManager(246): 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(1).get(0).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中注册

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

时间: 2024-10-03 22:38:13

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

Android安全问题 抢先拦截短信

同上篇文章一样,这里只陈述结果,代码分析稍后给出 导读:本文叙述如何先于某些伪杀毒软件.病毒.常规软件获取到短信 众所周知,android系统在收到短信息的时候会发送广播,但是此广播是有序广播,也就是说:先接收到广播的人,如果心情不好,它就不会向后传递此广播,后面的人就不会知道有短信到来 这与无序广播不同,无序广播并不是真的没有顺序(只是似乎大家习惯这么叫而已),无序广播的接收者也是排队等待广播的,只不过是在传递过程中,大家必须遵守规则,一直把消息传递给最后一个人才可以 关于无序广播与静态接收器

如何确定android中的程序入口?

1.如何确定android中的程序入口? 需要在AndroidMainifest.xml文件中添加这个Activity的配置信息,同时将DemoActivity配置中的intent-filter移动到LauncherActivity配置中. <activity android:name=".DemoActivity" android:label="@string/app_name" > </activity> <activity and

Android 修改应用程序字体

在网上搜索了相关资料,研究了两种算是比较快速的改变程序字体的方法,好,先来介绍着两种方法. 首先第一种方法是重写控件(以Textview为例): 1.Android在写程序的时候谷歌早已将所有字体都默认好了具体是什么字体,自己也没去研究,所以假如说要让程序的字体变成自己想要的字体也是件不容易的事情,首先你要先下载字体库(后缀为ttf),英文的字体库还不算大,而一般来说中文的字体库就很大,所以可以更加程序里面出现的文字,对字体库进行裁剪.要下载字体库的可以上网下载,网上一堆的是,csdn里面的比较

调试 Android* x86 应用程序的方法以及要使用的工具

作者:Xiaodong Wang 1.简介 众所周知,Android* 开发人员头顶许多称呼:设计员.程序猿等,并且通常会不可避免地被称为故障检修工.代码中的错误无法避免,因此无论您是否一开始就造成错误,了解调试工具以及如何迅速而有效地跟踪并解决错误都很重要.鉴于此,如今的 Android 开发人员必须掌握有效的调试技巧.本文提供了 Android 应用程序调试工具的简单教学,用于帮助 Android SDK 以及相关工具的新手迅速入门,并在 Android x86 平台上更有效地解决故障. 2

Android开发之程序员必须要懂得Android的重要设计理念2

上篇文章介绍了Android开发的设计理念的一部分,并没有得到博友们的多大认可,只看到了一位博友在下面留言期待下一篇文章的发表,为了这小小的唯一支持,我决定继续把后面的8个要点介绍一下,自己也潜心反省一下,自己的理解是不是太浅薄. 二.增加易用性 (6)一样的标志,一样的功能 我们的程序 应该帮助人们通过视觉辨别就可以轻松判断该图案或者按钮代表着怎样的功能,能清晰的分辨出来,而不是让用户费劲脑筋的去猜想这个按钮可能代表什么功能.我们的程序应该极力避免一种情况,类似的图案或者按钮却在不同的地方,代

android的wifi程序随笔作业

不用说,做前最好新建一个wifiadmin类,用来装载你所有的wifi打开关闭,wifi配置,连接情况等等wifi操作,然后main类里做一些button连接listview显示wifi网络连接等东西,分开做好. android的wifi程序随笔作业,码迷,mamicode.com

Android企业级应用程序开发完整训练:精通Android商业级开发最佳实践的24堂课

从企业级商业实战的角度入手,24小时内通过23个动手实战案例,循序渐进的对Android商业级别的应用程序开发要点各个击破,依托于在多年的Android(6款完整的硬件产品和超过20款应用软件)开发和企业级培训经验(超过150期的次Android的企业内训和公开课),旨在在实务的基础之上帮助你完成任何复杂程序的高质量Android应用程序开发,让Android开发跟上想象的速度.最后,通过ActivityManagerService揭秘Android应用程序一切行为背后的核心根源,让你从此开发应

浅谈Android移动开发程序员的职业发展之路

现在几乎每个it公司都在开发移动产品,我最早知道Android还是在09年成都某学院上大学的时候,从新闻上知道有这么一家公司,创始人安迪·鲁宾很有名,但安卓到底是做什么的,我并没有关注. 到2010年毕业的时候,Android已经发展到了2.2版本,百度了一下Android,知道了(应用)开发采用的是Java语言.我当时学过C,C++,对java有些了解,从成都辗转来到北京,找到的工作正是开发一款Android应用(生活服务类).这时我有了一个HTC的安卓最新版手机. 现在做Android移动开

Android adb.exe程序启动不起来,如何处理

Android adb.exe程序启动不起来,如何处理 (2014-02-26 15:58:14) 转载▼ 标签: android adb的启动 android中adb.exe程序   经常遇到 Please ensure that adb is correctly located at 'D:\java\sdk\platform-tools\adb.exe' and can be executed. 遇到问题描述: 运行android程序控制台输出 [2012-07-18 16:18:26 -