本发明涉及数据安全领域,尤其涉及一种防劫持方法、系统、电子设备及可读存储介质。
背景技术:
随着电子设备的性能提升,电子设备可以安装不同应用程序的安装包,以通过安装应用程序来实现电子设备的功能的多样化。当打开应用程序时,用户无法准备判断电子设备所显示的界面是应用程序的界面还是仿冒的界面。如果在仿冒界面上进行操作时,用户可能会被钓鱼欺骗,用户在输入的用户账号、信用卡号、身份证号码、邮箱地址、家庭成员信息、商业机密信息、登录密码、银行卡号、手机号码、短信验证码、家庭住址信息、公司地址信息等信息很有可能被窃取。然而,现有的应用程序安装包并没有提供如何对可能存在钓鱼欺骗进行识别,因而,降低了安装包的安全性,进而给电子设备的安全造成了一定不便。
技术实现要素:
鉴于以上内容,有必要提供一种可有利于提高应用安装包安全的防劫持方法、装置、电子设备及计算机可读存储介质。
一种防劫持方法,包括:
获取反编译操作后中间文件所包含的顶层活动类名;
获取所述顶层活动类名包含的切换函数位置;
判断所述切换函数位置处是否包含标识内容;
当所述切换函数位置处不包含标识内容时,输出警示信息。
进一步地,所述防劫持方法中,所述当所述切换函数位置处不包含标识内容时,还包括:
在所述切换函数位置处添加标识内容;及
对添加标识内容后的中间文件进行编译操作。
进一步地,所述防劫持方法中,所述获取反编译操作后中间文件所包含的顶层活动类名包括:
对应用安装包进行拆包操作,以提取所述应用安装包所包含的应用文件及清单文件;
对所述应用文件进行反编译操作后生成所述中间文件。
进一步地,所述防劫持方法中,所述对所述应用文件进行反编译操作后生成所述中间文件后包括:
对所述清单文件进行解析操作,以获取所述清单文件注册的活动项名;
从所述中间文件中获取对应所述活动项名的顶层活动类名。
进一步地,所述防劫持方法中,所述获取反编译操作后中间文件所包含的顶层活动类名后还包括:
判断所述顶层活动类名是否与已添加标识内容的顶层活动类名相同;
当所述顶层活动类名与已添加标识内容的顶层活动类名相同时,获取所述顶层活动类名包含的切换函数位置;
当所述顶层活动类名与已添加标识内容的顶层活动类名不相同时,获取下一顶层活动类名。
进一步地,所述防劫持方法中,所述防劫持方法还包括:
执行所述标识内容,包括:
获取当前活动界面的状态;
判断当前活动界面是否处于被覆盖前的状态;
当所述当前活动界面处于被覆盖前的状态时,判断当前活动界面与覆盖后活动界面的顶层活动类名是否一致;
当所述当前活动界面与覆盖后活动界面的顶层活动类名不一致时,输出提示信息。
进一步地,所述防劫持方法中,所述判断当前活动界面是否处于被覆盖前的状态包括:
判断当前活动界面的顶层活动类名所包含的切换函数是否被执行;
当所述当前活动界面的顶层活动类名所包含的切换函数被执行时,确定所述当前活动界面处于被覆盖前的状态。
一种电子设备,包括存储器及处理器,所述存储器存储若干被所述处理器执行的程序,其特征在于,所述处理器执行所述程序时实现步骤:
获取反编译操作后中间文件所包含的顶层活动类名;
获取所述顶层活动类名包含的切换函数位置;
判断所述切换函数位置处是否包含标识内容;
当所述切换函数位置处不包含标识内容时,输出警示信息。
一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现步骤:
获取反编译操作后中间文件所包含的顶层活动类名;
获取所述顶层活动类名包含的切换函数位置;
判断所述切换函数位置处是否包含标识内容;
当所述切换函数位置处不包含标识内容时,输出警示信息。
一种防劫持系统,其特征在于,所述防劫持系统包括:
控制单元,用于获取反编译操作后中间文件所包含的顶层活动类名;
所述控制单元,还用于获取所述顶层活动类名包含的切换函数位置;并在所述切换函数位置处添加标识内容;及
编译单元,用于对添加标识内容后的中间文件进行编译操作。
上述防劫持方法、装置、电子设备及计算机可读存储介质通过检测所述顶层活动类名的切换函数位置处是否有标识内容来判断所述应用安装包是否运行防劫持功能,并在所述应用安装包不支持防劫持功能时提示用户,有利于用户方便进行安全的辨识。另外,通过在所述切换函数位置处添加所述标识内容,以将防劫持的功能集成到现在的应用安装包内,方便、快捷;还可通过对所述应用安装包的防劫持功能进行测试,可有效降低由用户自己判断应用安装包是否具有防劫持功能的不确定性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明防劫持方法的第一较佳实施方式的流程图。
图2是图1中步骤s100的较佳实施方式的流程图。
图3是本发明防劫持方法的第二较佳实施方式的流程图。
图4是图3中步骤s312的较佳实施方式的流程图。
图5是本发明电子设备的较佳实施方式的方框图。
图6是本发明防劫持系统的较佳实施方式的方框图。
主要元件符号说明
电子设备50
处理器501
显示屏503
存储器505
输入输出接口507
网络接口509
防劫持系统517
总线511
反编译单元600
提取单元602
执行单元604
控制单元606
权限单元608
编译单元610
警示单元612
活动管理单元614
如下具体实施例将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
实施例一
请参阅图1,本发明实施例一提供的防劫持方法的示意流程图。所述方法应用于电子设备中,所述电子设备可以为手机、平板电脑等具有数据处理功能的终端。如图1所示,所述防劫持方法可包括以下步骤:
步骤s100,获取反编译操作后中间文件所包含的顶层活动类名。
本实施方式中,所述电子设备可安装有若干应用程序,所述若干应用程序可对应不同的功能。所述若干应用程序可通过对应的应用安装包来进行安装,如当点击一应用安装包时,所述电子设备可对所述安装包执行安装操作。
本实施方式中,所述电子设备可对所述应用安装包进行反编译操作以生成中间文件,所述电子设备还用于获取所述中间文件中包含的顶层活动类名。
可以理解地,所述应用安装包可为apk包,当对所述安装包的反编译操作后可生成smali文件。所述smali文件可包含若干顶层活动类名,其中所述顶层活动类名为非系统活动类名。例如,在一般的程序开发中,活动类名(如用户自定义的活动类型exampleactivity)会通过继承(extends)系统活动类名(activity)来实现程序之间的耦合性。而活动类名的继承可通过直接继承或间接继承系统活动类名,即活动类名可通过多重继承。
对于顶层活动类名而言,其包含了定义用户界面的生命周期的函数,如onstart、onresume、oncreate、onpause、onstop、onrestart及ondestroy等函数。所述电子设备可通过活动管理器来管理各活动类名所对应的实例的运行,其中,所述活动管理器通过栈的方式来管理各活动类名所对应的实例,较佳地,所述栈可为后进先出的栈,一个活动类名的实例的状态决定它在栈中的位置。处于前台的活动类名的实例(当前用户界面)总是在栈的顶端,当前台的活动类名的实例因为异常或其它原因被销毁时,处于栈第二层的活动类名的实例将被激活,并移动到栈的顶部。当新的活动类名的实例启动入栈时,当前用户界面对应的活动类名的实例会被压入到栈的第二层。一个活动类名的实例在栈中的位置变化反映了它在不同状态间的转换。onpause函数表示当前用户界面向另一用户界面切换时的切换函数。例如,当用户打开第一应用程序的第一用户界面时,若用户想要切换至第一应用程序的第二界面时,此时,当前用户界面所对应的活动类名会执行onpause函数,以指示电子设备会进行界面切换。
步骤s102,获取所述顶层活动类名包含的切换函数位置。
所述电子设备获取所述顶层活动类名包含的切换函数位置,即获取onpause函数所在的位置。本实施方式中,所述电子设备可通过查找onpause函数名来获得所述切换函数的位置。
步骤s104,判断所述切换函数位置是否包含标识内容;当所述切换函数位置包含所述标识内容时,执行步骤s110;当所述切换函数位置不包含所述标识内容时,执行步骤s106。
本实施方式中,所述标识内容为检测所述安装包是否包含防劫持功能。所述标识内容可对应防劫持功能的应用程序或是用于调用防劫持功能的函数。如此,在执行所述切换函数时可执行所述防劫持功能。
步骤s106,输出警示信息,并在所述切换函数位置处添加所述标识所述。
本实施方式中,当所述切换函数位置处没有所述标识内容时,即表示所述应用安装包不支持防劫持功能,此时,所述电子设备可输出警示信息,所述电子设备可在所述切换函数位置处添加劫持所述防劫持功能的标识内容。
本实施方式中,所述标识内容可为函数的调用接口或文件的调用接口,如在所述函数的调用接口被执行时,所述电子设备可执行所述防劫持功能;当所述文件的调用接口被执行时,所述电子设备可加载包含防劫持功能的文件,如所述文件中可包含防劫持功能的程序代码等。
在其他实施方式中,所述电子设备亦可只输出所述警示信息。
步骤s108,对添加标识内容后的中间文件进行编译操作。
当所述电子设备在所述中间文件的切换函数处添加标识内容时,所述电子设备可重新对所述中间文件进行编译操作,如将中间文件smali文件编译为dex文件,以方便用户进行安装。
当所述标识内容位于包含防劫持功能的文件内时,所述电子设备可将包含防劫持功能的文件添加到smali文件夹中对应的位置,以进行编译操作。
在其他实施方式中,当所述电子设备对中间文件进行编译操作时,可对所述中间文件进行权限设置,以保证编译操作后的应用安装包的安全性。
步骤s110,输出应用安装包安全的信息。
当所述切换函数的位置处包含所述标识内容时,所述电子设备可输出所述安全信息。
通过检测所述顶层活动类名的切换函数位置处是否有标识内容来判断所述应用安装包是否运行防劫持功能,并在所述应用安装包不支持防劫持功能时提示用户,有利于用户方便进行安全的辨识。
在另一实施方式中,步骤s104及步骤s110可以省略,即当步骤s102执行完后,执行步骤s106的在切换函数位置处添加所述标识内容。本实施方式中,通过在所述切换函数位置处添加所述标识内容,以将防劫持的功能集成到现在的应用安装包内,方便、快捷。
请参阅图2,步骤s100的较佳实施方式包括:
步骤s200,对应用安装包进行拆包操作,以提取所述应用安装包所包含的应用文件及清单文件。
本实施方式中,所述电子设备可对apk应用安装包进行拆包操作,以提取所述应用安装包中包含的应用文件(dex文件)及清单文件(androidmanifest.xml)。在其他类型的安装包中,所述应用文件与清单文件的名称可能是其他的名称。
步骤s202,对所述应用文件进行反编译操作,生成中间文件。
所述电子设备对所述应用文件dex文件执行反编译操作后可得到所述中间文件samli文件。
步骤s204,对清单文件进行解析操作,以获取注册的若干活动项名。
本实施方式中,所述清单文件中可包含注册的若干活动项名。
步骤s206,从所述中间文件中获取对应活动项名的顶层活动类名。
本实施方式中,所述中间文件中的顶层活动类名可对应于注册在所述清单文件的活动项名。通过注册的若干活动项名来查找所述中间文件包含的顶层活动类名,有利于提高查找的效率。
步骤s208,判断所述顶层活动类名是否与已添加标识内容的顶层活动类名相同;当所述顶层活动类名与已添加标识内容的顶层活动类名相同时,执行步骤s212;当所述顶层活动类名与已添加标识内容的顶层活动类名不相同时,执行步骤s210。
本实施方式中,当所述顶层活动类名与已添加标识内容的顶层活动类名相同时,表示所述顶层活动类名已添加了标识内容,因此,为提高执行效率,所述电子设备在所述顶层活动类名与已添加标识内容的顶层活动类名相同,执行步骤s212,以继续查找下一顶层活动类名。
步骤s210,获取所述顶层活动类名包含的调用函数位置。
所述步骤s210与所述步骤102相同,故在此不再赘述。
步骤s212,获取下一顶层活动类名。
通过获取下一顶层活动类名以实现注册至xml清单文件中的所有活动类名的遍历操作,以确保所述xml清单文件中所有活动类名均包含防劫持功能。
实施例二
请参阅图3,本发明实施例二提供的防劫持方法的示意流程图。所述方法应用于电子设备中,所述电子设备可以为手机、平板电脑等具有数据处理功能的电子设备。需要说明的是,在本发明的精神或基本特征的范围内,适用于第一实施例的各具体方案也可以相应的适用于第二实施例中,为节省篇幅及避免重复起见,在此就不再赘述。
如图3所示,所述消息通知处理可包括以下步骤:
步骤s300,获取反编译操作后中间文件所包含的顶层活动类名。
本实施例中步骤s300与实施例一中步骤s100一致,具体请参阅实施例一中步骤s100的相关描述,在此不进行赘述。
步骤s302,获取所述顶层活动类名包含的切换函数位置。
本实施例中步骤s302与实施例一中步骤s102一致,具体请参阅实施例一中步骤s102的相关描述,在此不进行赘述。
步骤s304,判断所述切换函数位置是否包含标识内容。
本实施例中步骤s304与实施例一中步骤s104一致,具体请参阅实施例一中步骤s104的相关描述,在此不进行赘述。
步骤s306,在所述切换函数位置处添加标识内容。
本实施例中步骤s306与实施例一中步骤s106一致,具体请参阅实施例一中步骤s106的相关描述,在此不进行赘述。
步骤s308,对添加标识内容后的中间文件进行编译操作。
本实施例中步骤s308与实施例一中步骤s108一致,具体请参阅实施例一中步骤s108的相关描述,在此不进行赘述。
步骤312,执行所述标识内容。
所述电子设备可执行标识内容,以判断所述标识内容是否可支持防劫持功能。
步骤s310,输出应用安装包安全的信息。
本实施例中步骤s310与实施例一中步骤s110一致,具体请参阅实施例一中步骤s110的相关描述,在此不进行赘述。
本实施方式中通过执行所述标识内容,以对所述应用安装包的防劫持功能进行测试,可有效降低由用户自己判断应用安装包是否具有防劫持功能的不确定性。
请参阅图4,步骤s312的较佳实施方式包括:
步骤s400,获取当前活动界面的状态。
所述电子设备的活动管理器获取所述栈的最上层的活动类名,所述最上层的活动类名对应于当前活动界面。
步骤s402,判断当前活动界面是否处于被覆盖前的状态;当所述当前活动界面处于被覆盖前的状态时,执行步骤s404;当所述当前活动界面没有处于被覆盖前的状态时,返回步骤s400。
所述电子设备可判断所述最上层的活动类名所包含的调用函数是否被执行;当所述最上层的活动类名所包含的调用函数被执行时,所述电子设备即可判定所述当前活动界面处于被覆盖前的状态。
步骤s404,判断当前活动界面与覆盖后活动界面的顶层活动类名是否一致;当所述当前活动界面与覆盖后活动界面的顶层活动类名不一致时,执行步骤s406;当所述当前活动界面与覆盖后活动界面的顶层活动类名一致时,执行步骤s408。
本实施方式中,当所述栈中最上层的活动类名中的调用函数被执行时,所述电子设备会将覆盖后活动界面所对应的活动类名加入所述栈;此时,所述栈中的顶层活动类名(位于所述栈的第一层)则变为覆盖后活动界面所对应的活动类名,而所述栈中原来的顶层活动类名则被压入所述栈的第二层。因此,所述电子设备可判断所述栈中第一层的活动类名是否与所述第二层的活动类名相同。当所述栈中第一层的活动类名与所述第二层的活动类名相同时,则表示当前活动界面与覆盖后活动界面是位于相同的应用程序,覆盖后的活动界面是安全的。当所述栈中第一层的活动类名与所述第二层的活动类名不相同时,则表示当前活动界面与覆盖后活动界面是位于不同的应用程序,覆盖后的活动界面存在被钓鱼的可能。
步骤s406,输出提示信息。
当覆盖后的活动界面存在被钓鱼的可能时,所述电子设备可输出提示信息,以警示用户。
步骤s408,切换至覆盖后的活动界面。
当覆盖后的活动界面是安全时,所述电子设备可切换至覆盖后的活动界面。
通过判断栈中的第一层的活动类名是否与第二层的活动类名是否相同来判断所述应用安装包是否支持防劫持功能。
实施例三
请参阅图5,其为本发明一实施例中,提供的可应用上述各实施例的电子设备的结构示意图。如图5所示,电子设备50可包括防劫持系统517。所述电子设备40可以为手机、平板电脑、计算机等具有数据处理功能的电子设备。所示的防劫持系统40可以根据判断应用安装包是否运行防劫持功能,从而为所述电子设备的用户提供更好的使用体验。
进一步地,所述防劫持系统40通过应用安装包的调用函数处是否包含标识内容;当调用函数处包含标识内容时,则表示所述应用安装包支持防支持功能;当调用函数处不包含标识内容时,所述防劫持系统40可输出警示信息。
所述电子设备50是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。
所述电子设备50可以是,但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)、游戏机、智能式穿戴式设备等。
所述电子设备50所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等,如所述电子设备50可网络接口509接入互联网、广域网、城域网、局域网、虚拟专用网络。
所述的存储器505可以是不同类型存储设备或计算机可读存储介质,用于存储各类数据。例如,可以是电子设备50的内存,还可以是可外接于该电子设备50的存储卡,如闪存、sm卡(smartmediacard,智能媒体卡)、sd卡(securedigitalcard,安全数字卡)等。存储器505用于存储各类数据,例如,所述电子设备50中安装的包括信息处理的应用程序(applications)、应用上述信息处理方法而设置、获取的数据等信息。
所述处理器501用于执行所述防劫持方法以及所述电子设备50内安装的各类软件,例如操作系统、信息处理软件等。所述处理器501包含但不限于处理器(centralprocessingunit,cpu)、微控制单元(microcontrollerunit,mcu)等用于解释计算机指令以及处理计算机软件中的数据的装置,可以包括一个或者多个微处理器、数字处理器。所述显示屏503可以是触摸屏等其他用于显示画面的设备。
所述处理器501可以包括一个或者多个微处理器、数字处理器。
所述显示屏503可以是触摸屏等其他用于显示画面的设备。
本实施例中,所述显示屏503为一具有触摸功能的显示屏,进而为用户的操作提供便利。所述存储器505可存储有若干程序代码,以被所述处理器501执行,进而实现所述防劫持系统517的功能。
如图5所示,所述电子设备50包括的防劫持系统517可以包括一个或多个的模块,所述一个或多个模块可以被存储在电子设备50的存储器505中并可以被配置成由一个或多个处理器(本实施例为一个处理器501)执行,以完成本发明。例如,参阅图5所示,所述电子设备50包括存储器505、输入输出接口507、显示屏503及通过总线511与所述存储器505、输入输出接口507与显示屏503进行数据交换的处理器501。其中,所述输入输出接口507可连接于鼠标及/或键盘(图未示)。本发明所称的模块是完成一特定功能的程序段,比程序更适合于描述软件在处理器中的执行过程。
请一并参阅图6,所述防劫持系统517的较佳实施方式包括反编译单元600、提取单元602、执行单元604、控制单元606、权限单元608、编译单元610、警示单元612及活动管理单元614。
所述提出单元602用于对应用安装包进行拆包操作,以提取所述应用安装包所包含的应用文件及清单文件。本实施方式中,所述电子设备可对apk应用安装包进行拆包操作,以提取所述应用安装包中包含的应用文件(dex文件)及清单文件(androidmanifest.xml)。在其他类型的安装包中,所述应用文件与清单文件的名称可能是其他的名称。
所述反编译单元600用于对所述应用文件dex文件执行反编译操作,以得到中间文件samli文件。
可以理解地,所述应用安装包可为apk包,当对所述安装包的反编译操作后可生成smali文件。所述smali文件可包含若干顶层活动类名,其中所述顶层活动类名为非系统活动类名。例如,在一般的程序开发中,活动类名(如用户自定义的活动类型exampleactivity)会通过继承(extends)系统活动类名(activity)来实现程序之间的耦合性。而活动类名的继承可通过直接继承或间接继承系统活动类名,即活动类名可通过多重继承。
所述控制单元606用于从所述中间文件中获取对应活动项名的顶层活动类名,并判断所述顶层活动类名是否与已添加标识内容的顶层活动类名相同;当所述顶层活动类名与已添加标识内容的顶层活动类名相同时,所述控制单元606用于获取下一顶层活动类名;当所述顶层活动类名与已添加标识内容的顶层活动类名不相同时,所述控制单元606用于获取所述顶层活动类名包含的调用函数位置。
对于顶层活动类名而言,其包含了定义用户界面的生命周期的函数,如onstart、onresume、oncreate、onpause、onstop、onrestart及ondestroy等函数。所述电子设备可通过活动管理单元614来管理各活动类名所对应的实例的运行,其中,所述活动管理单元614通过栈的方式来管理各活动类名所对应的实例,较佳地,所述栈可为后进先出的栈,一个活动类名的实例的状态决定它在栈中的位置。处于前台的活动类名的实例(当前用户界面)总是在栈的顶端,当前台的活动类名的实例因为异常或其它原因被销毁时,处于栈第二层的活动类名的实例将被激活,并移动到栈的顶部。当新的活动类名的实例启动入栈时,当前用户界面对应的活动类名的实例会被压入到栈的第二层。一个活动类名的实例在栈中的位置变化反映了它在不同状态间的转换。onpause函数表示当前用户界面向另一用户界面切换时的切换函数。例如,当用户打开第一应用程序的第一用户界面时,若用户想要切换至第一应用程序的第二界面时,此时,当前用户界面所对应的活动类名会执行onpause函数,以指示电子设备会进行界面切换。
所述控制单元606所述顶层活动类名包含的切换函数位置,即获取onpause函数所在的位置。本实施方式中,所述电子设备可通过查找onpause函数名来获得所述切换函数的位置。
所述控制单元606还用于判断所述切换函数位置是否包含标识内容;当所述切换函数位置包含所述标识内容时,所述控制单元606可控制所述警示单元612输出应用安装包安全的信息;当所述切换函数位置不包含所述标识内容时,所述控制单元606控制所述警示单元612输出应用安装包异常的警示信息。
本实施方式中,所述标识内容为检测所述安装包是否包含防劫持功能。所述标识内容可对应防劫持功能的应用程序或是用于调用防劫持功能的函数。如此,在执行所述切换函数时可执行所述防劫持功能。
当所述切换函数位置处没有所述标识内容时,即表示所述应用安装包不支持防劫持功能,此时,所述警示单元612可输出警示信息,所述控制单元606可在所述切换函数位置处添加劫持所述防劫持功能的标识内容。
通过检测所述顶层活动类名的切换函数位置处是否有标识内容来判断所述应用安装包是否运行防劫持功能,并在所述应用安装包不支持防劫持功能时提示用户,有利于用户方便进行安全的辨识。
本实施方式中,所述标识内容可为函数的调用接口或文件的调用接口,如在所述函数的调用接口被执行时,所述电子设备可执行所述防劫持功能;当所述文件的调用接口被执行时,所述电子设备可加载包含防劫持功能的文件,如所述文件中可包含防劫持功能的程序代码等。
在其他实施方式中,所述警示单元612亦可只输出所述警示信息。
当所述电子设备在所述中间文件的切换函数处添加标识内容时,所述编译单元610可重新对所述中间文件进行编译操作,如将中间文件smali文件编译为dex文件,以方便用户进行安装。
当所述标识内容位于包含防劫持功能的文件内时,所述编译单元610可将包含防劫持功能的文件添加到smali文件夹中对应的位置,以进行编译操作。
在其他实施方式中,当所述权限单元608对中间文件进行编译操作时,可对所述中间文件进行权限设置,以保证编译操作后的应用安装包的安全性。
所述执行单元604还可执行所述标识内容。
可以理解地,所述执行单元604可获取所述栈的最上层的活动类名,所述最上层的活动类名对应于当前活动界面。
所述执行单元604还用于判断当前活动界面是否处于被覆盖前的状态;当所述当前活动界面处于被覆盖前的状态时,所述执行单元604还用于判断当前活动界面与覆盖后活动界面的顶层活动类名是否一致;当所述当前活动界面与覆盖后活动界面的顶层活动类名不一致时;所述执行单元604控制所述警示单元612输出警示信息。
本实施方式中,当所述栈中最上层的活动类名中的调用函数被执行时,所述活动管理单元614会将覆盖后活动界面所对应的活动类名加入所述栈;此时,所述栈中的顶层活动类名(位于所述栈的第一层)则变为覆盖后活动界面所对应的活动类名,而所述栈中原来的顶层活动类名则被压入所述栈的第二层。因此,所述执行单元604可判断所述栈中第一层的活动类名是否与所述第二层的活动类名相同。当所述栈中第一层的活动类名与所述第二层的活动类名相同时,则表示当前活动界面与覆盖后活动界面是位于相同的应用程序,覆盖后的活动界面是安全的。当所述栈中第一层的活动类名与所述第二层的活动类名不相同时,则表示当前活动界面与覆盖后活动界面是位于不同的应用程序,覆盖后的活动界面存在被钓鱼的可能。
通过判断栈中的第一层的活动类名是否与第二层的活动类名是否相同来判断所述应用安装包是否支持防劫持功能。
可以理解的是,对应上述防劫持方法中的各实施例,防劫持系统517可以包括图5中所示的各功能模块中的一部分或全部,各模块的功能将在以下具体介绍。需要说明的是,以上生成报告的方法的各实施例中相同的名词相关名词及其具体的解释说明也可以适用于以下对各模块的功能介绍。为节省篇幅及避免重复起见,在此就不再赘述。
所述处理器501可以包括一个或者多个微处理器、数字处理器。
所述显示屏503可以是触摸屏等其他用于显示画面的设备。
本实施例中,所述显示屏503为一具有触摸功能的显示屏,进而为用户的操作提供便利。所述存储器505可存储有若干程序代码,以被所述处理器501执行,进而实现所述防劫持系统517的功能。
在本发明所提供的几个实施例中,应该理解到,所揭露的防劫持方法及装置,可以通过其它的方式实现。例如,以上所描述的消息通知处理装置的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能模块可以集成在相同处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在相同模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或系统也可以由同一个单元或系统通过软件或者硬件来实现。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。