终端模拟器系统的反检测方法和反检测装置制造方法

文档序号:6622154阅读:2159来源:国知局
终端模拟器系统的反检测方法和反检测装置制造方法
【专利摘要】本发明提供了一种终端模拟器系统的反检测方法和反检测装置。其中终端模拟器系统的反检测方法包括:获取终端模拟器中描述模拟终端信息的多项系统参数及其参数值;将各项系统参数的参数值分别与预置的参数库中保存的默认参数值进行匹配,参数库中保存有已被识别为模拟器信息的多项默认参数值;将匹配出的系统参数的参数值修改为不同于默认参数值且符合终端实际运行环境中系统参数赋值规则的数值。利用该方法可以修改将当前终端模拟器的可被识别为模拟器信息的系统参数值,使得恶意应用程序的检测措施失效,从而躲过终端模拟器中运行的应用软件的探测,以充分对应用软件进行检测以分析运行特征。
【专利说明】终端模拟器系统的反检测方法和反检测装置

【技术领域】
[0001]本发明涉及互联网安全【技术领域】,特别是涉及一种终端模拟器系统的反检测方法和反检测装置。

【背景技术】
[0002]手机等智能终端的广泛普及,给人们的日常生活带来了极大的便利,随之而来的是大量的恶意应用的产生,这些恶意应用可以伪装成普通第三方应用,窃取用户的信息,盗取账号,给用户财产带来了很大的安全隐患。
[0003]为了消除恶意应用程序的影响,需要首先对恶意应用程序进行深入分析,以获知其特征,例如通过对恶意应用程序的文件信息,恶意程序运行时产生的文件或数据,以及恶意程序对操作系统权限的调用等进行分析获取其特征。
[0004]然而使用真实的终端分析恶意应用程序是不现实的,因为在很多情况下,分析恶意应用程序的特征是带有破坏性的,在恶意程序数量巨大且高速增长的情况下,使用实际终端测试是难以实现的,此时,模拟器的虚拟的运行环境成为了进行恶意程序实验性分析更好的选择。
[0005]为减轻浪费真实终端的资源,因此当前分析并测试终端恶意程序,以完全展现恶意应用程序的特征的工作都是在终端模拟器中进行的,然而现有技术中相应出现了恶意应用程序检测终端模拟器的技术,例如恶意应用软件可以检测运行环境是否为模拟器,并在确认为模拟器后,停止执行。从而终端模拟器无法确认恶意环境,从而使分析工作难度增加。


【发明内容】

