买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】系统隐藏方法的调用方法、装置和计算设备_北京奇虎科技有限公司_201810372669.1 

申请/专利权人:北京奇虎科技有限公司

申请日:2018-04-24

公开(公告)日:2021-11-23

公开(公告)号:CN108647061B

主分类号:G06F9/448(20180101)

分类号:G06F9/448(20180101);G06F9/445(20180101)

优先权:

专利状态码:有效-授权

法律状态:2021.11.23#授权;2018.11.06#实质审查的生效;2018.10.12#公开

摘要:本发明提供一种系统隐藏方法的调用方法、装置和计算设备,涉及计算机软件开发技术领域,该方法包括:将目标系统隐藏方法对应的类的类加载器设置为启动类加载器;基于设置后的类,调用所述目标系统隐藏方法。本发明通过设置类加载器的类型,能够让系统将开发人员对目标系统隐藏方法的调用识别为是系统允许的,使得开发人员可以方便地使用各种隐藏API的功能,以实现更多的应用效果。且上述系统隐藏方法的调用方法适配性与稳定性较高,能满足绝大多数场景的应用。

主权项:1.一种系统隐藏方法的调用方法,其特征在于,包括如下步骤:将目标系统隐藏方法对应的类的类加载器设置为启动类加载器;基于设置后的类,调用所述目标系统隐藏方法;所述将目标系统隐藏方法对应的类的类加载器设置为启动类加载器,包括:将所述目标系统隐藏方法对应的类的参数类型进行转换处理;根据转换处理的参数类型,将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。

