软件篡改识别方法和系统与流程

文档序号:14686171发布日期:2018-06-14 23:39阅读:210来源:国知局

本发明涉及计算机软件技术领域,特别是涉及一种软件篡改识别方法和系统。



背景技术:

目前,随着数字化生活方式的推广和普及,各种应用软件越来越多的进入到人们的日常生活中。而应用软件的安全性也逐渐得到人们的重视。

传统的识别应用软件是否被篡改通常是对需要保护的软件内容,如:应用程序或文件等进行处理,生成相应的验证字符串,从而通过对验证字符串的验证来实现应用软件是否被篡改的识别。

但是,由于验证字符串不便于记忆,且人工对比较为繁琐,不容易快速识别应用软件是否被篡改的结果。因此,采用传统的验证字符串来识别应用软件是否被篡改的识别效率较低,便捷性较差。



技术实现要素:

基于此,有必要针对采用传统的验证字符串来识别应用软件是否被篡改的识别效率较低,便捷性较差问题,提供一种软件篡改识别方法和系统。

为实现本发明目的提供的一种软件篡改识别方法,包括如下步骤:

根据接收到的软件控制指令,生成相应的第一软件特征字符串;

以所述第一软件特征字符串为解密密钥,对预存的加密图片文件进行解密,获取相应的解密图片文件;

加载所述解密图片文件,并判断所述解密图片文件是否能够正常加载;

若是,则所述软件识别为未被篡改;若否,则所述软件识别为被篡改。

在其中一个实施例中,当判断出所述解密图片文件能够正常加载后,还包括显示所述解密图片文件,并根据所述解密图片文件的显示内容判断所述软件是否被篡改的步骤。

在其中一个实施例中,所述加密图片文件包括在所述软件未被篡改的状态下,由所述软件的界面中提取的经加密处理的第一图片文件。

在其中一个实施例中,还包括如下步骤:

当所述软件正常安装完成或正常更新完成后,生成与所述软件相应的第二软件特征字符串;

由所述软件的界面中提取所述第一图片;

以所述第二软件特征字符串为加密密钥,对所述第一图片进行加密,得到所述加密图片文件,并保存所述加密图片文件。

在其中一个实施例中,当所述软件正常安装完成或正常更新完成后,生成与所述软件相应的所述第二软件特征字符串时,采用哈希算法对所述软件进行计算得到所述第二软件特征字符串。

在其中一个实施例中,当所述软件正常安装完成或正常更新完成后,生成与所述软件相应的第二软件特征字符串,包括如下步骤:

当所述软件正常安装完成或正常更新完成后,获取所述软件的程序文件和配置文件,生成相应的保护文件列表;

采用所述哈希算法对所述保护文件列表中的文件进行运算,生成相应的所述第二软件特征字符串。

相应的,本发明还提供了一种软件篡改识别系统,包括软件特征字符串生成模块、识别图片解密模块和识别图片刷新模块;

所述软件特征字符串生成模块,被配置为根据接收到的软件控制指令,生成相应的第一软件特征字符串;

所述识别图片解密模块,被配置为以所述第一软件特征字符串为解密密钥,对预存的加密图片文件进行解密,获取相应的解密图片文件;

所述识别图片刷新模块,被配置为加载所述解密图片文件,并判断所述解密图片文件是否能够正常加载;若是,则直接判断出所述软件未被篡改;若否,则直接判断出所述软件被篡改。

在其中一个实施例中,还包括图片提取模块和识别图片加密模块;

所述软件特征字符串生成模块,还被配置为当所述软件正常安装完成或正常更新完成后,生成与所述软件相应的第二软件特征字符串;

所述图片提取模块,被配置为由所述软件的界面中提取第一图片;

所述识别图片加密模块,被配置为以所述第二软件特征字符串为加密密钥,对所述第一图片进行加密,获取相应的所述加密图片文件,并保存所述加密图片文件。