[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的终端模拟器系统的反检测方法和反检测装置。
[0007]本发明一个进一步的目的是要使得终端模拟器系统更加符合真实硬件系统的使用环境。
[0008]依据本发明的一个方面,提供了一种终端模拟器系统的反检测方法。该终端模拟器系统的反检测方法包括:获取终端模拟器中描述模拟终端信息的多项系统参数及其参数值;将各项系统参数的参数值分别与预置的参数库中保存的默认参数值进行匹配,参数库中保存有已被识别为模拟器信息的多项默认参数值;将匹配出的系统参数的参数值修改为不同于默认参数值且符合终端实际运行环境中系统参数赋值规则的数值。
[0009]可选地,将匹配出的系统参数的参数值修改为不同于默认参数值且符合终端实际运行环境中系统参数赋值规则的数值包括:确定匹配出的系统参数的对应的系统参数类型,并按照与系统参数类型对应的方式将匹配出的系统参数的参数值修改为按照系统参数赋值规则生成的不同于默认参数值的随机数值或固定数值。
[0010]可选地,确定匹配出的系统参数对应的系统参数类型包括:识别匹配出的系统参数属于以下类型中任一项:终端模拟器中模拟的通讯参数类;终端模拟器中模拟的终端硬件参数类、终端模拟器中的内核模拟参数类。
[0011]可选地,按照与系统参数类型对应的方式将匹配出的系统参数的参数值修改为按照系统参数赋值规则生成的不同于默认参数值的随机数值或固定数值包括:使用钩子系统的应用程序接口中的对应函数修改第一类系统参数,第一类系统参数属于终端模拟器中模拟的通讯参数类;修改模拟器系统的系统记录文件中对应于第二类系统参数的参数赋值字段,第二类系统参数属于终端模拟器中模拟的终端硬件参数类;修改模拟器系统进程中内核镜像的对应于第三类系统参数的属性,第三类系统参数属于终端模拟器中的内核模拟参数类。
[0012]可选地,系统参数包括:通信号码、硬件设备号、运营商代码、语音信箱号码、终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹、模拟类型,通信号码、硬件设备号、运营商代码、语音信箱号码属于终端模拟器中模拟的通讯参数类;终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹属于终端模拟器中模拟的终端硬件参数类;模拟类型属于终端模拟器中的内核模拟参数类。
[0013]可选地,终端模拟器为安卓终端模拟器,使用钩子系统的应用程序接口中的对应函数修改第一类系统参数包括:使用应用程序接口中的getLineINumber函数将默认通信号码修改符合通信号码格式的随机号码;使用应用程序接口中的getDeviceld函数将默认硬件设备号修改为符合硬件设备号格式的随机号码;使用应用程序接口中的getNetworkOperatorName函数将默认运营商代码修改为实际运行环境中使用的运营商代码;使用应用程序接口中的getVoiceMaiINumber函数将默认语音信箱号码修改为符合语音信箱号码格式的随机号码。
[0014]可选地,终端模拟器为安卓终端模拟器,修改模拟器系统的系统记录文件中对应于第二类系统参数的参数赋值字段包括:修改模拟器系统的system, img镜像包中的/system/build/prop文件对应于第二类系统参数的参数赋值字段。
[0015]可选地,终端模拟器为安卓终端模拟器,修改模拟器系统进程中内核镜像的对应于第三类系统参数的属性包括:查询得出init进程中r0.kernel, qemu对应的属性并修改为O。
[0016]可选地,根据本发明的另一个方面,还提供了一种终端模拟器系统的反检测装置。该终端模拟器系统的反检测装置包括:参数获取模块,配置为获取终端模拟器中描述模拟终端信息的多项系统参数及其参数值;参数识别模块,配置为将各项系统参数的参数值分别与预置的参数库中保存的默认参数值进行匹配,参数库中保存有已被识别为模拟器信息的多项默认参数值;参数修改模块,配置为将匹配出的系统参数的参数值修改为不同于默认参数值且符合终端实际运行环境中系统参数赋值规则的数值。
[0017]可选地,参数修改模块包括:类型确定子模块,配置为确定匹配出的系统参数对应的系统参数类型;数值修改子模块,配置为按照与系统参数类型对应的方式将匹配出的系统参数的参数值修改为按照系统参数赋值规则生成的不同于默认参数值的随机数值或固定数值。
[0018]可选地,类型确定子模块还配置为:识别匹配出的系统参数属于以下类型中任一项:终端模拟器中模拟的通讯参数类;终端模拟器中模拟的终端硬件参数类、终端模拟器中的内核模拟参数类。
[0019]可选地,数值修改子模块还配置为:使用钩子系统的应用程序接口中的对应函数修改第一类系统参数,第一类系统参数属于终端模拟器中模拟的通讯参数类;修改模拟器系统的系统记录文件中对应于第二类系统参数的参数赋值字段,第二类系统参数属于终端模拟器中模拟的终端硬件参数类;修改模拟器系统进程中内核镜像的对应于第三类系统参数的属性,第三类系统参数属于终端模拟器中的内核模拟参数类,系统参数包括:通信号码、硬件设备号、运营商代码、语音信箱号码、终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹、模拟类型,通信号码、硬件设备号、运营商代码、语音信箱号码属于终端模拟器中模拟的通讯参数类;终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹属于终端模拟器中模拟的终端硬件参数类;模拟类型属于终端模拟器中的内核模拟参数类。
[0020]可选地,终端模拟器为安卓终端模拟器,数值修改子模块还配置为以下任一种或多种模式:使用应用程序接口中的getLineINumber函数将默认通信号码修改符合通信号码格式的随机号码;使用应用程序接口中的getDeviceld函数将默认硬件设备号修改为符合硬件设备号格式的随机号码;使用应用程序接口中的getNetworkOperatorName函数将默认运营商代码修改为实际运行环境中使用的运营商代码;使用应用程序接口中的getVoiceMaiINumber函数将默认语音信箱号码修改为符合语音信箱号码格式的随机号码;修改模拟器系统的system, img镜像包中的/system/build/prop文件对应于第二类系统参数的参数赋值字段;查询得出init进程中r0.kernel, qemu对应的属性并修改为O。
[0021]本发明的终端模拟器系统的反检测方法可以预先采集模拟器的系统参数及其参数值,并修改将当前终端模拟器的可被识别为模拟器信息的系统参数值,使得恶意应用程序的检测措施失效,从而躲过终端模拟器中运行的应用软件的探测,以充分对应用软件进行检测以分析运行特征。
[0022]进一步地,本发明的终端模拟器系统的反检测方法对不同种类的系统参数采取相应的修改方法,使得终端模拟器与实际硬件终端的运行环境相符,在应用程序进行探测时,得到的结果与实际硬件终端相同,避免了应用程序故意隐藏自身特征。
[0023]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
[0024]根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

【专利附图】

【附图说明】
[0025]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0026]图1是根据本发明一个实施例的终端模拟器系统的反检测装置的示意图;以及
[0027]图2是根据本发明一个实施例的终端模拟器系统的反检测方法的示意图。

