获取系统最高权限的方法及装置制造方法

文档序号:6640549阅读:377来源:国知局
获取系统最高权限的方法及装置制造方法
【专利摘要】本发明提供一种获取系统最高权限的方法,包括以下步骤:通过远程通信端口获取第一脚本和至少一个用于提权的方案;第一脚本调用方案中的第二脚本;第二脚本将方案中的提权文件推送至与本地维持通信链路的目标终端,且调用提权文件以使目标终端获取系统最高权限。本发明还提供一种获取系统最高权限的装置。通过上述方式,可在不更新提权应用程序的情况下,使其能够继续执行修改后的提权方案或新产生的提权方案,提高提取的效率。
【专利说明】获取系统最高权限的方法及装置

【技术领域】
[0001]本发明涉及计算机领域,具体而言,本发明涉及一种获取系统最高权限的方法及
目.0

【背景技术】
[0002]随着移动终端的发展,其智能化程度越来越高,用户通常希望获取系统的最高权限,以访问或修改操作系统中的文件。对于Android系统的移动终端,其系统最高权限是指Root权限。Root权限是指Unix类操作系统(包括Linux、Android)的系统管理员权限,类似于Windows (视窗)系统中的Administrator (管理员)权限;Root权限可以访问或修改移动终端中几乎所有的文件(Android系统文件及用户文件,不包括ROM)。
[0003]目前,进行Root的应用程序有多种,通常安装于电脑上,通过电脑对与电脑连接的移动终端进行Root。进行Root操作时,需要相应的用于提权的方案,该方案可来自于电脑中的方案库,还可来自于云端的方案库。以手机为例,随着手机型号的不断变化,其相应的系统版本等特征信息也不断的变化,导致用于提权的方案也需进行变化。若利用电脑方案库中的方案进行Root,则需对电脑中的方案库进行升级以满足不断变化的机型;若利用云端方案库中的方案进行Root,对于一些新的方案,由于其逻辑的变化,使得Root应用程序的客户端也需进行相应的更新以满足新方案的要求。以上不足使得现有Root应用不够灵活,难以实现用户高体验的要求。


【发明内容】