在其中一个实施例中,所述软件特征字符串生成模块,被配置为当所述软件正常安装完成或正常更新完成后,生成与所述软件相应的所述第二软件特征字符串时,采用哈希算法对所述软件进行计算得到所述第二软件特征字符串。

在其中一个实施例中,所述软件特征字符串生成模块包括保护文件列表生成单元和特征字符串生成单元;

所述保护文件列表生成单元,被配置为当所述软件正常安装完成或正常更新完成后,确定所述软件的程序文件和配置文件,生成相应的保护文件列表;

所述特征字符串生成单元,被配置为采用所述哈希算法对所述保护文件列表中的文件进行运算,生成相应的所述第二软件特征字符串。

上述软件篡改识别方法的有益效果:

其在进行软件是否被篡改的识别过程中,根据所接收到的软件控制指令,生成相应的第一软件特征字符串,进而再以第一软件特征字符串为密钥,对预存的加密图片文件进行解密,获取相应的解密图片文件。最后再通过加载获取的解密图片文件,并判断解密图片文件是否能够正常加载。若解密图片文件能够正常加载,则可识别出软件当前未被篡改。若解密图片文件不能正常加载,则可识别出软件当前被篡改。从而实现了根据解密图片文件来识别软件是否被篡改的目的。其将传统的采用验证字符串来识别软件是否被篡改替换为采用解密图片文件来进行识别,使得识别过程不再依赖于独立的验证字符串,并且识别过程更加直观,且不需要人工比对。因此其有效的解决了采用传统的验证字符串来识别应用软件是否被篡改的识别效率较低,便捷性较差问题。

附图说明

图1为本发明的软件篡改识别方法的一具体实施例的流程图;

图2为本发明的软件篡改识别方法的另一具体实施例的流程图;

图3为本发明的软件篡改识别系统的一具体实施例的结构示意图。

具体实施方式

为使本发明技术方案更加清楚,以下结合附图及具体实施例对本发明作进一步详细说明。

首先应当说明的是,本发明的软件篡改识别方法中的软件可为在移动终端(即,平板电脑或手机等)上安装的任意一种应用软件。如:聊天软件、购物平台或银行交易软件等。其中也包括本发明所提供的软件篡改识别系统的软件。

并且,本发明的软件篡改识别方法和系统,不仅可以用于移动终端,还可应用于桌面应用程序和互联网应用程序。

软件控制指令则指的是对软件可执行的一些操作,具体可为软件启动指令或软件定时刷新指令等。

加密图片文件则指的是经过加密后的图片。其中,加密图片文件中的图片优选为由软件的界面中所提取的具有较高辨识度的第一图片。

相应的,解密图片文件则为对加密图片文件进行解密后所获取的图片文件。其中,当对加密图片文件进行解密时,如果所采用的解密密钥与加密图片文件时所采用的加密密钥相同或一致(即,加密图片文件解密成功),则解密后获取的图片与加密图片文件中的图片相同,解密图片文件能够在软件启动或定时刷新时正常加载。如果所采用的解密密钥与加密图片文件时所采用的加密密钥不同或不一致(即,加密图片文件未成功解密),则不能顺利地对加密图片文件进行解密,所获取的解密图片文件中的图片与加密图片文件中的图片不同,解密图片文件在软件启动或定时刷新时不能正常加载。

参见图1,作为本发明的软件篡改识别方法的一具体实施例,其首先通过步骤S100,根据接收到的软件控制指令,生成相应的第一软件特征字符串。其中,软件控制指令包括软件启动指令或软件定时刷新指令。第一软件特征字符串则可为与软件当前状态相对应的校验码。即,为了防止用户在不知道软件被篡改还依然使用软件导致私人信息外泄的现象,当用户启动软件或定时刷新软件时,首先生成与软件的当前状态相对应的第一软件特征字符串。具体的,可采用哈希算法对软件中的当前文件进行计算,从而获取相应的第一软件特征字符串。