全文数据:系统隐藏方法的调用方法、装置和计算设备技术领域[0001]本发明涉及计算机软件开发技术领域,具体而言,本发明涉及一种系统隐藏方法的调用方法、装置和计算设备。背景技术[0002]AndroidAPIApplicationProgrammingInterface,应用程序编程接口)是官方提供给Android开发人员的预先定义的方法接口,目的是提供开发人员得以访问一些函数方法的能力。调用AndroidAPI,无需访问源码,也无需理解内部工作机制的细节,就可以实现许多功能。[0003]事实上,Android为开发人员提供的API中,包括一些隐藏的API,例如加上Ohide标记的类、方法等,在技术上它们并不是系统提供的软件开发工具包的一部分,使得开发人员无法正常访问隐藏的API,尝试在Android系统上使用这些API的应用程序也将无法正常工作。[0004]不过,有时为了实现Android应用程序某些特殊的功能或者效果,隐藏的API往往能发挥意想不到的作用。随着Andr〇id系统的广泛应用,用户对Android平台的应用程序在功能上的需求也日益旺盛。这种情况下,开发人员会希望使用这些隐藏的方法、功能来实现一些更高级的效果和功能。发明内容[0005]本发明的目的旨在至少能解决上述的技术缺陷之一,特别是无法正常调用系统隐藏方法的技术缺陷。[0006]本发明提供了一种系统隐藏方法的调用方法,包括如下步骤:[0007]将目标系统隐藏方法对应的类的类加载器设置为启动类加载器;[0008]基于设置后的类,调用所述目标系统隐藏方法。[0009]可选地,所述将目标系统隐藏方法对应的类的类加载器设置为启动类加载器,包括:[0010]将所述目标系统隐藏方法对应的类的参数类型进行转换处理;[0011]根据转换处理的参数类型,将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0012]可选地,所述将目标系统隐藏方法对应的类的类加载器设置为启动类加载器,包括:[0013]通过Toclass函数将所述目标系统隐藏方法对应的类的参数类型进行转换处理;[0014]根据转换处理的参数类型,通过SetClassLoader函数将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0015]可选地,所述将目标系统隐藏方法对应的类的类加载器设置为启动类加载器之前,还包括:[0016]根据Toclass函数的导出符号确定Toclass函数在进程中的地址;[0017]根据SetClassLoader函数的导出符号确定SetClassLoader函数在进程中的地址;[0018]所述将目标系统隐藏方法对应的类的类加载器设置为启动类加载器,包括:[0019]根据确定出的Toclass函数在进程中的地址,调用Toclass函数将所述目标系统隐藏方法对应的类的参数类型进行转换处理;[0020]根据确定出的SetClassLoader函数在进程中的地址,调用SetClassLoader函数将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0021]可选地,所述目标系统隐藏方法对应的类包括用于反射处理的辅助工具类;[0022]所述调用所述目标系统隐藏方法,包括:[0023]通过所述辅助工具类获取所述目标系统隐藏方法,并进行调用。[0024]可选地,所述调用所述目标系统隐藏方法,包括以下任一情形:[0025]通过所述辅助工具类,基于反射方式获取所述目标系统隐藏方法;[0026]通过所述辅助工具类,基于本地交互方式获取所述目标系统隐藏方法。[0027]本发明还提供了一种系统隐藏方法的调用装置,包括:[0028]设置模块,用于将目标系统隐藏方法对应的类的类加载器设置为启动类加载器;[0029]调用模块,用于基于设置后的类,调用所述目标系统隐藏方法。[0030]可选地,所述设置模块具体用于将所述目标系统隐藏方法对应的类的参数类型进行转换处理;以及,[0031]所述设置模块具体用于根据转换处理的参数类型,将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0032]可选地,所述设置模块具体用于通过Toclass函数将所述目标系统隐藏方法对应的类的参数类型进行转换处理;以及,[0033]所述设置模块具体用于根据转换处理的参数类型,通过SetClassLoader函数将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0034]可选地,所述设置模块还具体用于根据Toclass函数的导出符号确定Toclass函数在进程中的地址;以及,[0035]所述设置模块还具体用于根据SetClassLoader函数的导出符号确定SetClassLoader函数在进程中的地址;以及,[0036]所述设置模块具体用于根据确定出的Toclass函数在进程中的地址,调用Toclass函数将所述目标系统隐藏方法对应的类的参数类型进行转换处理;以及,[0037]所述设置模块具体用于根据确定出的SetClassLoader函数在进程中的地址,调用SetClassLoader函数将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0038]可选地,所述目标系统隐藏方法对应的类包括用于反射处理的辅助工具类;[0039]所述调用模块具体用于通过所述辅助工具类获取所述目标系统隐藏方法,并进行调用。[0040]可选地,所述调用模块具体用于以下任一情形:[0041]通过所述辅助工具类,基于反射方式获取所述目标系统隐藏方法;[0042]通过所述辅助工具类,基于本地交互方式获取所述目标系统隐藏方法。[0043]本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述的方法。[0044]本发明还提供了一种计算设备,包括:[0045]处理器;以及[0046]存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,使得所述处理器执行上述任一项所述的方法。[0047]本发明提供的系统隐藏方法的调用方法、装置和计算设备,通过设置类加载器的类型,能够让系统将开发人员对目标系统隐藏方法的调用识别为是系统允许的,使得开发人员可以方便地使用各种隐藏API的功能,以实现更多的应用效果。且上述系统隐藏方法的调用方法适配性与稳定性较高,能满足绝大多数场景的应用。[0048]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明[0049]本发明上述的和或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:[0050]图1为本发明实施例提供的系统隐藏方法的调用方法的流程示意图;[0051]图2为本发明实施例提供的系统隐藏方法的调用装置的框架示意图。具体实施方式[0052]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。[0053]本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和或它们的组。[0054]本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。[0055]下面结合附图具体介绍本发明实施例的技术方案。[0056]本发明实施例适用于安卓系统中调用系统隐藏API,尤其适用于针对AndroidP系统,调用系统中的隐藏API。其中,AndroidP系统为安卓系统的开发者预览版Preview1。[0057]本发明的发明人结合AndroidP系统的源码进行分析发现,AndroidP系统的代码实现中,会在所有通过反射方式和JNIJavaNativeInterface,Java本地接口)方式调用系统方法的地方判断是否是用户代码调用了系统的隐藏API,如果判断结果返回true,那么说明是用户代码调用了系统的隐藏API,此时AndroidP系统会通过log日志发出警告,并极有可能让用户代码获取到的系统方法函数为空。[0058]具体地,AndroidP系统要实现上述限制,至少要进行以下两种区分:[0059]1必须区分一个系统隐藏方法Method或Field对用户代码而言是隐藏的还是公开的,只有用户代码在对隐藏的Method或Field进行调用时才需要进行限制。[0060]2必须区分系统隐藏方法Method或Field是用户代码调用的还是系统代码例如Activity类调用的,只有用户代码在对隐藏的Method或Field进行调用时才需要进行限制。[0061]可以理解,只有上述两种区分都满足限制条件时,AndroidP系统才会采取相应的限制措施。[0062]其中,针对第二种区分方式,本发明的发明人了解到,AndroidP系统是通过回溯调用栈找到调用的隐藏API所在的类Class,判断这个Class的类加载器ClassLoader是否为启动类加载器BootStrapClassLoader,例如借助函数指针fn_caller_in_boot来判断。如果判断结果为是,那么就认为调用该隐藏API的是系统代码,否则就认为用户代码。[0063]基于此,本发明实施例提供了一种系统隐藏方法的调用方法,通过混淆上述第二种区分方式,让系统将用户代码的调用识别为系统代码的调用,以成功绕过AndroidP系统对此的限制。如图1所示,该方法包括如下步骤:[0064]步骤110:将目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0065]即将目标系统隐藏方法对应的类的ClassLoader改为BootStrapClassLoader。[0066]本发明的发明人发现,SetClassLoader函数可以为任一个类指定其ClassLoader。该函数的具体声明定义可查看artruntimemirrorclass.h文件。通过IDAInteractiveDisassembler,交互式反汇编工具可以确认该函数位于导出符号表中。这就表示该函数在编译时具有定义,并且可以提供编译使用的符号及其地址。[0067]然而,能够使用SetClassLoader函数为一个类指定ClassLoader的前提是,进行处理的其中一个参数的参数类型为〇13」?1:1'〈1]1;[1'1'01':::1388,而通常情况下开发人员所使用的类对应的该参数的参数类型为jclass。[0068]因此,本发明实施例中,在使用SetClassLoader函数为一个类指定ClassLoader之前,先要将目标系统隐藏方法对应的类的参数类型进行转换处理。[0069]具体而言,本发明的发明人发现,ToClass函数可以将一个类的参数类型从jclass转化为01^?1:1'〈111;[1'1'01'::]188。该函数的具体声明定义可查看1'1:1'11111:;[1116\¥611_1010¥11_classes,h文件,简单描述如下:[0070]static0bjPtr〈mirror::ClassToClassjclassglobal_jclass[0071]通过IDAInteractiveDisassembler,交互式反汇编工具)可以确认此函数也位于导出符号表中[0072]因此,本发明实施例中,通过Toclass函数将目标系统隐藏方法对应的类的参数类型进行转换处理。[0073]随后,就可以根据转换处理的参数类型,将目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0074]具体结合上文的内容可知,即根据转换处理的参数类型,通过SetClassLoader函数将目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0075]实际代码实现中,需要根据Toclass函数的导出符号确定Toclass函数在进程中的地址;以及,根据SetClassLoader函数的导出符号确定SetClassLoader函数在进程中的地址,以便成功使用这两个导出函数的功能。[0076]作为示例地,可以通过dlsym函数,根据动态链接库操作句柄与符号,返回导出符号对应的地址。[0077]进而在本步骤中,可以根据确定出的Toclass函数在进程中的地址,调用Toclass函数将目标系统隐藏方法对应的类的参数类型进行转换处理;以及,根据确定出的SetClassLoader函数在进程中的地址,调用SetClassLoader函数将目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0078]步骤120:基于设置后的类,调用目标系统隐藏方法。[0079]本发明实施例中,目标系统隐藏方法对应的类可以是目标系统隐藏方法所属的类,当需要使用某个系统隐藏API时,确定该系统隐藏API所属的类,并采用本发明实施例提供的方法进行处理,即可正常调用该系统隐藏API。[0080]或者,可以将开发人员所编写的应用程序中的所有类采用本发明实施例提供的方法进行处理,即可正常调用全部系统隐藏API。[0081]考虑到采用反射方式或JNI方式调用系统隐藏API时,若将有其中任一个用于反射处理的辅助工具类采用本发明实施例提供的方法进行处理,也可以实现正常调用全部系统隐藏API。[0082]因此,本发明实施例中,目标系统隐藏方法对应的类包括用于反射处理的辅助工具类。[0083]这种情况下,本步骤中可以通过该辅助工具类获取目标系统隐藏方法,并进行调用。[0084]为了更清楚地描述本发明实施例,特举例具体实现代码如下:[0086]其中,my_dlsym为自定义的函数,与上述dlsym函数的作用相同,即确定Toclass函数和SetClassLoader函数在进程中的地址。[0087]上述示例中,通过调用定义的makeHiddenApiAccessable函数,就可以将预设的comtesthidefixRefIectionHelper类的类加载器设置为启动类加载器。[0088]实际应用时,就可以将RefIectionHelper当做用于反射处理的辅助工具类,将所有获取目标系统隐藏方法Method或Field的地方均使用RefIectionHeIper进行处理,系统就不会再发出log警告,可以成功调用系统隐藏API。[0089]具体地,包括以下任一情形:[0090]通过该辅助工具类,基于反射方式获取目标系统隐藏方法;[0091]通过该辅助工具类,基于本地交互方式JNI获取目标系统隐藏方法。[0092]也就是说,本发明实施例中,通过反射方式或者JNI方式调用系统隐藏API,都需要利用ReflectionHelper辅助工具类来获取目标Method或Field。[0093]需要说明的是,本发明实施例中,RefIectionHelper类只能调用系统类,以防CIassLoader的全盘委托机制出现问题。[0094]通过以上方法,本发明实施例能够实现调用任何权限的隐藏API,例如pubIic公共访问权限)、default包访问权限)、protected子类访问权限)、private类访问权限)等。[0095]由上述介绍可知,本发明实施例提供的系统隐藏方法的调用方法,通过设置类加载器的类型,能够让系统将开发人员对目标系统隐藏方法的调用识别为是系统允许的,使得开发人员可以方便地使用各种隐藏API的功能,以实现更多的应用效果。[0096]并且,上述系统隐藏方法的调用方法仅需要寻找两个导出函数,适配性较高,没有使用钩子函数Η00Κ,稳定性较高,能满足绝大多数场景的应用。[0097]本发明实施例还提供了一种系统隐藏方法的调用装置,如图2所示,包括:[0098]设置模块210,用于将目标系统隐藏方法对应的类的类加载器设置为启动类加载器;[0099]调用模块220,用于基于设置后的类,调用目标系统隐藏方法。[0100]可选地,设置模块210具体用于将目标系统隐藏方法对应的类的参数类型进行转换处理;以及,[0101]设置模块210具体用于根据转换处理的参数类型,将目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0102]可选地,设置模块210具体用于通过Toclass函数将目标系统隐藏方法对应的类的参数类型进行转换处理;以及,[0103]设置模块210具体用于根据转换处理的参数类型,通过SetciassLoader函数将目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0104]可选地,设置模块210还具体用于根据Toclass函数的导出符号确定Toclass函数在进程中的地址;以及,[0105]设置模块210还具体用于根据SetClassLoader函数的导出符号确定SetClassLoader函数在进程中的地址;以及,[0106]设置模块210具体用于根据确定出的Toclass函数在进程中的地址,调用Toclass函数将目标系统隐藏方法对应的类的参数类型进行转换处理;以及,[0107]设置模块210具体用于根据确定出的SetClassLoader函数在进程中的地址,调用SetClassLoader函数将目标系统隐藏方法对应的类的类加载器设置为启动类加载器。[0108]可选地,目标系统隐藏方法对应的类包括用于反射处理的辅助工具类;[0109]调用模块220具体用于通过该辅助工具类获取目标系统隐藏方法,并进行调用。[0110]可选地,调用模块220具体用于以下任一情形:[0111]通过该辅助工具类,基于反射方式获取目标系统隐藏方法;[0112]通过该辅助工具类,基于本地交互方式获取目标系统隐藏方法。[0113]本发明实施例所提供的系统隐藏方法的调用装置可以为设备上的特定硬件或者加载于设备上的软件或固件等。本发明实施例所提供的系统隐藏方法的调用装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容,在此不再赘述。[0114]本发明实施例所提供的系统隐藏方法的调用装置,通过设置类加载器的类型,能够让系统将开发人员对目标系统隐藏方法的调用识别为是系统允许的,使得开发人员可以方便地使用各种隐藏API的功能,以实现更多的应用效果。[0115]并且,上述系统隐藏方法的调用方法仅需要寻找两个导出函数,适配性较高,没有使用钩子函数Η00Κ,稳定性较高,能满足绝大多数场景的应用。[0116]本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述的方法。[0117]本发明实施例还提供了一种计算设备,包括:[0118]处理器;以及存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,使得所述处理器执行上述任一项所述的方法。[0119]本技术领域技术人员可以理解,这里所使用的“计算设备”可以是便携式、可运输、放置在交通工具航空、海运和或陆地)中的,或者适合于和或配置为在本地运行,和或以分布形式,运行在地球和或空间的任何其他位置运行。[0120]本技术领域技术人员可以理解,这里所使用的“计算设备”,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算CloudComputing的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。[0121]其中,存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。[0122]处理器是控制中心,利用各种接口和线路连接整个计算设备的各个部分,通过运行或执行存储在存储器内的软件程序和或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据,从而对计算设备进行整体监控。可选的,处理器可包括一个或多个处理单元;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器中。[0123]这里所使用的“计算设备”还可以包括更多部分等,具体技术细节未揭示的,请参照本发明实施例方法部分,在此不再赘述[0124]应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。[0125]以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