[0004]本发明的目的旨在至少解决上述技术缺陷之一,特别是在不更新提权应用程序的情况下,使其能够继续执行修改后的提权方案或新产生的提权方案。
[0005]本发明提供一种获取系统最高权限的方法,包括以下步骤:通过远程通信端口获取第一脚本和至少一个用于提权的方案;第一脚本调用方案中的第二脚本;第二脚本将方案中的提权文件推送至与本地维持通信链路的目标终端,且调用提权文件以使目标终端获取系统最高权限。
[0006]其中,第一脚本和第二脚本均为包含Root逻辑的Lua脚本。
[0007]其中,提权文件为.so文件或可执行文件。
[0008]其中,至少一个用于提权的方案以列表的形成存在,各方案均用于Root目标终端;方案为针对系统版本、CPU型号、内核版本或机型的提权方案。
[0009]其中,第一脚本调用方案中的第二脚本的步骤具体包括:第一脚本调用第二脚本的接口函数,其中,列表中各方案中第二脚本的接口函数相同。
[0010]其中,调用提权文件以使目标终端获取系统最高权限的步骤之后,包括:第一脚本获取提权文件返回的Root结果;判断Root结果是否为提取成功;若提取失败,第一脚本调用列表中其他方案的第二脚本。
[0011]其中,通过远程通信端口获取第一脚本和至少一个用于提权的方案的步骤具体包括:根据提权指令,通过远程通信端口发送获取第一脚本的请求,获取响应于请求返回的第一脚本;第一脚本获取与本地维持通信链路的目标终端的特征信息,并通过远程通信端口发送包含该特征信息的提权方案获取请求,获取响应于该请求返回的至少一个用于提权的方案。
[0012]其中,第二脚本包括其所在方案可Root终端的特征信息。
[0013]其中,特征信息包括:系统版本号、CPU型号、内核版本号和/或机型号。
[0014]本发明还提供一种获取系统最高权限的方法,包括以下步骤:通过远程通信端口接收获取第一脚本的提权请求;根据提权请求返回第一脚本;接收第一脚本发送的包含需提权目标终端的特征信息的提权方案获取请求;根据目标终端的特征信息,查找适用于目标终端的用于提权的方案,并返回方案。
[0015]其中,查找的方案的数量为至少一个,各方案以列表的形式返回。
[0016]其中,方案包括第二脚本和提权文件。
[0017]其中,第一脚本和第二脚本均为包含Root逻辑的Lua脚本,提权文件为.so文件或可执行文件。
[0018]其中,目标终端的特征信息包括系统版本号、CPU型号、内核版本号和/或机型号。
[0019]本发明提供一种获取系统最高权限的装置,包括:获取模块,用于通过远程通信端口获取第一脚本和至少一个用于提权的方案;调用模块,用于调用方案中的第二脚本;提权模块,用于将方案中的提权文件推送至与本地维持通信链路的目标终端,且调用提权文件以使目标终端获取系统最高权限。
[0020]其中,第一脚本和第二脚本均为包含Root逻辑的Lua脚本。
[0021]其中,提权文件为.so文件或可执行文件。
[0022]其中,至少一个用于提权的方案以列表的形成存在,各方案均用于Root目标终端;方案为针对系统版本、CPU型号、内核版本或机型的提权方案。
[0023]其中,调用模块具体用于:调用第二脚本的接口函数,其中,列表中各方案中第二脚本的接口函数相同。
[0024]其中,调用模块进一步用于:获取提权文件返回的Root结果;判断Root结果是否为提取成功;若提取失败,调用列表中其他方案的第二脚本。
[0025]其中,获取模块具体用于:根据提权指令,通过远程通信端口发送获取第一脚本的请求,获取响应于请求返回的第一脚本;第一脚本获取与本地维持通信链路的目标终端的特征信息,并通过远程通信端口发送包含该特征信息的提权方案获取请求,获取响应于该请求返回的至少一个用于提权的方案。
[0026]其中,第二脚本包括其所在方案可Root终端的特征信息。
[0027]其中,特征信息包括:系统版本号、CPU型号、内核版本号和/或机型号。
[0028]本发明还提供一种获取系统最高权限的装置,包括:第一接收模块,用于通过远程通信端口接收获取第一脚本的提权请求;第一返回模块,用于根据提权请求返回第一脚本;第二接收模块,用于接收第一脚本发送的包含需提权目标终端的特征信息的提权方案获取请求;第二返回模块,用于根据目标终端的特征信息,查找适用于目标终端的用于提权的方案,并返回方案。
[0029]其中,查找的方案的数量为至少一个,各方案以列表的形式返回。
[0030]其中,方案包括第二脚本和提权文件。
[0031]其中,第一脚本和第二脚本均为包含Root逻辑的Lua脚本,提权文件为.so文件或可执行文件。
[0032]其中,目标终端的特征信息包括系统版本号、CPU型号、内核版本号和/或机型号。
[0033]与现有技术相比,本发明具有以下优点:
[0034]1、用于提权的应用程序结合第一脚本和第二脚本对目标终端进行提权,由于第一脚本、第二脚本包含Root逻辑且由服务器端提供,因此当提权方案根据需要修改后,应用程序仍可利用其进行提权,原因为提权方案包括第二脚本和提权文件,对提权方案的修改具体为对第二脚本进行修改。
[0035]2、第一脚本和第二脚本均为Lua脚本,小巧便捷,可跨平台运行。
[0036]3、服务器端返回至少一个方案,利用多个不同的方案进行提权,确保提权的成功。其中,方案可为针对系统版本、CPU型号、内核版本或机型的提权方案。
[0037]4、各方案的第二脚本具有相同的用于第一脚本调用的接口,第一脚本和第二脚本进行整合以对目标终端进行提权,当提权失败后,第一脚本与另一方案的第二脚本整合继续对目标终端进行提权。此动态提权过程可简化提权流程,对于执行不同的提取方案,只需调用不同的第二脚本即可。
[0038]以上所述,可即时对提权方案进行修改,在不更新用于提权的应用程序的情况下,使其能够继续执行修改后的提权方案。
[0039]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

【专利附图】