进而再通过步骤S200,以第一软件特征字符串为密钥,对预存的加密图片文件进行解密,获取相应的解密图片文件。此处,需要提前说明的是,预存的加密图片文件为在软件正常安装或正常更新后以文件形式所预先存储的经过加密处理后的第一图片文件,可以直接被程序访问。该第一图片文件优选为软件在正常状态时,由软件的界面中提取出的具有较高辨识度的图片文件。其中,软件正常安装或正常更新指的是软件在启动或定时刷新之前,所进行的最后一次未被篡改的安装或更新。

即,通过采用当前生成的第一软件特征字符串为密钥,对预先经过加密处理并存储的加密图片文件进行解密,获取相应的解密图片文件。其中,在对加密图片文件进行解密过程中,如果加密图片文件无法解密,则说明所生成的第一软件特征字符串错误,此时可直接识别出软件被篡改。如果加密图片文件能够顺利解密,由于加密方式的差异,即使在解密加密图片文件的过程顺利完成,也不意味着正确恢复了必要的原文件格式。因此可再通过步骤S300,加载获取的解密图片文件,并根据解密图片文件的加载状态,确定软件的当前状态。

由于解密图片文件是以当前生成的第一软件特征字符串为密钥,对预先存储的加密图片文件进行解密所获取的。因此,所获取的解密图片文件的加载状态表征了软件的当前状态。由此,可通过根据解密图片文件在软件启动或定时刷新时的加载状态来确定软件的当前状态。

具体的,可通过对解密图片文件的加载状态进行判断来实现。即,首先通过步骤S310,判断解密图片文件在文件启动或定时刷新时是否能够正常加载。若是,则表明通过采用当前生成的第一软件特征字符串对预先存储的加密图片文件进行解密时,所获取的解密图片文件与预先存储的加密图片文件相一致(即当前生成的第一软件特征字符串与加密图片文件的加密密钥相一致),而加密图片文件为在软件未被篡改的状态下进行的提取和加密处理。因此,此时所获取的解密图片文件对应于软件的状态为未被篡改的状态。即,可执行步骤S320,直接判断出此时软件未被篡改,其当前状态为正常状态。若否,则表明此时所获取的解密图片文件与预先存储的加密图片文件不一致。即,当前生成的第一特征字符串与加密图片文件的加密密钥不一致,因此,可直接执行步骤S330,判断出软件此时被篡改,其当前状态为异常状态。

其通过采用当前生成的与软件的当前状态相对应的第一软件特征字符串作为解密密钥,对预先存储的加密图片文件进行解密,获取相应的解密图片文件,进而再根据解密图片文件是否能够正常加载,来确定软件的当前状态是否被篡改。其实现了以软件未被篡改时由软件的界面提取相应的第一图片文件作为辨识依据,从而使得识别过程不再依赖于独立的验证字符串,并使得识别结果更加直观,不需要再进行人工比对验证字符串,从而使得软件是否被篡改的识别更加便捷。

另外,由于所获取的解密图片文件能够正常的加载也不能完全确定解密过程中正确回复了加密图片文件的内容,因此,为了进一步的提高软件篡改识别的精确性,当在步骤S310,判断解密图片文件在文件启动或定时刷新时是否能够正常加载的过程中,判断出解密图片文件能够正常加载之后,在还未执行步骤S320,直接判断出此时软件未被篡改之前,还包括步骤S311,显示解密图片文件,此时可通过人工判断所显示的解密图片文件的内容是否正常。若正常,则可执行步骤S320,直接判断出此时软件未被篡改,当前软件状态为正常状态。若不正常,则可执行步骤S330,判断出软件此时被篡改,其当前状态为异常状态。

其中,需要说明的是,由于本发明的软件篡改识别方法中需要以预先存储的加密图片文件作为识别的依据,因此作为本发明的软件篡改识别方法的一具体实施例,其在进行软件的正常安装或正常更新后,需要预先生成加密图片文件。其中,生成加密图片文件具体可通过以下方式来实现。

