一种应用程序修改检测方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用程序修改检测方法及装置。
背景技术
终端设备越狱后可以解除设定操作系统的限制,可以自由安装应用程序,甚至自行编译应用程序。但是,终端设备越狱后会带来比较大的安全隐患:一方面,终端设备会比较容易被攻击,进而对用户的资产、信息安全等造成不利影响;另一方面,应用程序本身存在的某些安全漏洞在越狱设备上会被攻击者利用。
目前,在越狱设备上进行应用程序修改的最通用的方式是通过编写应用程序修改插件,如tweak,来修改应用程序的行为逻辑。一个tweak编写完成后,会包含有一个动态库文件(*.dylib),在应用程序启动后通过动态链接器将该动态库文件加载进应用程序的地址空间,从而实现调试、动态修改应用程序。
目前,探测应用程序是否被修改基本是通过收集应用程序的崩溃日志来实现的。一旦tweak的编写者出现错误,可能会造成应用程序的崩溃,导致应用程序无法运行,此时客户端就会向服务器上报一条崩溃日志,其中包含有崩溃时的堆栈、函数调用等信息,通过分析崩溃日志,可以确定出是否有tweak挂载在应用程序上,进而可以推断出哪些客户端设备正在调试该应用程序。
可见,现有技术中,服务器只能通过崩溃日志得知有应用程序修改插件在修改该服务器正在运行的应用程序。但是,客户端只有在应用程序崩溃而无法运行时才会进行崩溃日志的上报,因此在应用程序崩溃之前,即使应用程序被恶意修改,服务器也无法判断是否有应用程序修改插件在修改该应用程序,进而无法进行恶意插件分析、抓取。
发明内容
本申请实施例提供一种应用程序修改检测方法及装置,用以解决现有技术中在应用程序崩溃之前,服务器无法判断是否有应用程序修改插件在修改该应用程序的问题。
本申请实施例提供一种应用程序修改检测方法,包括:
客户端读取预设安装文件夹中的各配置文件的内容;所述预设安装文件夹中包含至少一个应用程序修改插件的配置文件和动态库文件,其中每个应用程序修改插件的配置文件用于指示该应用程序修改插件的动态库文件修改的至少一个应用程序;
所述客户端向服务器上报读取的各配置文件的内容,用于所述服务器判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件。
可选地,所述客户端向服务器上报读取的各配置文件的内容之后,还包括:
所述客户端接收所述服务器在确定所述客户端中安装有修改设定应用程序的应用程序修改插件后,发送的用于指示该客户端上报该应用程序修改插件的动态库文件的上报指示信息;
所述客户端读取预设安装文件夹中的、所述上报指示信息中所指示的动态库文件的内容,并将读取的动态库文件的内容上报给所述服务器。
可选地,所述上报指示信息中包含所述至少一个动态库文件的标识信息,或者,包含所述至少一个动态库文件所属的应用程序修改插件的标识信息,或者,包含所述至少一个动态库文件所属的应用程序修改插件的配置文件的标识信息。
本申请另一实施例提供一种应用程序修改检测方法,包括:
服务器接收客户端上报的各配置文件的内容;其中,每个配置文件用于指示该配置文件所属的应用程序修改插件的动态库文件修改的至少一个应用程序;
所述服务器基于每个配置文件的内容,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件。
可选地,所述服务器在确定所述客户端中安装有修改设定应用程序的应用程序修改插件后,还包括:
所述服务器指示所述客户端上报修改所述设定应用程序的应用程序修改插件的动态库文件,以便基于该动态库文件进行恶意插件识别。
可选地,所述服务器指示所述客户端上报修改所述设定应用程序的应用程序修改插件的动态库文件,包括:
所述服务器在接收到用于指示修改所述设定应用程序的应用程序修改插件为可疑插件的指示信息后,指示所述客户端上报该应用程序修改插件的动态库文件。
可选地,所述服务器指示所述客户端上报修改所述设定应用程序的应用程序修改插件的动态库文件,包括:
所述服务器基于获取的针对所述设定应用程序的异常账户信息,在确定所述客户端为异常账户所对应的客户端后,指示所述客户端上报修改所述设定应用程序的应用程序修改插件的动态库文件。
可选地,所述服务器基于每个配置文件的内容,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件,包括:
所述服务器基于获取的针对所述设定应用程序的异常账户信息,在确定所述客户端为异常账户所对应的客户端后,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件。
本申请实施例提供一种应用程序修改检测装置,包括:
读取模块,用于读取预设安装文件夹中的各配置文件的内容;所述预设安装文件夹中包含至少一个应用程序修改插件的配置文件和动态库文件,其中每个应用程序修改插件的配置文件用于指示该应用程序修改插件的动态库文件修改的至少一个应用程序;
发送模块,用于向服务器上报读取的各配置文件的内容,用于所述服务器判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件。
本申请另一实施例提供一种应用程序修改检测装置,包括:
接收模块,用于接收客户端上报的各配置文件的内容;其中,每个配置文件用于指示该配置文件所属的应用程序修改插件的动态库文件修改的至少一个应用程序;
判断模块,用于基于每个配置文件的内容,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件。
采用本申请实施例,服务器可以基于客户端主动上报的预设安装文件夹中的各配置文件的内容,确认客户端中是否安装有针对设定应用程序的应用程序修改插件,从而可以无需应用程序的崩溃日志就可以确认该应用程序是否被修改。
附图说明
图1为本申请实施例一提供的应用程序修改检测方法流程图;
图2为预设安装文件夹中包含动态库文件(*.dylib)和配置文件(*.plist)的示意图;
图3为不同的客户端向服务器上报读取的配置文件的内容的示意图;
图4为本申请实施例二提供的应用程序修改检测方法流程图;
图5为本申请实施例三提供的应用程序修改检测方法流程图;
图6为本申请实施例四提供的应用程序修改检测方法流程图;
图7为本申请实施例五提供的应用程序修改检测装置结构示意图;
图8为本申请实施例六提供的应用程序修改检测装置结构示意图。
具体实施方式
本申请实施例中,客户端读取预设安装文件夹中的各配置文件的内容,并上报给服务器,该预设安装文件夹中包含至少一个应用程序修改插件的配置文件和动态库文件,其中每个应用程序修改插件的配置文件用于指示该应用程序修改插件的动态库文件修改的至少一个应用程序;服务器可以基于客户端上报的各配置文件的内容,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件。可见,采用本申请实施例,服务器可以基于客户端主动上报的预设安装文件夹中的各配置文件的内容,确认客户端中是否安装有针对设定应用程序的应用程序修改插件,从而可以无需应用程序的崩溃日志就可以确认该应用程序是否被修改。
下面结合说明书附图对本申请实施例作进一步详细描述。
实施例一
如图1所示,为本申请实施例一提供的应用程序修改检测方法流程图,包括以下步骤:
S101:客户端读取预设安装文件夹中的各配置文件的内容;所述预设安装文件夹中包含至少一个应用程序修改插件的配置文件和动态库文件,其中每个应用程序修改插件的配置文件用于指示该应用程序修改插件的动态库文件修改的至少一个应用程序。
在越狱设备上,代码修改平台(CydiaSubstrate)是应用程序修改插件(如tweak)工作的基础。编写好的tweak在被安装后,会被存储在预设安装文件夹(比如/Library/MobileSubstrate/DynamicLibraries)中。如图2所示,预设安装文件夹中可以有多个tweak,每一个tweak包含有两部分,分别为动态库文件(*.dylib)和配置文件(*.plist),其中动态库文件在应用程序启动时会被一同加载,从而实现动态修改应用程序,配置文件用于指示动态库文件具体修改的应用程序,也即,一个动态库文件可以作用于一个或多个应用程序。图2中,A、B、C表示不同配置文件或动态库文件的名称。
未越狱的设备由于受沙盒机制的限制,应用程序的文件读取被限制在沙盒内部,而在越狱设备上,由于沙盒机制被破坏,安装应用程序的客户端可以读取到沙盒之外的文件夹中的内容,因此,客户端可以通过尝试读取/Library/MobileSubstrate/DynamicLibraries来判断安装的该应用程序所处的环境是否已越狱,假如已越狱,则可以继续采集该文件夹中所有配置文件的内容,每个配置文件的内容具体可以是该配置文件所属的应用程序修改插件需要修改的应用程序的标识信息。
S102:客户端向服务器上报读取的各配置文件的内容。
如图3所示,不同的客户端向服务器上报的配置文件的内容中可能有相同的配置文件的内容,也可能有不同的配置文件的内容。
S103:服务器基于每个配置文件的内容,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件。
这里,服务器针对运行的设定应用程序,在客户端上报的各配置文件的内容中,查询是否存在该设定应用程序的标识信息,若存在,则确定客户端中安装有修改设定应用程序的应用程序修改插件。
在具体实施过程中,在确定客户端中安装有修改设定应用程序的应用程序修改插件后,可以直接指示客户端上报该可疑插件的动态库文件,服务器可以基于该动态库文件进一步分析该应用程序修改插件是否为恶意插件,具体地,服务器可以基于预设的恶意插件识别规则自动进行恶意插件识别,或由服务器侧的开发人员分析识别。或者,可以在确定客户端中安装有修改设定应用程序的应用程序修改插件后,首先基于配置文件所指示的应用程序修改插件的名称(与配置文件的名称、动态库的名称相同)分析该应用程序修改插件是否为可疑插件(比如名称为作弊插件),在确定该应用程序修改插件为可疑插件后,通知客户端上报该可疑插件的动态库文件,以便于服务器进行深度分析。或者,可以基于获取的异常账户信息,在确定所述客户端为异常账户所对应的客户端后,指示所述客户端上报修改所述设定应用程序的应用程序修改插件的动态库文件。
下面,将通过实施例二~四的内容,对上述内容作进一步说明。
实施例二
如图4所示,为本申请实施例二提供的应用程序修改检测方法流程图,包括以下步骤:
S401:客户端读取预设安装文件夹中的各配置文件的内容;所述预设安装文件夹中包含至少一个应用程序修改插件的配置文件和动态库文件,其中每个应用程序修改插件的配置文件用于指示该应用程序修改插件的动态库文件修改的至少一个应用程序。
比如,客户端读取预设安装文件夹/Library/MobileSubstrate/DynamicLibraries中的配置文件的内容。
S402:客户端向服务器上报读取的各配置文件的内容。
S403:服务器基于每个配置文件的内容,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件,若是,则进入S404,否则结束处理。
S404:服务器向所述客户端发送用于指示所述客户端上报安装的所述应用程序修改插件的动态库文件的上报指示信息。
这里,所述上报指示信息中可以包含所述至少一个动态库文件的标识信息(*.dylib),或者,包含所述至少一个动态库文件所属的应用程序修改插件的配置文件的标识信息(*.plist),或者,包含所述至少一个动态库文件所属的应用程序修改插件的标识信息。由于应用程序修改插件及其动态库文件、配置文件的名称(如图2中的A、B、C)其实可以是相同的,当采用名称来作为标识信息时,上述三种标识信息可以是相同的标识信息。
S405:客户端读取预设安装文件夹中的、所述上报指示信息中所指示的动态库文件的内容,并将读取的动态库文件的内容上报给所述服务器。
S406:服务器基于客户端上报的动态库文件进行恶意插件识别。
这里,由于动态库文件中包含进行应用程序修改的详细代码,服务器通过分析代码,可以最终确认该应用程序修改插件是否为恶意插件。这里,服务器可以基于预设的恶意插件识别规则自动进行恶意插件识别,也可以将获取的动态库文件呈现给开发人员,指示开发人员进行分析识别。这里的恶意插件也即为可能会导致应用程序运行错误、对用户资产、信息安全造成不良影响等的插件。在识别出恶意插件后,可以进行恶意插件屏蔽、恶意账户锁定等。
实施例三
如图5所示,为本申请实施例三提供的应用程序修改检测方法流程图,包括以下步骤:
S501:客户端读取预设安装文件夹中的各配置文件的内容;所述预设安装文件夹中包含至少一个应用程序修改插件的配置文件和动态库文件,其中每个应用程序修改插件的配置文件用于指示该应用程序修改插件的动态库文件修改的至少一个应用程序。
S502:客户端向服务器上报读取的各配置文件的内容。
S503:服务器基于每个配置文件的内容,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件,若是,则进入S504,否则结束处理。
S504:服务器基于所述修改设定应用程序的应用程序修改插件的配置文件,判断该应用程序修改插件是否为可疑插件。
在该实施例中,服务器在确定客户端中安装有修改设定应用程序的应用程序修改插件后,可以首先基于该应用程序修改插件的配置文件,判断该应用程序修改插件是否为可疑插件,具体地,服务器可以基于预设的可疑插件识别规则,自动进行可疑插件识别,或者可以将该应用程序修改插件的配置文件的内容指示给开发人员,由开发人员基于该配置文件的内容,识别该应用程序修改插件是否为可疑插件,若是可疑插件,则进入S505,否则将其作为安全插件,不作处理;比如该配置文件的内容所指示的应用程序修改插件的名称为作弊插件,则认为该插件是可疑插件。
S505:服务器在接收到用于指示修改所述设定应用程序的应用程序修改插件为可疑插件的指示信息后,向所述客户端发送用于指示所述客户端上报安装的所述应用程序修改插件的动态库文件的上报指示信息。
这里,服务器在确定应用程序修改插件为可疑插件后,需进一步向客户端请求获取该应用程序修改插件的动态库文件,以便开发人员进行深度分析,确认该可疑插件是否为恶意插件。
S506:客户端读取预设安装文件夹中的、所述上报指示信息中所指示的动态库文件的内容,并将读取的动态库文件的内容上报给所述服务器。
S507:服务器基于该动态库文件进行恶意插件识别。
实施例四
如图6所示,为本申请实施例四提供的应用程序修改检测方法流程图,包括以下步骤:
S601:客户端读取预设安装文件夹中的各配置文件的内容;所述预设安装文件夹中包含至少一个应用程序修改插件的配置文件和动态库文件,其中每个应用程序修改插件的配置文件用于指示该应用程序修改插件的动态库文件修改的至少一个应用程序。
S602:客户端向服务器上报读取的各配置文件的内容。
S603:服务器基于每个配置文件的内容,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件,若是,则进入S604,否则结束处理。
S604:服务器基于获取的针对所述设定应用程序的异常账户信息,在确定所述客户端为异常账户所对应的客户端后,指示所述客户端上报修改所述设定应用程序的应用程序修改插件的动态库文件。
在S603中,服务器可以首先获取针对所述设定应用程序的异常账户信息(比如若某个账户在一分钟内登录次数超过设定阈值,则认为该账户为异常账户),基于每个异常账户对应的客户端上报的配置文件的内容,判断每个异常账户对应的客户端中是否安装有修改设定应用程序的应用程序修改插件,在确定存在异常账户对应的客户端中安装有所述修改设定应用程序的应用程序修改插件后,指示所述客户端上报修改所述设定应用程序的应用程序修改插件的动态库文件。
或者,在S603中,服务器可以首先判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件,在确定所述客户端中安装有修改设定应用程序的应用程序修改插件后,再结合针对所述设定应用程序的异常账户信息,判断该客户端是否为异常账户所对应的客户端,若是,则指示所述客户端上报修改所述设定应用程序的应用程序修改插件的动态库文件,也即采用S604步骤的实施方式。
在具体实施中,可以结合上述实施例三进行实施,也即,一方面将修改设定应用程序的应用程序修改插件的配置文件的内容指示给开发人员,由开发人员判断该应用程序修改插件是否为可疑插件;另一方面,结合异常账户的信息反向查找出对应的客户端中有没有安装可疑插件(修改该设定应用程序的应用程序修改插件)。这两方面的结果可能会存在重叠,同时可以实现互补。
S605:客户端读取预设安装文件夹中的、所述上报指示信息中所指示的动态库文件的内容,并将读取的动态库文件的内容上报给所述服务器。
S606:服务器基于该动态库文件进行恶意插件识别。
基于同一发明构思,本申请实施例中还提供了一种与应用程序修改检测方法对应的应用程序修改检测装置,由于该装置解决问题的原理与本申请实施例应用程序修改检测方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
实施例五
如图7所示,为本申请实施例五提供的应用程序修改检测装置结构示意图,包括:
读取模块71,用于读取预设安装文件夹中的各配置文件的内容;所述预设安装文件夹中包含至少一个应用程序修改插件的配置文件和动态库文件,其中每个应用程序修改插件的配置文件用于指示该应用程序修改插件的动态库文件修改的至少一个应用程序;
发送模块72,用于向服务器上报读取的各配置文件的内容,用于所述服务器判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件。
可选地,所述装置还包括:
接收模块73,用于在所述发送模块72向服务器上报读取的各配置文件的内容之后,接收所述服务器在确定客户端中安装有修改设定应用程序的应用程序修改插件后,发送的用于指示该客户端上报该应用程序修改插件的动态库文件的上报指示信息;
所述读取模块71还用于:读取预设安装文件夹中的、所述上报指示信息中所指示的动态库文件的内容,并将读取的动态库文件的内容上报给所述服务器。
可选地,所述上报指示信息中包含所述至少一个动态库文件的标识信息,或者,包含所述至少一个动态库文件所属的应用程序修改插件的标识信息,或者,包含所述至少一个动态库文件所属的应用程序修改插件的配置文件的标识信息。
实施例六
如图8所示,为本申请实施例六提供的应用程序修改检测装置结构示意图,包括:
接收模块81,用于接收客户端上报的各配置文件的内容;其中,每个配置文件用于指示该配置文件所属的应用程序修改插件的动态库文件修改的至少一个应用程序;
判断模块82,用于基于每个配置文件的内容,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件。
可选地,所述装置还包括:
发送模块83,用于在所述判断模块82确定客户端中安装有修改设定应用程序的应用程序修改插件后,指示所述客户端上报修改所述设定应用程序的应用程序修改插件的动态库文件,以便基于该动态库文件进行恶意插件识别。
可选地,所述发送模块83具体用于:
在接收到用于指示修改所述设定应用程序的应用程序修改插件为可疑插件的指示信息后,指示所述客户端上报该应用程序修改插件的动态库文件。
可选地,所述发送模块83具体用于:
基于获取的针对所述设定应用程序的异常账户信息,在确定所述客户端为异常账户所对应的客户端后,指示所述客户端上报修改所述设定应用程序的应用程序修改插件的动态库文件。
可选地,所述判断模块82具体用于:
基于获取的针对所述设定应用程序的异常账户信息,在确定所述客户端为异常账户所对应的客户端后,判断所述客户端中是否安装有修改设定应用程序的应用程序修改插件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。