【附图说明】
[0040]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0041]图1为本发明系统结构原理图;
[0042]图2为本发明获取系统最高权限的方法一实施例的流程示意图;
[0043]图3为本发明获取系统最高权限的方法另一实施例的流程示意图;
[0044]图4为本发明获取系统最高权限的方法再一实施例的流程示意图;
[0045]图5为本发明获取系统最高权限的装置一实施例的结构示意图。

【具体实施方式】
[0046]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0047]本【技术领域】技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0048]本【技术领域】技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0049]本【技术领域】技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS (Personal Communicat1ns Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA (Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS (Global Posit1ning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
[0050]本【技术领域】技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
[0051]本领域技术人员应当理解,本发明所称的“应用”、“应用程序”、“应用软件”以及类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。理所当然地,此类概念也不受任何形式的终端所限制。
[0052]请参阅图1,图1为本发明系统结构原理图,如图1所示,包括服务器端11、客户端12及目标终端13。
[0053]图1所示系统为基于网络环境所构建的系统,服务器端11用于提供提权所需的方案及提权过程中的通用逻辑,客户端12为安装有本发明Root应用程序的电脑,目标终端13为需进行Root的移动终端(如:手机)。其中,服务器端11可以为云端,目标终端13为运行Android系统的终端。
[0054]本实施例用于对Android系统的移动终端进行提权,但不限于该系统,本领域技术人员可以合理预见,诸如Windows、苹果等操作系统的移动终端,均可适用于本实施例所构思的提权方案。
[0055]客户端12通过远程通信端口与服务器端11连接,且通过通信链路与目标终端13连接。客户端12具有与目标终端13建立通信链路的连接端口,如蓝牙、WiFi和/或USB接口,其中,客户端12可同时连接多个目标终端13,对多个目标终端13进行批量Root。
[0056]请参阅图2,图2为本发明获取系统最高权限的方法一实施例的流程示意图,如图2所示,包括以下步骤:
[0057]S21,通过远程通信端口获取第一脚本和至少一个用于提权的方案。
[0058]结合图1所示的系统,当客户端12与目标终端13连接,用户在客户端12发出对目标终端13进行Root的命令时,客户端12通过其远程通信端口获取第一脚本和至少一个用于提权的方案。该获取过程具体如下:
[0059]A.根据提权指令,通过远程通信端口发送获取第一脚本的请求,获取响应于请求返回的第一脚本。
[0060]当客户端12中Root应用程序启动,且该应用程序与目标终端13建立通信时,若用户在应用程序界面触发提权操作,则该应用程序向服务器端11发送获取第一脚本的请求;服务器端11接收该请求后,返回第一脚本。
[0061]第一脚本为Root过程中的通用逻辑,可控制各种Root方案的执行。在本实施例中,第一脚本为包含Root逻辑的Lua脚本。
[0062]Lua脚本由标准C编写而成,几乎可在所有的操作系统和平台上进行编译、运行,其小巧且运行速度快,为嵌入式脚本的最佳选择,当嵌入应用程序中时,可为应用程序提供灵活的扩展和定制功能。
[0063]在本实施例中,第一脚本具有控制应用程序界面变化的功能,如:当执行Root方案时,使应用程序显示“Root进行中”的界面;当Root失败时,使应用程序跳转至“Root失败”的界面。
[0064]在本实施例中,通过超文本传送协议(Hypertext transfer protocol,HTTP)实现客户端12与服务器端11的交互。在交互过程中,为确保通信安全,可对交互数据进行加密。如:对请求进行加密,服务器端11收到请求后,对请求进行解密;同理,对返回的第一脚本进行加密,客户端12收到第一脚本后,对第一脚本进行解密。可采用AES(AdvancedEncrypt1n Standard,高级加密标准)进行加密,加密和解密双方的密钥相同。AES在软件和硬件上都能快速地加解密,易于实作且需要很少的存储器。也可采用非对称加密算法进行加密。
[0065]为确保客户端12获得的第一脚本合法,防止其被篡改,还可通过校验MD5值的方法进行合法性判断,具体为,当客户端12获取第一脚本后,发送请求获取服务器端11存储的第一脚本的MD5值,将服务器端11返回的MD5值与第一脚本重新生成的MD5值进行比较,若相同,贝1J获取的第一脚本合法。
[0066]B.第一脚本获取与本地维持通信链路的目标终端13的特征信息,并通过远程通信端口发送包含该特征信息的提权方案获取请求,获取响应于该请求返回的至少一个用于提权的方案。
[0067]目标终端13的特征信息包括:系统版本号、CPU型号、内核版本号和/或机型号,目标终端13的特征信息越多,越有助于提权的成功,即获得的提权方案更多、更精确。本领域技术人员在获取目标终端13的特征信息时,还可获取其他的特征信息。
[0068]服务器端11接收第一脚本发送的提权方案获取请求后,查找与目标终端13特征信息相对应的提权方案,并将提权方案返回至客户端12。通常服务器端11会以列表的方式返回至少一个方案,各方案以一定的顺序排列,如以成功率、开发时间或随机的方式进行排列,通常以成功率的高低进行排列,成功率高的方案优先执行,可节省Root时间。其中,列表中的各方案均用于Root目标终端13,方案可为针对系统版本、CPU型号、内核版本或机型的提权方案,还可以是厂商提供的方案。
[0069]服务器端11与客户端12在交互过程中,为确保通信安全,也可对交互数据进行加tM
I_L| O
[0070]在本实施例中,方案包括第二脚本和提权文件。第二脚本为Root过程中具体方案的逻辑,即包含Root逻辑的Lua脚本;提权文件为.so文件或可执行文件,用于对目标终端13进行Root。其中,第二脚本包括其所在方案可Root终端的特征信息,如:系统版本号、CPU型号、内核版本号和/或机型号。
[0071]在其他实施例中,当客户端12中Root应用程序启动,且该应用程序与目标终端13建立通信时,若用户在应用程序界面触发提权操作,应用程序可获取目标终端13的特征信息,并向服务器端11发送包括目标终端13特征信息的提权请求,服务器端11根据目标终端13特征信息查找相应的提权方案,并将方案返回至客户端12,同时,还将第一脚本返回至客户端12。
[0072]S22,第一脚本调用方案中的第二脚本。
[0073]列表中各方案的第二脚本均具有相同的用于第一脚本调用的接口,该接口为一函数(solut1n root)。在Root过程中,第一脚本与一方案中的第二脚本整合,即第一脚本调用第二脚本中的solut1n root函数,以执行第二脚本的功能。
[0074]S23,第二脚本将方案中的提权文件推送至与本地维持通信链路的目标终端,且调用提权文件以使目标终端获取系统最高权限。
[0075]第二脚本中的solut1n root函数被调用后,第二脚本利用EAEC函数将其所在方案中的提权文件推送至目标终端13,具体为,由于第二脚本具有控制提权文件的逻辑,因此通过第二脚本调用EAEC函数,利用该函数推送提权文件至目标终端13。提权文件可以为.so文件,还可为可执行文件。若推送的是可执行文件,将可执行文件推送至目录data/local/tmp/,在该目录下执行。
[0076]当.so文件推送至目标终端13后,第二脚本发出执行命令,该命令调用JNI,再通过JNI调用.so文件,使.so文件运行。
[0077]当可执行文件推送至目标终端13后,第二脚本发出执行命令,该命令调用adb (Android Debug Bridge,安卓调试桥),利用adb使可执行文件运行。客户端12为与目标终端13通信,在客户端12中配置有相应的目标终端13驱动程序和adb等相关程序。
[0078]在其他实施例中,在没有提权文件的情况下,第二脚本可直接发出Root目标终端13所需的命令,通过客户端12与目标终端13交互,实现目标终端13的提权。
[0079]在提权文件执行后,会返回一个执行值至第一脚本,第一脚本利用该执行值判断是否提权成功。若提权成功,使应用程序显示“Root成功”的界面,提权操作结束;若提权失败,第一脚本继续调用列表中其他方案的第二脚本,执行其他方案,当列表中所有方案执行结束后,若仍然无法获得Root权限,则第一脚本使应用程序跳转至“Root失败”界面。
[0080]其中,第一脚本与列表中方案--整合,直至Root成功或失败,具体为,第一脚本可按照各方案的顺序进行整合,若第一个方案执行失败,则第一脚本调用第二个方案的第二脚本,以此类推,直至Root成功或失败。
[0081]其中,当某一方案执行成功后,应用程序会将该结果反馈至服务器端11,由服务器端11进行记录,记录的字段有:方案、成功次数、机型号。通过记录有助于推送方案时,对方案进行排序,同时有助于方案的改进。
[0082]其中,提权文件执行后,返回的执行值为一数值,当其大于等于第一脚本预设的数值,说明Root成功,当其小于预设的数值,说明Root失败。在其他实施例中,执行值还可以为O或1,0代表失败,I代表成功;执行值还可为true或false。
[0083]在本实施例中,第二脚本在推送提权文件前,还需进行判断目标终端13的特征信息与其包括的特征信息是否一致,原因为:当仅以目标终端13的系统版本号、机型号推送方案时,推送的方案中可能会存在针对CPU型号的提权方案,因此,在第二脚本推送提权文件前,需要判断目标终端13的CPU型号,当目标终端13的CPU型号不是第二脚本里写入的CPU型号时,第二脚本停止执行该方案。目标终端13的CPU若是山寨的,同样停止第二脚本的运行。
[0084]以上所述,可利用第一脚本和第二脚本进行提权操作,当提权方案需要修改时,只需修改第二脚本即可,灵活方便。第二脚本的修改如:方案可对其他的系统版本进行提权,将其他的系统版本号加至第二脚本中;方案可对其他的机型号进行提权,将其他的机型号加至第二脚本中。当开发出新的方案,在其实现方式发生变化时,由于第二脚本与提权方案分离,仍可由客户端12的应用程序运行,避免客户端12应用程序的更新,提高Root效率。
[0085]本实施例方法可实现永久Root或临时Root,永久Root权限情况下,应用程序一经Root授权,以后可不必再进行Root提权;而临时Root权限情况下,权限作用的生命周期只是操作系统的一次从开机到关机的过程,下次开机依然需要进行Root。
[0086]无论采用何种Root方式,提权的基本原理均是通过向系统植入用于接收权限请求的SU,再结合SuperUser.apk应用程序实现人机交互。Root提权操作的过程具体为:把su文件放到/system/bin/中,把Superuser, apk放到system/app下面,前者用于监听用户的权限请求并与后者通信,后者主要是在与前者通信的基础上实现人机交互,从而允许用户做出相关指示。理论上,如果su可以实现默认通过所有权限请求,则SuperUser.apk可以舍弃。此外还需要设置/system/bin/su可以让任意用户可运行,使其具有set uid和set gid的权限,具体可通过在android机器上运行命令:adb shell chmod 4755/system/bin/su 实现。
[0087]对于Root方案,应理解为包括:与破解相关的代码文件及其配置参数,以“su”、“SuperUser.apk”命名或实现的文件。
[0088]本实施例方法可应用于电脑端360 —键Root,具体应用过程为,首先将手机与电脑连接,电脑安装有适用于手机的驱动,点击“一键Root”按钮,通过上述流程实现手机的Root ο
[0089]本实施例的方法构思还可应用于刷机过程,即重装操作系统。
[0090]本实施例中,第一脚本为提权过程中的通用逻辑,第二脚本为针对单个方案的具体逻辑,因此,还可将该分离构思运用于目标终端13,目标终端13直接与服务器端11交互,进行提权。即提权应用程序安装于目标终端13,提权文件不必进行推送,其他与本实施例流程相同。利用该方式,同样可避免应用程序的更新。
[0091]请参阅图3,图3为本发明获取系统最高权限的方法另一实施例的流程示意图,如图3所示,包括以下步骤:
[0092]S31,通过远程通信端口接收获取第一脚本的提权请求。
[0093]S32,根据提权请求返回第一脚本。
[0094]S33,接收第一脚本发送的包含需提权目标终端的特征信息的提权方案获取请求。
[0095]S34,根据目标终端的特征信息,查找适用于目标终端的用于提权的方案,并返回方案。
[0096]结合图1,本实施例的方法主要由服务器端11实施。本实施例方法与图2所示的方法配合,即客户端12与服务器端11交互,客户端12从服务器端11获取第一脚本和提权方案。
[0097]服务器端11根据目标终端13的特征信息,查找适用于目标终端13的提权方案,查找结果为0、1个或多个。其中,目标终端13的特征信息包括系统版本号、CPU型号、内核版本号和/或机型号,优先利用所有信息以精确查找相应的提权方案。
[0098]通过服务器端11推送第一脚本和提权方案,当提权方案需要变化时,可只在服务器端11修改,避免客户端12应用程序的更新。
[0099]请参阅图4,图4为本发明获取系统最高权限的方法再一实施例的流程示意图,如图4所示,包括以下步骤:
[0100]S41,服务器端通过远程通信端口接收客户端发送的获取第一脚本的提权请求。
[0101]S42,根据提权请求返回第一脚本。
[0102]S43,客户端通过远程通信端口获取第一脚本。
[0103]S44,接收第一脚本发送的包含需提权目标终端的特征信息的提权方案获取请求。
[0104]S45,根据目标终端的特征信息,查找适用于目标终端的用于提权的方案,并返回方案。
[0105]S46,客户端获取用于提权的方案。
[0106]S47,第一脚本调用方案中的第二脚本。
[0107]S48,第二脚本将方案中的提权文件推送至与本地维持通信链路的目标终端,且调用提权文件以使目标终端获取系统最高权限。
[0108]本实施例方法为本发明整个系统的提权流程,在图2和图3所示实施例中均有详细的阐述,在此不再赘述。
[0109]请参阅图5,图5为本发明获取系统最高权限的装置一实施例的结构示意图,如图5所示,包括:获取模块51、调用模块52、提权模块53、第一接收模块54、第一返回模块55、第二接收模块56及第二返回模块57。
[0110]上述各模块的功能如下:
[0111]获取模块51用于通过远程通信端口获取第一脚本和至少一个用于提权的方案。调用模块52用于调用方案中的第二脚本。提权模块53用于将方案中的提权文件推送至与本地维持通信链路的目标终端,且调用提权文件以使目标终端获取系统最高权限。
[0112]第一接收模块54用于通过远程通信端口接收获取第一脚本的提权请求。第一返回模块55用于根据提权请求返回第一脚本。第二接收模块56用于接收第一脚本发送的包含需提权目标终端的特征信息的提权方案获取请求。第二返回模块57用于根据目标终端的特征信息,查找适用于目标终端的用于提权的方案,并返回方案。
[0113]其中,结合图1,获取模块51、调用模块52及提权模块53位于客户端12,第一接收模块54、第一返回模块55、第二接收模块56及第二返回模块57位于服务器端11。
[0114]客户端12与服务器端11、目标终端13交互,以实现对目标终端的提权,下面对提权过程进行详细阐述。
[0115]客户端12中安装有提权应用程序,当客户端12与目标终端13连接,且应用程序启动提权操作时,获取模块51发出获取第一脚本的提权请求,第一接收模块54接收该提权请求后,第一返回模块55根据提权请求返回第一脚本。获取模块51获取第一脚本后,对第一脚本进行解析,解析后的第一脚本获取目标终端13的特征信息。第二接收模块56接收第一脚本发送的包含目标终端13特征信息的提权方案获取请求,第二返回模块57根据目标终端13的特征信息,查找适用于目标终端13的用于提权的方案,并返回方案。获取模块51获取返回的方案,方案包括第二脚本和提权文件。调用模块52调用方案中的第二脚本,即第一脚本调用方案中的第二脚本,本实施例中,调用模块52即第一脚本。提权模块53将方案中的提权文件推送至目标终端13,且调用提权文件以使目标终端13获取系统最高权限,本实施例中,提权模块53即第二脚本。具体为,第一脚本调用第二脚本后,使第二脚本运行,第二脚本再进行提权文件推送的操作,并控制提权文件的执行,以使目标终端13获取Root权限。提权文件执行后,会返回Root结果,调用模块52获取提权文件返回的Root结果,判断Root结果是否为提取成功,若提取失败,调用列表中其他方案的第二脚本,直至提权成功或所有的方案提权失败。
[0116]其中,服务器端11查找的方案的数量为至少一个,各方案以列表的形式返回,方案为针对系统版本、CPU型号、内核版本或机型的提权方案,列表中的各方案均用于Root目标终端13。
[0117]其中,第一脚本和第二脚本均为包含Root逻辑的Lua脚本,第一脚本为Root过程的通用逻辑,第二脚本为Root过程中单个方案的具体逻辑。提权文件为.so文件或可执行文件。
[0118]其中,调用第二脚本时,调用第二脚本的接口函数,列表中各方案中第二脚本的接口函数相同。第二脚本包括其所在方案可Root终端的特征信息。
[0119]其中,第二脚本包括的特征信息与目标终端13的特征信息均包括:系统版本号、CPU型号、内核版本号和/或机型号。
[0120]通过上述装置,能够在不更新提权应用程序的情况下,使其能够继续执行修改后的提权方案或新产生的提权方案,提供Root效率。
[0121]以上所述仅是本发明的部分实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种获取系统最高权限的方法,其特征在于,包括以下步骤: 通过远程通信端口获取第一脚本和至少一个用于提权的方案; 所述第一脚本调用所述方案中的第二脚本; 所述第二脚本将方案中的提权文件推送至与本地维持通信链路的目标终端,且调用所述提权文件以使目标终端获取系统最高权限。
2.根据权利要求1所述的获取系统最高权限的方法,其特征在于,所述第一脚本和第二脚本均为包含Root逻辑的Lua脚本。
3.根据权利要求2所述的获取系统最高权限的方法,其特征在于,所述提权文件为.so文件或可执行文件。
4.根据权利要求3所述的获取系统最高权限的方法,其特征在于,所述至少一个用于提权的方案以列表的形成存在,各方案均用于Root所述目标终端; 所述方案为针对系统版本、CPU型号、内核版本或机型的提权方案。
5.根据权利要求4所述的获取系统最高权限的方法,其特征在于,所述第一脚本调用所述方案中的第二脚本的步骤具体包括: 所述第一脚本调用第二脚本的接口函数,其中,列表中各方案中第二脚本的接口函数相同。
6.根据权利要求5所述的获取系统最高权限的方法,其特征在于,调用所述提权文件以使目标终端获取系统最高权限的步骤之后,包括: 所述第一脚本获取所述提权文件返回的Root结果; 判断所述Root结果是否为提取成功; 若提取失败,所述第一脚本调用列表中其他方案的第二脚本。
7.根据权利要求6所述的获取系统最高权限的方法,其特征在于,通过远程通信端口获取第一脚本和至少一个用于提权的方案的步骤具体包括: 根据提权指令,通过远程通信端口发送获取第一脚本的请求,获取响应于所述请求返回的第一脚本; 所述第一脚本获取与本地维持通信链路的目标终端的特征信息,并通过远程通信端口发送包含该特征信息的提权方案获取请求,获取响应于该请求返回的至少一个用于提权的方案。
8.一种获取系统最高权限的方法,其特征在于,包括以下步骤: 通过远程通信端口接收获取第一脚本的提权请求; 根据所述提权请求返回第一脚本; 接收所述第一脚本发送的包含需提权目标终端的特征信息的提权方案获取请求; 根据所述目标终端的特征信息,查找适用于目标终端的用于提权的方案,并返回所述方案。
9.一种获取系统最高权限的装置,其特征在于,包括: 获取模块,用于通过远程通信端口获取第一脚本和至少一个用于提权的方案; 调用模块,用于调用所述方案中的第二脚本; 提权模块,用于将方案中的提权文件推送至与本地维持通信链路的目标终端,且调用所述提权文件以使目标终端获取系统最高权限。
10.一种获取系统最高权限的装置,其特征在于,包括: 第一接收模块,用于通过远程通信端口接收获取第一脚本的提权请求; 第一返回模块,用于根据所述提权请求返回第一脚本; 第二接收模块,用于接收所述第一脚本发送的包含需提权目标终端的特征信息的提权方案获取请求; 第二返回模块,用于根据所述目标终端的特征信息,查找适用于目标终端的用于提权的方案,并返回所述方案。
【文档编号】G06F9/44GK104503760SQ201410838326
【公开日】2015年4月8日 申请日期:2014年12月29日 优先权日:2014年12月29日
【发明者】刘云鹏, 胡超博 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1