参见图2,首先通过步骤S001,当软件正常安装完成或正常更新完成后,生成与软件相应的第二软件特征字符串。其中,生成与软件相应的第二软件特征字符串时,可优先采用哈希算法对软件进行计算,获取相应的第二软件特征字符串,以保证被保护软件的文件发生变化时,其对应的特征字符串也发生改变。并且,需要说明的是,生成第一软件特征字符串的方法应当与生成第二软件特征字符串的方法相同或一致。

同时,其在生成与软件相应的第二软件特征字符串之前,需要首先确定需要保护的程序文件和配置文件。需要说明的是,需要保护的程序文件和配置文件指的是能够对软件功能和安全性产生重要影响的文件。即,首先需要通过步骤S010,确定文件的程序文件和配置文件,生成相应的保护文件列表。优选的,作为用于实现本发明的软件篡改识别方法的系统软件中的程序文件和配置文件也可加入生成的保护文件列表中。当确定需要保护的程序文件和配置文件后,即可执行步骤S011,采用哈希算法对保护文件列表中的文件进行运算,生成相应的第二软件特征字符串。即,在软件正常状态(即未被篡改的状态)下,包括软件正常安装完成和每次对关键的配置文件进行正常的修改变更完成时,使用哈希算法按照保护文件列表中指明的文件进行计算,从而针对被保护软件相应的文件本身生成第二软件特征字符串。其中,在通过使用哈希算法针对文件本身生成第二软件特征字符串时,可通过一种字符串变化方法对直接由哈希算法生成的特征字符串进行变换,从而最终形成第二软件特征字符串,以提高第二软件特征字符串的抗破解程度。

待生成最终的第二软件特征字符串后,再进行第一图片的选取。即,步骤S002,由软件的界面中提取第一图片。也就是说,在软件正常安装完成或正常更新完成后,由软件的界面中直接提取辨识度较高的图片作为待加密处理的第一图片。

进而通过步骤S003,以第二软件特征字符串为加密密钥,对由软件的界面中提取的第一图片进行加密,获取相应的加密图片文件,并保存为加密图片文件。其中,以第二软件特征字符串为加密密钥,对第一图片进行加密时,具体可选用适当的加密算法来实现。

也就是说,在软件正常安装完成或正常更新完成后,通过由软件处于正常状态时的界面中提取辨识度较高的图片作为第一图片,并采用软件处于正常状态时生成的第二软件特征字符串作为加密密钥,对所提取的第一图片进行加密,形成为加密图片文件,为后续启动软件或定时刷新软件时进行软件是否被篡改提供了识别依据。并且,还实现了对就可能经常修改的关键的参数配置文件的保护,使得软件篡改识别方法更加全面,识别结果更加准确。并且,方法简单,易于实现。

相应的,本发明还提供了一种软件篡改识别系统。由于本发明提供的软件篡改识别系统的工作原理与本发明提供的软件篡改识别方法的原理相同或相似,因此重复之处不再赘述。

参见图3,作为本发明的软件篡改识别系统100的一具体实施例,其包括软件特征字符串生成模块110、识别图片解密模块120和识别图片刷新模块130。其中,软件特征字符串生成模块110,被配置为根据接收到的软件控制指令,生成相应的第一软件特征字符串。识别图片解密模块120,被配置为以第一软件特征字符串为解密密钥,对预存的加密图片文件进行解密,获取相应的解密图片文件。识别图片刷新模块130,被配置为加载解密图片文件,并判断解密图片文件是否能够正常加载。若是,则直接判断出软件未被篡改。若否,则直接判断出软件被篡改。

