【Android论文栏目提醒】:网学会员为广大网友收集整理了,基于Android后台监听机制的程序实现 - 期刊论文,希望对大家有所帮助!
计算机光盘软件与应用软件设计开发 Computer CD Software and Applications 2012 年第 15 期 基于
Android 后台监听机制的程序实现 戴茜,孙润康,严尹宏 (武汉大学计算机学院,武汉 430072) 摘 要:通过对
Android 监听机制的分析,实现了手机短信的拦截和监听,通话的监听,后台未授权程序安装的监听,网络流量的监控,通过实现过程和原理分析,对防范
Android 后台监听等敏感行为具有较为普遍的理论指导意义。
关键词:
android;监听机制;后台 中图分类号:F416.6 文献标识码:A 文章编号:1007-9599 2012 15-0220-021 引言 屏蔽掉其在消息栏的 Notification通知3。
实现流程图:
Android 是一种以 Linux 为基础的开放源代码操作系统1。
Android 后台监听一般为 BroadcastReceiver 或者利用 Service的一种无界面的后台运行程序,本文旨在通过对后台监听行为的分析与实现,来为防护
Android 后台监听等敏感行为提供理论指导。
2 基本原理 一般来讲,后台监听程序是基于 BroadcastReceiver(广播 (2)本文实现的监听通话的操作是通过在 Receive 中改 2接收器)的 ,因为在
Android 中,Broadcast 是一种广泛应用 写 onReceive ( ) 方 法 来 监 听 系 统 广 播在应用程序之间传输信息的机制3,而后台监听程序正可以利 “
android.intent.action.NEW_OUTGOING_CALL”,实现方式用 Broadcast 来监听一些系统的广播,通过对广播的监听实现 和短信操作类似,这里不做详细讨论。
整个监听程序的功能。
监听通话和短信操作都需要获得相应的权限。
如接收短 在
Android 中 , 应 用 程 序 的 响 应 性 被 活 动 管 理 器 信、读取短信、发送短信、接听电话等权限。
ActivityManager和窗口管理器WindowManage这两个系统 3.2 监听程序的安装和卸载服务所监视。
当用户触发了输入事件,而在五秒内没有响应用 由于
Android 发展迅猛,
Android 的安全问题越来越严峻,户的输入事件,那么,
Android 会认为该应用无响应,便弹出 许多木马私自在后台安装一些恶意程序,使用智能手机的人可ANRApplicationNo Response对话框3,因此在做耗时操作的 能都有一种经历,就是当自己调出所安装程序目录的时候,会时候,一般利用 Service3(服务)来实现,Service(服务)是 发现很多程序根本就不是自己安装的,那么这些程序很有可能一个没有用户界面的在后台运行执行耗时操作的应用组件。
就是恶意程序。
本文从后台监听方面实现了对程序安装和卸载3 基于后台监听机制的敏感行为的实现 的监听,使手机的安全性得到极大保障。
在
Android 中安装和卸载程序的时候会发送一个系统广 通过对监听机制的分析,可以发现,只要监听系统广播, 播,而一些恶意木马等通过屏蔽广播等手段,使安装恶意程序就可以完成对于整个系统的监听,尤其是对于一些相对于手机 对用户透明,因此
Android 系统的安全使用受到严重威胁。
本用户比较敏感的行为。
比如,短信操作,通话操作,后台程序 文通过 Broadcast Receiver 的 onReceive()方法,监听系统广非主动的安装和卸载,以及流量统计包括联网等。
播 “
android.intent.action.PACKAGE_ADDED ” 和3.1 监听对短信、通话的操作 , “..PACAGE_REMOVED” 实现了对安装和卸载程序的监听, (1)对短信的拦截。
在接收短信时,通过在 Receive 中 并用自己的方法调用 NotificationManager,实现了一个对程序重 写 onReceive ( ) 方 法 来 监 听 系 统 广 播 安装和卸载的监听并在界面进行显示通知。
如图所示,通过图“
android.provider.Telephony.SMS_RECEIVED”,监听到接收 中可以发现,用户可以知道所有程序的安装和卸载的时间以及短信的通知后,可以在 onReceive()写入自定义的方法对其 包名。
进行操作,通过内容匹配、号码匹配来进行筛选短信,对一些含有敏感词的短信或者陌生号码的短信,用 abortBroadcast()— 220 — 计算机光盘软件与应用2012 年第 15 期 Computer CD Software and Applications 软件设计开发 因此,对于较低版本的
Android 系统,我们采用直接读取 /proc//net/dev 文件的方式获取应用程序的网络流量特 征。
界面通知的实现代码4: String service Context.NOTIFICATION_SERVICE NotificationManager nm NotificationManager context .getSystemServiceservice Notification n new Notification n.icon R.drawable.ic_launcher n.tickerText 监听程序检测到消息: n.when System.currentTimeMillis PendingIntent pt PendingIntent.getActivitycontext, 0,null, 0 n.setLatestEventInfocontext , 安 装 了 程 序 : ,packageName, pt nm.notify1, n3.3 监听程序上网流量5 经过对正常软件和恶意软件的网络流量进行统计分析后发现:正常的软件的上行流量是远小于下行流量的,而恶意软件则恰好相反,往往上行流量要大于下行流量。
因此我们可以通过后台监控上网流量,对
Android 系统进行保护。
Android 2.2 及其以上版本提供了一个读取网络流程数据的类 TrafficStats,该类有一系列静态函数,这些函数的功能可以 实 现本 作 品对 软 件网 络流 量 的监 控。
本 文中 使 用到 的TrafficStats 的静态函数如下图所示: 4 结束语 函数名 功能 本文主要实现了 4 种敏感行为的后台监听,对于木马的一 getUidTcpRxBytesint uid User ID 为 uid 的应用程序(下 些恶意操作做了相应猜想,对于防护木马以及对抗其他恶意程 同)接收到的 Tcp 字节数 序方面提供了理论基础,对于在
Android 基础上的智能手机有 getUidTcpTxBytesint uid 应用程序发送的 Tcp 字节数 一定的实践指导意义。
getUidUdpRxBytesint uid 应用程序接收的 Udp 字节数 getUidUpdTxBytesint uid 应用程序发送的 Udp 字节数 参考文献: getUidRxPacketsint uid 应用程序接收的数据包数(包 1靳岩姚尚朗著.
Android 开发入门与实战M.人民邮 括 Tcp 和 Udp) 电出版社2009. getUidTxPacktetsint uid 应用程序发送的数据包数(包 2赖超等.基于
Android 平台的手机后台监听技术J. 括 Tcp 和 Udp) 电脑知识与技术20100633. getUidRxBytesint uid 应用程序接收的总字节数 3李刚著.疯狂
android 讲义(第一版)M.电子工业出 getUidTxBytesint uid 应用程序发送的总字节数 版社2011 为了保证对
Android 2.1 及其以下版本的兼容性,本文利 4郭宏志著.
Android 应用开发详解M.电子工业出版用其他手段获取程序的数据流量。
通过对 TrafficStats 类的源 社2010码进行分析可以发现,其实现方法是读取/proc 目录下应用程 5邵玉如孙润康等.
Android 手机安全检测与取证分析序进程的 net/dev 文件,此文件记录了具体的网络流量数据。
系统J.全国大学生信息安全大赛参赛文档(未公开) — 221 —