还剩2页未读,继续阅读
文本内容:
手机的广播通信关键技术android0智能注重视频应用的安全问题随着智能手机系统的普及,手机不仅限于通信功能,还限于通信功能基于智能系统的各种应用程序,手机逐渐发展成一个具有信息存储、音影娱乐、日程提醒、甚至具有即时付费等功能的移动终端,渐渐成为现代生活中人们时刻贴身的“智能钱包”然而,随之而来的安全问题也日益凸显在本文讨论的Android平台之中,出现的恶意软件已具有了远程操控的能力,对Android手机用户的使用安全构成了极大的威胁,下面就来具体分析一下Android系统架构的特点,以及在这种系统架构之下实现远程控制的方法1android平台安全引擎
1.1android系统层序2007年11月5日Android由谷歌公司推此成为谷歌旗下的开源手机平台它继承了谷歌一贯开放、自由的精神,成为了移动终端上开放和完整的系统平台Android系统分为四层,从高到低依次为应用层、应用框架层、系统运行库层和内核层(图Do简而言之,Android系统核心为基于Linux
2.
6.x内核改编的嵌入式内核,上层搭配其开发的Libraries(C++库)以及Android Runtime(包括JAVA语言核心库及Dalvik虚拟机),再配合Application Framework(包含了访问核心应用程序的API框架),来开发各种不同的Applications(应用程序)
1.2android平台Android的安全机制同样沿袭了Linux系统基于UID权限的安全策略在Android系统下,每个应用都运行在一个Dalvik虚拟机实例里,而每个Dalvik虚拟机实例都是一个独立的进程空间,因而每个应用程序在安装时都会被分配一个独立的标识(ID),而且之后这个程序所产生的任何文件都会被赋予这个标识在UTD标识的基础上,Android搭配了权限(permission)机制权限申明了该程序在系统中执行的操作,如android,permission.SEND_SMS允许发送短信;android,permission.RECEIVE_SMS允许拦截接收短信等等,这些程序的权限都会在程序安装时提示用户因此,相比i Phone等平台不提供应用程序访问一些接口的作法,Android则是把决定权交给了手机用户,由手机用户在安装时,自己决定是否允许程序对手机执行其权限申明的操作但像这样看似自由的做法,却带来了风险,埋下了安全隐患2android广播通信技术
2.1广播机制与所周知在Android应用层实现远控,离不开Android的广播机制,那Android的广播机制到底是如何运转的呢?众所周知,当人们要收听广播的时候,总是先打开收音机调频率,而后便可收听此频率的节目同样,Android的广播机制与此相似,只是把所谓的“频率”改成了“事件”当某个“事件”发生时,系统便会发送一个广播,程序如果要监听这个广播,只要注册一个此事件的广播接收器即可这样,在程序接收到系统发来的关于此事件的广播后,就可以启动执行对应的操作
2.2静态接收系统广播的注册下面用一个简单的程序为例,分析程序具体如何使用广播机制程序注册要监听的广播事件为“开机完成”首先,需要继承广播接收者BroadcastReceiver类,并且去实现onReceive方法这是一个〈receiver/》标签,其中包含了一个android:name属性,继承BroadcastReceiver类的接收器类,在这个标签里还有一个子标签〈intent-filter/〉,这个标签指定了接收器需要接受哪个广播事件,而这条申明就是指“开机完成”事件这样该程序就完成了对事件“开机完成”广播的注册,一旦系统开机完成,该程序就会接收到系统发来的关于“开机完成”的广播当然,这里需要注意的是,程序要接收有些广播还需要添加相应的权限,例如要接收系统收到短信后的广播,就需要添加这样的一条权限以上就是静态接收系统广播的注册完成这些工作后,程序就能接收到自己感兴趣的事件广播,然后就可以执行相应的操作顺着这个思路,控制手机端就可以通过网络或是短信的方式来传递指令,当被控受害手机收到这样一条指令后,就会形成一个广播,当恶意程序监听到这个广播之后,随之就会启动相应的操作,这样便可实现远控3android的远程控制核心技术
3.1接收短信广播的注册以广播机制为基础,程序实现远控仍需要一个传送指令的途径,通过它传送程序中约定的指令到被控手机,这里以短信的方法实现首先,程序需要在被控手机里获得接收短信的权限接下来就是前面提到的接收短信广播的注册,注册的事件名为android,provider.Telephony.SMS_RECEIVEDf,和BroadcastReceiver类的继承与onReceiver实现,在这里不加赘述广播接收者创建完毕后,只要被控手机接收到短信,该程序就能接收到系统的广播,只要是程序中约定的指令,下一步就可以执行对应的操作
3.2du格式的pdus和inten要做到能够识别短信指令,首先程序要能够读取短信的信息Android下实现接收短信还是比较方便的,在收到短信后,系统将会把短信相关的所有信息全部封装成pdu格式的〃pdus〃,然后放到intent里面这里所谓短信的所有信息包括短信的具体内容,短信的来源地址和短信收到的时间等等所以,如果程序需要获得短信的信息,只要通过intent,将pdus取出来就可以了,pdus返回的是一个Object数组,用以表示短信的信息,每一个数组元素代表一条短信,每个元素中短信的信息都以byte数组类型保存,因此也可以把它理解成一个byte类型的二维数组,如图2所示因此,考虑到多条短信的读取,程序代码具体可以如下所示
3.3手机标识的获取现在该程序已经能够读取系统收到短信的信息了接下来继续分析它如何识别远控指令,并实施对应操作为了说明此功能,在这里举一个实例:发送一条指令到被控受害手机,该指令要求被控受害手机将其IMSI码和IMEI码通过短信形式后台发送到控制者机器第一步程序先要得到IMSI码和IMEI码,IMSI码和IMEI码是SIM卡和手机硬件的数字码,是识别手机的标识应用程序要获取它们,就要用到Telephony Manager类,Telephony Manager类提供了一系列用来访问与手机通讯相关的状态和信息的get方法,在添加了相应权限之后,程序用这个方法就可以获取IMSI码和IMEI码第二步根据图3所示的代码,程序读取到的短信信息都被放在了msgs[]中,接下来要处理的就是先把信息来源从msgs口中取出来并与定义好的控制者手机号码进行比对如果相等则证明是从控制者手机发来的短信,在确认其来源后读取短信内容:与约定指令比对,如指令dianli0x002431,f:if bodymsgs,contains,z dianli0x002431这样,识别短信指令的工作就完成了第三步若与指令一致,便执行对应操作,这里的操作是把程序获取到的被控手机的IMSI/IMEI码发送到控制者手机,这里调用Sms Manager中send TextMessage的发送方法,不调用系统短信界面,在后台发送短信首先用静态方法获得Sms Manager实例这样,该程序就实现了在被控手机中接收、读取、比对短信指令,并执行相应操作的功能4关键技术细节本文已经介绍了程序实现监听、读取、识别短信传递的指令并按指令要求执行操作的关键技术细节但是,这里还存在一个问题,这条发送到被控手机的指令是会在系统短信界面中显示出来的,这样就容易被用户怀疑,所以一般的恶意程序都会隐藏远控指令接下来,本文就继续介绍在Android下两种隐藏短信指令的方法
4.1er添加高级别在xml文件中注册广播接收者BoadcastReceiver时添加高优先级这个方法是基于Android的“有序广播”机制,这个机制的规则是:优先级高的广播接收器先接收广播,接收之后若未将广播丢弃,则再传给优先级低的接收器接收
4.2短信信息的读取利用Content Observer内容观察者监听数据库变化Android中的短信收件箱其实就是一个数据库,也就是一张张表程序在代码里先实现注册监听类,这个cur中的address就是指定的号码,read—0〃表示该条短信状态为未读,这里的Uri=content:〃sms/inbox地址指的是sms/inbox收件箱的数据集地址,也就是程序要查询的收件箱表的地址,程序可以对它进行任何数据库的增、册k查、改操作,因而在这里更新短信信息中的读取状态〃read〃为已读read二〃1〃,就可以规避系统的notification,从而实现隐藏指令的目的5后台信息交互本文分析在Android下使用短信指令远控手机的办法,能够实现远程操控手机收发短信、拨打电话,并在被控手机中实现后台信息交互以获取被控手机信息等功能,是现今在Android平台中的恶意程序所常用的手段相信通过本文的介绍和概括,能够使广大的Android用户在使用手机时,提高警惕,增强安全意识,减小被手机恶意程序攻击的几率。