权利要求:1.一种系统隐藏方法的调用方法,其特征在于,包括如下步骤:将目标系统隐藏方法对应的类的类加载器设置为启动类加载器;基于设置后的类,调用所述目标系统隐藏方法。2.根据权利要求1所述的系统隐藏方法的调用方法,其特征在于,所述将目标系统隐藏方法对应的类的类加载器设置为启动类加载器,包括:将所述目标系统隐藏方法对应的类的参数类型进行转换处理;根据转换处理的参数类型,将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。3.根据权利要求2所述的系统隐藏方法的调用方法,其特征在于,所述将目标系统隐藏方法对应的类的类加载器设置为启动类加载器,包括:通过Toclass函数将所述目标系统隐藏方法对应的类的参数类型进行转换处理;根据转换处理的参数类型,通过SetClassLoader函数将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。4.根据权利要求3所述的系统隐藏方法的调用方法,其特征在于,所述将目标系统隐藏方法对应的类的类加载器设置为启动类加载器之前,还包括:根据Toclass函数的导出符号确定Toclass函数在进程中的地址;根据SetClassLoader函数的导出符号确定SetClassLoader函数在进程中的地址;所述将目标系统隐藏方法对应的类的类加载器设置为启动类加载器,包括:根据确定出的Toclass函数在进程中的地址,调用Toclass函数将所述目标系统隐藏方法对应的类的参数类型进行转换处理;根据确定出的SetClassLoader函数在进程中的地址,调用SetClassLoader函数将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。5.根据权利要求1所述的系统隐藏方法的调用方法,其特征在于,所述目标系统隐藏方法对应的类包括用于反射处理的辅助工具类;所述调用所述目标系统隐藏方法,包括:通过所述辅助工具类获取所述目标系统隐藏方法,并进行调用。6.根据权利要求5所述的系统隐藏方法的调用方法,其特征在于,所述调用所述目标系统隐藏方法,包括以下任一情形:通过所述辅助工具类,基于反射方式获取所述目标系统隐藏方法;通过所述辅助工具类,基于本地交互方式获取所述目标系统隐藏方法。7.—种系统隐藏方法的调用装置,其特征在于,包括:设置模块,用于将目标系统隐藏方法对应的类的类加载器设置为启动类加载器;调用模块,用于基于设置后的类,调用所述目标系统隐藏方法。8.根据权利要求7所述的系统隐藏方法的调用装置,其特征在于,所述设置模块具体用于将所述目标系统隐藏方法对应的类的参数类型进行转换处理;以及,所述设置模块具体用于根据转换处理的参数类型,将所述目标系统隐藏方法对应的类的类加载器设置为启动类加载器。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6任一项所述的方法。10.—种计算设备,其特征在于,包括:处理器;以及存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,使得所述处理器执行权利要求1-6任一项所述的方法。

百度查询: 北京奇虎科技有限公司 系统隐藏方法的调用方法、装置和计算设备

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。