一种软件验证方法和装置与流程

文档序号:29121705发布日期:2022-03-04 22:23阅读:97来源:国知局
一种软件验证方法和装置与流程

1.本发明涉及软件管理技术领域,具体涉及一种软件验证方法和装置。


背景技术:

2.随着知识产权保护工作的全面加强和完善,对工作设备上安装软件的合规性和标准性进行验证就显得十分重要。现有的验证方法主要采用基于系统注册表的验证模式和基于本地规则的扫描。
3.其中基于系统注册表的验证模式依赖于设备的操作系统,如对windows系统的扫描,不能在linux系统上使用,算法局限性大。


技术实现要素:

4.为了解决现有技术存在的验证依赖操作系统、算法局限性大的问题,本发明提供了一种软件验证方法和装置,其具有不依赖操作系统、操作更加灵活等特点。
5.根据本发明具体实施方式提供的一种软件验证方法,包括:
6.获取待验证软件的目录关键词和文件关键词,所述目录关键词和所述文件关键词为所述待验证软件合规版本特有的关键词;
7.获取目标设备中的目录名和所述目录名下的文件名;
8.对所述目标设备中与预设路径所对应的目录进行过滤,以排除所述目标设备中无效的目录和对应的文件;
9.对过滤后的结果进行所述目录关键词的匹配以及对所述文件名进行所述文件关键词的匹配,以生成相应的匹配结果;
10.基于所述匹配结果对所述待验证软件合法性进行验证。
11.进一步地,所述获取目标设备中的目录名和所述目录名下的文件名,包括:
12.对所述目标设备系统根目录进行递归操作,以获取所述根目录下的所有目录名;
13.对所述根目录和所述根目录下的子目录进行递归操作,以获取所述目录名下的所有文件名。
14.进一步地,所述获取目标设备中的目录名和所述目录名下的文件名,还包括:
15.基于系统指令获取所述目标设备的操作系统的名称和版本标识。
16.进一步地,所述获取目标设备中的目录名和所述目录名下的文件名之后,还包括:
17.对所述目录名与所述预设路径的相关性进行验证,以排除和所述待验证软件无关的目录名和文件名。
18.进一步地,所述获取待验证软件的目录关键词和文件关键词,包括:
19.基于所述待验证软件的分类类型,获取相应类型下所述待验证软件的所述目录关键词和所述文件关键词。
20.进一步地,所述对过滤后的结果进行所述目录关键词的匹配以及对所述文件名进行所述文件关键词的匹配,以生成相应的匹配结果,包括:
21.基于预设模糊匹配算法对包含有所述目录关键词的目录名和包含有所述文件关键词的文件名进行匹配。
22.进一步地,所述对过滤后的结果进行所述目录关键词的匹配以及对所述文件名进行所述文件关键词的匹配,以生成相应的匹配结果,还包括:
23.基于预设精确匹配算法对和所述目录关键词相同的目录名以及和所述文件关键词相同的文件名进行匹配。
24.进一步地,所述对所述目标设备中包含所述目录关键词或与所述目录关键词相同的目录名的对应目录进行过滤,以排除所述目标设备中无效的目录和对应的文件,包括:
25.对包含所述目录关键词或与所述目录关键词相同的目录名的对应目录进行再匹配,以确定所述目录中是否存在预设格式的文件;
26.若不存在则将所述目录排除。
27.进一步地,所述软件验证方法还包括:
28.获取所述待验证软件的版本号,基于所述版本号对所述待验证软件的版本的一致性进行验证。
29.根据本发明具体实施方式提供的一种软件验证装置,包括:
30.关键词模块,用于获取待验证软件的目录关键词和文件关键词,所述目录关键词和所述文件关键词为所述待验证软件合规版本特有的关键词;
31.读取模块,用于获取目标设备中的目录名和所述目录名下的文件名;
32.过滤模块,用于对所述目标设备中与预设路径所对应的目录进行过滤,以排除所述目标设备中无效的目录和对应的文件;
33.匹配模块,用于对过滤后的结果进行所述目录关键词的匹配以及对所述文件名进行所述文件关键词的匹配,以生成相应的匹配结果;以及
34.验证模块,用于基于所述匹配结果对所述待验证软件合法性进行验证。
35.本发明的有益效果为:通过获取待验证软件的目录关键词和文件关键词,其中目录关键词和文件关键词为待验证软件合规版本特有的关键词获取目标设备中的目录名和目录名下的文件名;对目标设备中与预设路径所对应的目录进行过滤,以排除目标设备中无效的目录和对应的文件,然后对目录名进行目录关键词的匹配以及对文件名进行文件关键词的匹配,以生成相应的匹配结果;最后基于匹配结果对待验证软件合法性进行验证。本发明实现了通过直接获取设备中的目录名和文件名,对其进行相应关键词的匹配进行敏感项的查找,从而确定合法性,使得软件合法性的验证不再依赖于对系统注册表的操作,可以在多种操作系统中直接进行应用,改进了依赖操作系统的局限性;并通过多种匹配相结合的方式对软件的合法性进行验证,从而提高了验证的准确度和可靠性。
附图说明
36.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
37.图1是根据一示例性实施例提供的软件验证方法的流程图;
38.图2是根据一示例性实施例提供的文件和目录收集的流程图;
39.图3是根据一示例性实施例提供的无关目录的排除流程图;
40.图4是根据一示例性实施例提供的关键词匹配的流程图;
41.图5是根据一示例性实施例提供的验证流程图;
42.图6是根据一示例性实施例提供的软件验证装置的原理图。
具体实施方式
43.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
44.参照图1所示,本发明的实施例提供了一种软件验证方法,具体包括以下步骤:
45.101、获取待验证软件的目录关键词和文件关键词,目录关键词和文件关键词为待验证软件合规版本特有的关键词;
46.因为软件合规版本中具有特定的目录和文件,这些文件和目录是非合规版本的软件所不具备的,因此可以将合规版本中相应的目录关键词和文件关键词作为判断待验证软件是否合规的标准。
47.102、获取目标设备中的目录名和目录名下的文件名;
48.实现对用户客户端中的所有文件和目录名称的收集,然后保存在本地的数据库中。其中主要分为系统类型的目录和文件以及系统中安装的软件的目录和对应的文件名,这样即可获得用户终端中所有的目录名和相应的文件名。
49.103、对所述目标设备中与预设路径所对应的目录进行过滤,以排除所述目标设备中无效的目录和对应的文件;
50.104、对过滤后的结果进行目录关键词的匹配以及对文件名进行文件关键词的匹配,以生成相应的匹配结果;
51.以目录关键词和文件关键词为标准,对所获取的用户终端中的文件名和目录名对应进行匹配,进而确定待验证软件中是否存在相应的关键词,并将相应的匹配的结果作为软件是否合规的判断结果。
52.105、基于匹配结果对待验证软件合法性进行验证。
53.可基于匹配结果对待验证软件的合规性进行验证。
54.因为用户终端中可能存在有卸载等操作遗留的相应软件的目录、文件内容,在根据匹配结果进行判断时就需要将这部分的干扰内容排除,进而使得最终的判断结果更加准确。
55.通过以上操作步骤实现了通过直接获取设备中的目录名和文件名,对其进行相应关键词的匹配进行敏感项的查找,从而确定合法性。使得软件合法性的验证不再依赖于对系统注册表的操作,可以在多种操作系统中直接进行应用,改进了依赖操作系统的局限性。并且采用查找预设文件和版本号验证相结合的方式对软件的合法性进行验证,从而提高了验证的准确度和可靠性。
56.作为上述实施例可行的实现方式,获取目标设备中的目录名和所述目录名下的文
件名,包括:
57.对目标设备系统根目录进行递归操作,以获取根目录下的所有目录名;
58.对根目录和根目录下的子目录进行递归操作,以获取目录名下的所有文件名。
59.具体的,参照图2所示,在进行扫描前基于待验证软件的分类类型,获取相应类型下待验证软件的目录关键词和文件关键词。例如可分为系统软件、办公软件、杀毒软件、设计软件及其他软件。然后针对系统类型属性。主要包括操作系统名称和操作系统版本的标识,先执行系统指令,通过相应的文件流获取到操作系统名称和操作系统版本标识,并进行符合度的匹配校验,以确定相匹配的系统查找方式。然后针对系统安装的软件,先加载系统的根目录然后采用递归的方法获取根目录下的所有目录,同时对所获取的目录进行递归操作,从而获取到所有的文件名,进而通过整个扫描过程得到文件名和目录名的集合,存入到数据库中备用。
60.并且为提高文件名和目录名扫描的效率,参照3所示在获取目标设备中的目录名和所述目录名下的文件名之后,还包括:
61.对目录名与预设路径所对应的目录进行验证,以排除和待验证软件无关的目录名和文件名。
62.该步骤可通过对每次扫描后得到的扫描结果的分析来获取预设路径,如果相关目录下存在相应关键词的可能性很低,那么将会对这些目录(包含系统文件目录和比较特殊的目录)进行排除标记,将其放置在规则文件配置中,在之后如果发现该目录存在问题,也可通过修改规则配置来动态修改要排除的目录。在每次扫描时会将规则配置加载至内存中,然后再进行文件名和目录名扫描收集的时候对这些目录进行遍历排除,排除的路径不仅仅局限在特定的目录中,配置文件目录下的子目录或文件也会一起进行排除,从而提高扫描的效率。例如系统c盘下的windows目录是系统目录,在扫描后如果没有发现异常的目录或者文件,那么之后就会把该目录排除在扫描之外,进而提高了扫描的效率。
63.可以理解的是,对于扫描规则的具体配置方式,本领域技术人员可根据具体适用情况进行设置,本发明在此不做限制。
64.在本发明的一些具体实施例中,对过滤后的结果进行所述目录关键词的匹配以及对所述文件名进行所述文件关键词的匹配,以生成相应的匹配结果,包括:
65.基于预设模糊匹配算法对包含有目录关键词的目录名和包含有文件关键词的文件名进行匹配。
66.还包括:
67.基于预设精确匹配算法对和目录关键词相同的目录名以及和文件关键词相同的文件名进行匹配。
68.参照图4所示,在进行匹配的时候会同时对文件关键词和目录关键词进行模糊匹配和精确匹配的操作。所采用的匹配算法是解决扫描结果匹配关键词的算法,主要是对目录名或文件名的关键词进行匹配来控制匹配精度,过滤无关的扫描结果,从而达到高效匹配。主要针对关键词出现频率的高低,可分为两个方面,一是模糊匹配算法,对收集到的目录模糊匹配后还需进行联合匹配的扫描,对文件的模糊匹配则要加上后缀名;二是精确匹配算法,目录和文件的关键词都需完全一致才可以,而且目录的话也需要再进行联合匹配才能最终确认。例如针对excel这个关键词,目录中带有excel的出现的频率比较高,所以必
须是精确匹配才能确认,特定格式的文件才是可疑的文件。
69.需要说明的是,本领域技术人员还可采用其他的匹配算法进行关键词的匹配,本发明在此不做限制。
70.其中上述实施例所采用联合匹配是对包含目录关键词或与目录关键词相同的目录名的对应目录进行再匹配,以确定目录中是否存在预设格式的文件;
71.若不存在则将目录排除。
72.具体的参照图5所示,主要采用两种实现方式,一是获取以上的精确匹配的结果,然后对相应的目录进行递归来获取子目录和子文件的集合,通过对子文件的后缀进行后缀名校验,来判断是否是可疑文件。例如用户终端中安装了某非正版软件,然后又进行了卸载,但是由于卸载不干净,残留有该软件的目录,那么在精确匹配的时候就会把该目录标记为可疑目录,这时在联合扫描的时候需要对该目录下的子目录和文件进行再匹配,看是否存在特定格式文件,如果有则是可疑目录,如果无则排除。
73.另一种则是获取待验证软件的版本号,基于版本号对待验证软件的版本的一致性进行验证。例如,对公司购买过授权的软件进行排查,防止有人使用未授权的软件进行办公,主要是对该软件目录进行版本排查,非指定版本则标记为可疑目录。例如对于wps软件,公司是买过该软件的正版授权,在对相应的用户终端进行扫描的时候发现该文件目录,之后会对该软件的版本号和该目录下的文件进行详细扫描,来判定是不是公司指定版本,进而实现以版本为判定标准对扫描结果进行进一步的改进,使得匹配结果更加的精准可靠。
74.在具体应用时可将扫描结果上传至云端,进而形成对全员扫描情况的总体统计,可包括部门人员总数、应检查人数及个人的扫描详细情况等。整个验证的过程基本在3分钟内完成,并可实时生成全员总览,支持多人以上同步扫描,在提高人工检查的效率和同时能够统一检查标准。
75.基于同样的设计思路,参照图6所示,本发明的实施例还提供了一种软件验证装置,该装置用于执行上述实施例所述的软件验证方法的各个步骤,包括:
76.关键词模块1,用于获取待验证软件的目录关键词和文件关键词,目录关键词和文件关键词为待验证软件合规版本特有的关键词;
77.读取模块2,用于获取目标设备中的目录名和所述目录名下的文件名;
78.过滤模块3,用于对目标设备中与预设路径所对应的目录进行过滤,以排除目标设备中无效的目录和对应的文件;
79.匹配模块4,用于对过滤后的结果进行目录关键词的匹配以及对文件名进行文件关键词的匹配,以生成相应的匹配结果;以及
80.验证模块5,用于基于匹配结果对待验证软件合法性进行验证。
81.上述实施例所提供的软件验证装置具有和软件验证方法相同的有益效果,本发明在此不再赘述。
82.本发明上述实施例所提供的软件验证方法和装置,采用基于关键词匹配,并融合收集、排除、匹配和联合扫描的多维度扫描在非正版软件的扫描中得到应用,改进扫描效果,提高准确度,并且改进了算法依赖操作系统的局限性,可以在多种操作系统进行应用。
83.对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某
些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
84.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
85.本技术各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,各实施例中记载的技术特征可以进行替换或者组合。
86.本技术各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
87.本技术所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
88.作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
89.另外,在本技术各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
90.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
91.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
92.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者
设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
93.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1