【具体实施方式】
[0028]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0029]图1是根据本发明一个实施例的终端模拟器系统的反检测装置100的示意图,该终端模拟器系统的反检测装置100可以安装于运行有终端模拟器系统的计算装置中,例如个人计算机、服务器、移动终端等。通过修改将当前终端模拟器的可被识别为模拟器信息的系统参数值,使其中运行的应用程序的检测手段失效,从而充分展现应用程序的特征,为恶意程序的特征分析提供了测试环境。如图1所示,该终端模拟器系统的反检测装置100的一般性地可包括:参数获取模块110、参数识别模块120、参数修改模块130,在本发明的一些可选实施例中,可根据终端模拟器系统的反检测装置100的功能需求和进一步优化,例如,参数修改模块130可进一步包括:类型确定子模块132和数值修改子模块134。
[0030]在终端模拟器系统的反检测装置100的以上部件中,参数获取模块110可配置为获取终端模拟器中描述模拟终端信息的多项系统参数及其参数值,模拟器可以模拟出具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统,从而提供一个应用程序的运行环境,对于操作者而言,模拟器相当于一个应用程序,而对于运行于其中的应用程序而言,相当于一台完整的硬件终端。为实现应用程序的运行环境,模拟器需要提供应用程序需要的各类服务、参数、数据等。本实施例的终端模拟器主要用于模拟智能移动终端(如智能手机)的运行环境,参数获取模块110可以读取该终端模拟器的用于描述被模拟终端信息的系统参数及其参数值。
[0031]参数识别模块120可配置为将各项系统参数的参数值分别与预置的参数库中保存的默认参数值进行匹配,参数库中保存有已被识别为模拟器信息的多项默认参数值。一般模拟器的系统参数值都是固定的,一些恶意程序可以通过对模拟器的总结,确定出一些参数值是模拟器的固定使用的,从而可以根据这些参数识别模拟器,并在确定运行于模拟器中隐藏部分特征,或者拒绝运行,导致模拟器的分析工作失败。
[0032]参数库可以预先采集模拟器的系统参数和参数值,对其进行分析,将其中可被识别为模拟器信息总结为参数库,用于后续模拟器反检测的参数匹配。具体地,参数识别模块120可以将各项系统参数的参数值分别与预置的参数库中对应的参数值进行匹配,参数库中保存有已被识别为模拟器信息的默认系统参数值;若出现匹配的情况,确认当前项的系统参数值属于可被识别为模拟器信息的参数值。
[0033]预置的参数库的数据需要对海量环境数据挖掘统计得出,经过发明人对终端模拟器的设计结构进行分析和统计,发现有以下参数可被应用程序利用,包括:通信号码、硬件设备号、运营商代码、语音信箱号码、终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹、模拟类型等。
[0034]模拟器标识被模拟终端信息的系统参数的种类不同,其存放的位置也不同,相应的修改方式也不同,针对不同类型的参数的参数值修改,需要根据其类型进行。参数修改模块130通过设置类型确定子模块132和数值修改子模块134实现不同类型的参数的参数值修改,其中,类型确定子模块132可以确定匹配出的系统参数对应的系统参数类型。数值修改子模块134为按照与系统参数类型对应的方式对匹配出的系统参数的参数值进行修改,例如可以将这些数值修改为按照系统参数赋值规则生成的不同于默认参数值的随机数值或固定数值。
[0035]终端模拟器的系统参数包括以下种类:终端模拟器中模拟的通讯参数类;终端模拟器中模拟的终端硬件参数类、终端模拟器中的内核模拟参数类。
[0036]数值修改子模块134在类型确定子模块132确定需要修改的匹配出的系统参数的种类,可以分别使用对应的方式进行修改,对于属于终端模拟器中模拟的通讯参数类的第一类系统参数,数值修改子模块134可以使用钩子系统的应用程序接口中的对应函数进行修改。API (Applicat1n Programming Interface,应用程序编程接口)HOOK 技术是一种用于改变API执行结果的技术,可以有效地更改部分内容。属于终端模拟器中模拟的通讯参数类的第一类系统参数包括:通信号码、硬件设备号、运营商代码、语音信箱号码;
[0037]对于属于终端模拟器中模拟的终端硬件参数类的第二类系统参数,数值修改子模块134可以修改模拟器系统的系统记录文件中对应于该第二类系统参数的参数赋值字段。属于终端模拟器中模拟的终端硬件参数类的第二类系统参数包括:终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹。
[0038]对于属于终端模拟器中模拟的内核模拟参数的第三类系统参数,数值修改子模块134可以修改模拟器系统进程中内核镜像的对应于第三类系统参数的属性,模拟类型属于终端模拟器中的内核模拟参数类。
[0039]利用以上模块,本实施例的终端模拟器系统的反检测装置100可以修改将当前终端模拟器的可被识别为模拟器信息的系统参数值,使得恶意应用程序的检测措施失效,从而躲过终端模拟器中运行的应用软件的探测,以充分对应用软件进行检测以分析运行特征。
[0040]本发明实施例还提供了一种终端模拟器系统的反检测方法,该终端模拟器系统的反检测方法可以由以上实施例介绍的任意一种终端模拟器系统的反检测装置100来执行,以使恶意应用程序的检测失效,。图2是根据本发明一个实施例的终端模拟器系统的反检测方法的示意图,如图所示,该终端模拟器系统的反检测方法包括步骤:
[0041]步骤S202,获取终端模拟器中描述模拟终端信息的多项系统参数及其参数值;
[0042]步骤S204,将各项系统参数的参数值分别与预置的参数库中保存的默认参数值进行匹配;
[0043]步骤S206,将匹配出的系统参数的参数值修改为不同于默认参数值且符合终端实际运行环境中系统参数赋值规则的数值。
[0044]其中,步骤S204的一种可选流程包括:将各项系统参数的参数值分别与预置的参数库中保存的参数值进行匹配,参数库中保存有已被识别为模拟器信息的多项默认参数值;若出现匹配的情况,就可以确认当前项的系统参数值属于可被识别为模拟器信息的参数值。预置的参数库的数据需要对海量环境数据挖掘统计得出,经过发明人对终端模拟器的设计结构进行分析和统计,发现有以下参数可被应用程序利用,用于模拟器识别,包括:通信号码、硬件设备号、运营商代码、语音信箱号码、终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹、模拟类型等。
[0045]模拟器标识被模拟终端信息的系统参数的种类不同,其加载的位置也不同,相应的修改方式也不同,因此针对不同类型的参数的参数值修改,需要根据其类型进行,对应地步骤S206的一种可选流程为:确定匹配出的系统参数的对应的系统参数类型,并按照与系统参数类型对应的方式将匹配出的系统参数的参数值修改为按照系统参数赋值规则生成的不同于默认参数值的随机数值或固定数值。
[0046]终端模拟器的系统参数包括以下种类:终端模拟器中模拟的通讯参数类;终端模拟器中模拟的终端硬件参数类、终端模拟器中的内核模拟参数类。对于以上各类参数,将修改匹配出的参数值的方式可以包括:使用钩子系统的应用程序接口中的对应函数修改第一类系统参数,第一类系统参数属于终端模拟器中模拟的通讯参数类;修改模拟器系统的系统记录文件中对应于第二类系统参数的参数赋值字段,第二类系统参数属于终端模拟器中模拟的终端硬件参数类;修改模拟器系统进程中内核镜像的对应于第三类系统参数的属性,第三类系统参数属于终端模拟器中的内核模拟参数类。
[0047]本实施例的终端模拟器系统的反检测装置100可以应用于对各种类型的终端模拟器,通过对模拟器的分析得到其对应的可被识别为模拟信息的参数,并修改以躲过应用程序的检测,使其可以体现全面的特征。
[0048]以下结合一种具体的终端模拟器进行说明,经过发明人对安卓模拟器海量数据进行挖掘以及对模拟器设计结构的分析,发下以下系统参数可被恶意程序利用:
[0049](I)模拟器的手机号码,现有安卓终端模拟器中的手机号码为固定值“15555215554”。
[0050](2)模拟器的硬件设备号码,现有安卓终端模拟器中的硬件设备号码为固定值“000000000000000”。
[0051](3)模拟器的运营商的名称,现有安卓终端模拟器中固定名称为Android,实际手机中为“联通,移动,China”。
[0052](4)模拟器中的语音信箱号码,现有安卓终端模拟器中的语音信箱号码为固定值。
[0053](5)模拟器中系统属性r0.product, model值(代表终端型号),现有安卓终端模拟器中的为固定字符“sdk”。
[0054](6)模拟器中系统属性r0.build, tags值(代表编译标签),现有安卓终端模拟器中为固定字符“ test-keys ”。
[0055](7)模拟器中系统属性r0.kernel, qemu值(模拟类型,一般r0.kernel, qemu属性为I,代表模拟器),现有安卓终端模拟器中为固定值“ I ”。
[0056](8)模拟器中系统属性r0.hardware值(代表硬件编号),现有安卓终端模拟器中为固定值“ goldfish”。
[0057](9)模拟器中系统属性r0.product, brand值(代表终端品牌),现有安卓终端模拟器中为固定值“ gener i c ”。
[0058](10)模拟器中系统属性r0.product, name值(代表终端名称),现有安卓终端模拟器中为固定值“sdk”。
[0059](11)模拟器中系统属性r0.product, device值(代表应用设备),现有安卓终端模拟器中为固定值“ gener i c ”。
[0060](12)模拟器中系统属性r0.product, board值(代表应用处理器),现有安卓终端模拟器中为空。
[0061](13)模拟器中系统属性r0.product, manufacturer值(代表终端制造商),模拟器中为固定值“ unknown ”。
[0062](14)模拟器中系统属性r0.board, platform值(代表主板平台),现有安卓终端模拟器中为空。
[0063](15)模拟器中系统属性r0.build, product值(代表建立产品),现有安卓终端模拟器中为“generic”。
[0064]经过发明人的分析,发现恶意应用程序一般都是利用以上参数中任一项的参数值进行模拟器的识别,因此,本实施例的终端模拟器系统的反检测方法对于安卓终端模拟器可以通过更改检测模拟器的返回特征对检测进行欺骗以达到反检测的技术手段。
[0065]对于终端模拟器中模拟的通讯参数类的通信号码、硬件设备号、运营商代码、语音信箱号码等系统参数可以采用以下方式进行修改:
[0066]使用应用程序接口(API Hook)中的getLinelNumber函数将默认通信号码修改符合通信号码格式的随机号码,例如对于手机号码可设置为11位的以13、15、18开头的随机号码;
[0067]使用应用程序接口中的getDeviceld函数将默认硬件设备号修改为符合硬件设备号格式的随机号码;例如按照国际移动设备识别码(Internat1nal Mobile EquipmentIdentificat1n Number,简称IMEI)的规则,返回随机生成的号码;
[0068]使用应用程序接口中的getNetworkOperatorName函数将默认运营商代码修改为实际运行环境中使用的运营商代码,即使用实际的SM卡运营商国家代码和运营商网络代码修改运营商的名称及代码;
[0069]使用应用程序接口中的getVoiceMaiINumber函数将默认语音信箱号码修改为符合语音信箱号码格式的随机号码。
[0070]属于终端模拟器中模拟的终端硬件参数类的终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹的系统,可修改模拟器系统的系统记录文件(system, img镜像包中的/system/build/prop文件)中对应的赋值字段,具体地,以下是对一个具体的prop文件进行修改的结果:
[0071]r0.product, model = SCH-1535 ;
[0072]r0.build, tags = release-keys ;
[0073]r0.hardware = SCH-1535 ;
[0074]r0.product, brand = Verizon ;
[0075]r0.product, name = d2vzw ;
[0076]r0.product, device = d2vzw ;
[0077]r0.product, board = MSM8960 ;
[0078]r0.product, manufacturer = samsung ;
[0079]r0.board, platform = msm8960 ;
[0080]r0.build, product = d2vzw ;
[0081]r0.build, fingerprint = generic/sdk/generic:2.3.1/GSI11/93351:eng/release-keys
[0082]以上文件中的字段,还可以除修改为以上结果外,还可以按照实际安卓手机的实际赋值情况进行修改,目的是将以上系统参数修改为与模拟器的默认值不同。
[0083]对于属于终端模拟器中的内核模拟参数类的r0.kernel, qemu,通过以上方式修改是无效的,经过发明人对内核代码的分析发现该参数值是在系统初始化的时候进行赋值,因此也不能通过系统调用进行修改(也就是不能通过API的形式修改)。为解决之一问题,发明人发现该r0.kernel, qemu的参数字段存在与init进程中,而init进程由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。因此对于模拟器的r0.kernel, qemu参数值的修改,可以采用爆搜init进程内存找到r0.kernel, qemu对应的属性值进行修改达到欺骗的目的,一般可将其值修改为0,以欺骗模拟器中运行的应用程序。
[0084]终端模拟器系统使用本实施例的终端模拟器系统的反检测方法,需要首先通过分析终端模拟器的系统参数以及参数值,确定出可被识别为模拟器信息的参数值,然后针对不同的参数类型确定相应的修改手段,将其可被识别为模拟器信息的参数值修改为与默认值不同的数值,以与实际的终端的使用环境相匹配,从而躲过应用程序的检测和识别,使之可以在模拟器中正常运行,满足应用程序分析和特征检测的需要。
[0085]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0086]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0087]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0088]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0089]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的终端模拟器系统的反检测装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0090]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0091]至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
[0092]本发明实施例还公开了 Al.—种终端模拟器系统的反检测方法,包括:
[0093]获取终端模拟器中描述模拟终端信息的多项系统参数及其参数值;
[0094]将各项所述系统参数的参数值分别与预置的参数库中保存的默认参数值进行匹配,所述参数库中保存有已被识别为模拟器信息的多项默认参数值;
[0095]将匹配出的所述系统参数的参数值修改为不同于所述默认参数值且符合终端实际运行环境中所述系统参数赋值规则的数值。
[0096]A2.根据Al所述的方法,其中,将匹配出的所述系统参数的参数值修改为不同于所述默认参数值且符合终端实际运行环境中所述系统参数赋值规则的数值包括:
[0097]确定匹配出的所述系统参数的对应的系统参数类型,并按照与所述系统参数类型对应的方式将所述匹配出的所述系统参数的参数值修改为按照所述系统参数赋值规则生成的不同于所述默认参数值的随机数值或固定数值。
[0098]A3.根据A2所述的方法,其中,确定匹配出的所述系统参数的对应的系统参数类型包括:
[0099]识别所述匹配出的所述系统参数属于以下类型中任一项:所述终端模拟器中模拟的通讯参数类;所述终端模拟器中模拟的终端硬件参数类、所述终端模拟器中的内核模拟参数类。
[0100]Α4.根据A3所述的方法,其中,按照与所述系统参数类型对应的方式将所述匹配出的所述系统参数的参数值修改为按照所述系统参数赋值规则生成的不同于所述默认参数值的随机数值或固定数值包括:
[0101]使用钩子系统的应用程序接口中的对应函数修改第一类系统参数,所述第一类系统参数属于所述终端模拟器中模拟的通讯参数类;
[0102]修改所述模拟器系统的系统记录文件中对应于第二类系统参数的参数赋值字段,所述第二类系统参数属于所述终端模拟器中模拟的终端硬件参数类;
[0103]修改所述模拟器系统进程中内核镜像的对应于第三类系统参数的属性,所述第三类系统参数属于所述终端模拟器中的内核模拟参数类。
[0104]Α5.根据Α4所述的方法,其中,
[0105]所述系统参数包括:通信号码、硬件设备号、运营商代码、语音信箱号码、终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹、模拟类型,
[0106]所述通信号码、硬件设备号、运营商代码、语音信箱号码属于所述终端模拟器中模拟的通讯参数类;
[0107]所述终端型号、所述编译标签、所述硬件编号、所述终端品牌、所述终端名称、所述应用设备、所述应用处理器、所述终端制造商、所述主板平台、所述建立产品、所述系统指纹属于所述终端模拟器中模拟的终端硬件参数类;
[0108]所述模拟类型属于所述终端模拟器中的内核模拟参数类。
[0109]Α6.根据Α5所述的方法,其中,所述终端模拟器为安卓终端模拟器,
[0110]使用钩子系统的应用程序接口中的对应函数修改第一类系统参数包括:
[0111]使用应用程序接口中的getLinelNumber函数将默认通信号码修改为符合通信号码格式的随机号码;
[0112]使用应用程序接口中的getDeviceld函数将默认硬件设备号修改为符合硬件设备号格式的随机号码;
[0113]使用应用程序接口中的getNetworkOperatorName函数将默认运营商代码修改为实际运行环境中使用的运营商代码;
[0114]使用应用程序接口中的getVoiceMaiINumber函数将默认语音信箱号码修改为符合语音信箱号码格式的随机号码。
[0115]A7.根据A5所述的方法,其中,所述终端模拟器为安卓终端模拟器,
[0116]修改所述模拟器系统的系统记录文件中对应于第二类系统参数的参数赋值字段包括:
[0117]修改所述模拟器系统的system, img镜像包中的/system/build/prop文件对应于所述第二类系统参数的参数赋值字段。
[0118]AS.根据A5所述的方法,其中,所述终端模拟器为安卓终端模拟器,
[0119]修改所述模拟器系统进程中内核镜像的对应于第三类系统参数的属性包括:
[0120]查询得出init进程中r0.kernel, qemu对应的属性并修改为O。
[0121]本发明实施例还公开了 B9.—种终端模拟器系统的反检测装置,包括:
[0122]参数获取模块,配置为获取终端模拟器中描述模拟终端信息的多项系统参数及其参数值;
[0123]参数识别模块,配置为将各项所述系统参数的参数值分别与预置的参数库中保存的默认参数值进行匹配,所述参数库中保存有已被识别为模拟器信息的多项默认参数值;
[0124]参数修改模块,配置为将匹配出的所述系统参数的参数值修改为不同于所述默认参数值且符合终端实际运行环境中所述系统参数赋值规则的数值。
[0125]B10.根据B9所述的装置,其中,所述参数修改模块包括:
[0126]类型确定子模块,配置为确定匹配出的所述系统参数的对应的系统参数类型;
[0127]数值修改子模块,配置为按照与所述系统参数类型对应的方式将所述匹配出的所述系统参数的参数值修改为按照所述系统参数赋值规则生成的不同于所述默认参数值的随机数值或固定数值。
[0128]Bll.根据BlO所述的装置,其中所述类型确定子模块还配置为:
[0129]识别所述匹配出的所述系统参数属于以下类型中任一项:所述终端模拟器中模拟的通讯参数类;所述终端模拟器中模拟的终端硬件参数类、所述终端模拟器中的内核模拟参数类。
[0130]B12.根据Bll所述的装置,其中所述数值修改子模块还配置为:
[0131]使用钩子系统的应用程序接口中的对应函数修改第一类系统参数,所述第一类系统参数属于所述终端模拟器中模拟的通讯参数类;
[0132]修改所述模拟器系统的系统记录文件中对应于第二类系统参数的参数赋值字段,所述第二类系统参数属于所述终端模拟器中模拟的终端硬件参数类;
[0133]修改所述模拟器系统进程中内核镜像的对应于第三类系统参数的属性,所述第三类系统参数属于所述终端模拟器中的内核模拟参数类;
[0134]所述系统参数包括:通信号码、硬件设备号、运营商代码、语音信箱号码、终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹、模拟类型,
[0135]所述通信号码、硬件设备号、运营商代码、语音信箱号码属于所述终端模拟器中模拟的通讯参数类;
[0136]所述终端型号、所述编译标签、所述硬件编号、所述终端品牌、所述终端名称、所述应用设备、所述应用处理器、所述终端制造商、所述主板平台、所述建立产品、所述系统指纹属于所述终端模拟器中模拟的终端硬件参数类;
[0137]所述模拟类型属于所述终端模拟器中的内核模拟参数类。
[0138]B13.根据B12所述的装置,其中所述终端模拟器为安卓终端模拟器,所述数值修改子模块还配置为以下任一种或多种模式:
[0139]使用应用程序接口中的getLinelNumber函数将默认通信号码修改符合通信号码格式的随机号码;
[0140]使用应用程序接口中的getDeviceld函数将默认硬件设备号修改为符合硬件设备号格式的随机号码;
[0141]使用应用程序接口中的getNetworkOperatorName函数将默认运营商代码修改为实际运行环境中使用的运营商代码;
[0142]使用应用程序接口中的getVoiceMaiINumber函数将默认语音信箱号码修改为符合语音信箱号码格式的随机号码;
[0143]修改所述模拟器系统的system, img镜像包中的/system/build/prop文件对应于所述第二类系统参数的参数赋值字段;
[0144]查询得出init进程中r0.kernel, qemu对应的属性并修改为O。
【权利要求】
1.一种终端模拟器系统的反检测方法,包括: 获取终端模拟器中描述模拟终端信息的多项系统参数及其参数值; 将各项所述系统参数的参数值分别与预置的参数库中保存的默认参数值进行匹配,所述参数库中保存有已被识别为模拟器信息的多项默认参数值; 将匹配出的所述系统参数的参数值修改为不同于所述默认参数值且符合终端实际运行环境中所述系统参数赋值规则的数值。
2.根据权利要求1所述的方法,其中,将匹配出的所述系统参数的参数值修改为不同于所述默认参数值且符合终端实际运行环境中所述系统参数赋值规则的数值包括: 确定匹配出的所述系统参数的对应的系统参数类型,并按照与所述系统参数类型对应的方式将所述匹配出的所述系统参数的参数值修改为按照所述系统参数赋值规则生成的不同于所述默认参数值的随机数值或固定数值。
3.根据权利要求2所述的方法,其中,确定匹配出的所述系统参数的对应的系统参数类型包括: 识别所述匹配出的所述系统参数属于以下类型中任一项:所述终端模拟器中模拟的通讯参数类;所述终端模拟器中模拟的终端硬件参数类、所述终端模拟器中的内核模拟参数类。
4.根据权利要求3所述的方法,其中,按照与所述系统参数类型对应的方式将所述匹配出的所述系统参数的参数值修改为按照所述系统参数赋值规则生成的不同于所述默认参数值的随机数值或固定数值包括: 使用钩子系统的应用程序接口中的对应函数修改第一类系统参数,所述第一类系统参数属于所述终端模拟器中模拟的通讯参数类; 修改所述模拟器系统的系统记录文件中对应于第二类系统参数的参数赋值字段,所述第二类系统参数属于所述终端模拟器中模拟的终端硬件参数类; 修改所述模拟器系统进程中内核镜像的对应于第三类系统参数的属性,所述第三类系统参数属于所述终端模拟器中的内核模拟参数类。
5.根据权利要求4所述的方法,其中, 所述系统参数包括:通信号码、硬件设备号、运营商代码、语音信箱号码、终端型号、编译标签、硬件编号、终端品牌、终端名称、应用设备、应用处理器、终端制造商、主板平台、建立产品、系统指纹、模拟类型, 所述通信号码、硬件设备号、运营商代码、语音信箱号码属于所述终端模拟器中模拟的通讯参数类; 所述终端型号、所述编译标签、所述硬件编号、所述终端品牌、所述终端名称、所述应用设备、所述应用处理器、所述终端制造商、所述主板平台、所述建立产品、所述系统指纹属于所述终端模拟器中模拟的终端硬件参数类; 所述模拟类型属于所述终端模拟器中的内核模拟参数类。
6.根据权利要求5所述的方法,其中,所述终端模拟器为安卓终端模拟器, 使用钩子系统的应用程序接口中的对应函数修改第一类系统参数包括: 使用应用程序接口中的getLineINumber函数将默认通信号码修改为符合通信号码格式的随机号码; 使用应用程序接口中的getDeviceld函数将默认硬件设备号修改为符合硬件设备号格式的随机号码; 使用应用程序接口中的getNetworkOperatorName函数将默认运营商代码修改为实际运行环境中使用的运营商代码; 使用应用程序接口中的getVoiceMaiINumber函数将默认语音信箱号码修改为符合语音信箱号码格式的随机号码。
7.根据权利要求5所述的方法,其中,所述终端模拟器为安卓终端模拟器, 修改所述模拟器系统的系统记录文件中对应于第二类系统参数的参数赋值字段包括: 修改所述模拟器系统的system, img镜像包中的/system/build/prop文件对应于所述第二类系统参数的参数赋值字段。
8.根据权利要求5所述的方法,其中,所述终端模拟器为安卓终端模拟器, 修改所述模拟器系统进程中内核镜像的对应于第三类系统参数的属性包括: 查询得出init进程中r0.kernel, qemu对应的属性并修改为O。
9.一种终端模拟器系统的反检测装置,包括: 参数获取模块,配置为获取终端模拟器中描述模拟终端信息的多项系统参数及其参数值; 参数识别模块,配置为将各项所述系统参数的参数值分别与预置的参数库中保存的默认参数值进行匹配,所述参数库中保存有已被识别为模拟器信息的多项默认参数值; 参数修改模块,配置为将匹配出的所述系统参数的参数值修改为不同于所述默认参数值且符合终端实际运行环境中所述系统参数赋值规则的数值。
10.根据权利要求9所述的装置,其中,所述参数修改模块包括: 类型确定子模块,配置为确定匹配出的所述系统参数的对应的系统参数类型; 数值修改子模块,配置为按照与所述系统参数类型对应的方式将所述匹配出的所述系统参数的参数值修改为按照所述系统参数赋值规则生成的不同于所述默认参数值的随机数值或固定数值。
【文档编号】G06F21/56GK104134041SQ201410374584
【公开日】2014年11月5日 申请日期:2014年7月31日 优先权日:2014年7月31日
【发明者】张东谊, 谢军样 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1