即,当软件被启动或定时刷新时,通过软件篡改识别系统100调用上述软件特征字符串生成模块110、识别图片解密模块120和识别图片刷新模块130三个模块,进行预存的解密图片文件的解密操作,从而根据解密获取的解密图片文件的加载状态来确定软件的当前状态,实现了软件是否被篡改的识别目的。同时,其识别软件是否被篡改不再依赖于独立的验证字符串,而是通过加密图片文件来进行识别,因此其识别过程更为直观。并且,其也不再需要人工比对验证字符串,因此识别过程也更加快捷。

并且,通过由识别图片刷新模块130进行解密图片文件是否能够在软件启动或定时刷新时正常加载的判断。当判断出解密图片文件能够正常加载时,则表明解密图片文件与加密图片文件相一致,即解密密钥与加密密钥相同或一致(当前生成的第一软件特征字符串与软件启动或定时刷新前最后一次正常安装或正常更新后的第二软件特征字符串相同),因此可直接判断出软件的当前状态为正常状态,未被篡改。此时可直接将解密后的图片文件显示在软件启动或定时刷新后的界面上。当判断出解密图片文件不能正常加载时,表明解密失败,此时解密图片文件与加密图片文件不同,即解密密钥与加密密钥不同或不一致,因此此时可直接判断出软件的当前状态为异常状态,软件可能被篡改。此时可直接显示告警提示信息或图片以提示用户,防止用户继续使用软件导致私人信息外泄的情况,保证了软件的安全使用。

进一步的,本发明的软件篡改识别系统100还包括解密图片显示模块(图中未示出)。该解密图片显示模块,被配置为在识别图片刷新模块130进行解密图片文件是否能够在软件启动或定时刷新时正常加载的判断时,判断出解密图片文件能够正常加载后,显示解密图片文件,从而能够通过人工根据所显示的解密图片文件的内容是否正常来判断软件是否被篡改。这也就进一步提高了软件篡改识别结果的精确性。

另外,参见图3,作为本发明的软件篡改识别系统100的另一具体实施例,其还包括图片提取模块140和识别图片加密模块150。其中,软件特征字符串生成模块110,还被配置为当软件正常安装完成或正常更新完成后,生成与软件相应的第二软件特征字符串。图片提取模块140,被配置为由软件的界面中提取第一图片。识别图片加密模块150,被配置为以第二软件特征字符串为密钥,对第一图片进行加密,获取相应的加密图片文件,并保存加密图片文件。

即,通过在本发明的软件篡改识别系统100中设置图片提取模块140和识别图片加密模块150,当软件正常安装完成或正常更新完成后,由软件篡改识别系统100直接调用图片提取模块140和识别图片加密模块150,并由识别图片加密模块150调用软件特征字符串生成模块110,从而实现由软件处于正常状态时的界面中提取辨识度较高的图片作为第一图片,并采用以软件处于正常状态时生成的第二软件特征字符串作为加密密钥,对所提取的第一图片进行加密,形成为加密图片文件,为后续启动软件或定时刷新软件时进行软件是否被篡改提供了识别依据。

其中,需要说明的是,软件特征字符串生成模块110,还被配置为当软件正常安装完成或正常更新完成后,生成与软件相应的第二软件特征字符串时,采用哈希算法对软件进行计算得到第二软件特征字符串。

具体的,软件特征字符串生成模块110包括保护文件列表生成单元和特征字符串生成单元(图中均未示出)。保护文件列表生成单元,被配置为当软件正常安装完成或正常更新完成后,确定软件的程序文件和配置文件,生成相应的保护文件列表。特征字符串生成单元,被配置为采用哈希算法对保护文件列表中的文件进行运算,生成相应的第二软件特征字符串。

其通过在软件特征字符串生成模块110中设置保护文件列表生成单元和特征字符串生成单元,实现了对就可能经常修改的关键的参数配置文件的保护,使得采用本发明的软件篡改识别系统100进行软件是否被篡改的识别时,识别结果更加全面和准确。并且,结构简单,易于实现。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1