获取操作系统中可执行文件的方法和计算机可读存储介质与流程

文档序号:17442091发布日期:2019-04-17 04:54阅读:294来源:国知局
获取操作系统中可执行文件的方法和计算机可读存储介质与流程

本申请涉及信息处理领域,尤指一种获取操作系统中可执行文件的方法和计算机可读存储介质。



背景技术:

服务控制管理器(servicecontrolmanager,scm)是用于管理系统服务的管理工具。一般常用于windows系统,使用这个工具可以启动或停止服务;或者,设置服务是自动、手动启动或禁用;或者,查看某个服务的相关信息;设置服务由哪些类型的用户启动;或者,设置用户注销等。

为了提高windows系统的安全水准,并发布官方对操作系统配置项的指导意见,以scm知识库的形式发布了操作系统安全基线。在scm知识库中,发布者提供了大量关于配置项检查、修复的相关信息,可以用于windows系统的自动化检查和修复。

在相关技术中,利用windows系统中的secedit命令进行配置项的自动修复。例如,使用pol文件、inf文件等。上述文件是由secedit程序自身生成、用于系统配置项备份的。为了能够使secedit根据定制化需要修复系统中的配置项,必须通过其他手段生成相应的的输入文件。然而,目前修复的过程往往由人工执行命令的方式实现,这样做不但成本高,而且耗时长。



技术实现要素:

为了解决上述技术问题,本申请提供了一种获取操作系统中可执行文件的方法和计算机可读存储介质,能够自动完成可执行文件的生成。

为了达到本申请目的,本申请提供了一种获取操作系统中可执行文件的方法,包括:

在接收到windows操作系统的策略pol文件的生成请求后,根据所述生成请求,创建所述pol文件;

获取所述pol文件所需写入的安全基线项目的属性信息;

根据预先设置的编写策略,在所述pol文件中写入所述pol文件所需的安全基线项目的属性信息,得到所述生成请求所需的pol文件。

在一个示例性实施例中,所述pol文件所需写入的安全基线项目的属性信息,包括如下至少一个:

一个或至少两个安全基线项目的注册表路径信息;

一个或至少两个安全基线项目的数据类型;

一个或至少两个安全基线项目的值的长度;

一个或至少两个安全基线项目的值的数值大小。

在一个示例性实施例中,所述根据预先设置的编写策略,在所述pol文件中写入所述pol文件所需的安全基线项目的属性信息,得到所述生成请求所需的pol文件,包括:

在所述pol文件的内容中写入pol文件的文件头;

在所述pol文件的文件头后逐项写入所述安全基线项目的属性信息,并在写完一项或者至少两项安全基线项目的属性信息后,根据预先记录的所述pol文件中所需的安全基线项目,判断所述安全基线项目是否已经写完;

在判断所述安全基线项目已经写完后,确定得到的pol文件为所述生成请求所需的pol文件。

在一个示例性实施例中,所述在所述pol文件的文件头后逐项写入所述安全基线项目的属性信息,包括:

在所述pol文件的文件头后,按照如下方式写入每个安全基线项目的属性信息,包括:

写入每条属性信息的头部信息,其中所述每条属性信息的头部信息的内容为“[;”;

在所述属性信息的头部信息之后,写入所述注册表路径信息,并在末尾缀以符号“;”;

在写完注册表路径信息后,写入所述安全基线项目的数据类型,并在末尾缀以符号“;”;

在写完数据类型后,写入所述安全基线项目的值的长度,并在末尾缀以符号“;”;

在写完所述安全基线项目的值的长度后,根据所述安全基线项目的数据类型,写入所述安全基线项目的数值,并在末尾缀以符号“]”。

在一个示例性实施例中,所述根据所述安全基线项目的数据类型,写入所述安全基线项目的数值,包括:

判断所述安全基线项目的数据类型是否为数字;

如果所述安全基线项目的数据类型不是数字,则以字符串格式写入所述安全基线项目的数值;

如果所述安全基线项目的数据类型是数字,判断所述安全基线项目的数据类型是否为red_dword或red_qword;如果所述安全基线项目的数据类型是red_dword,则以red_dword格式写入所述安全基线项目的数值,并占有四个字节;如果所述安全基线项目的数据类型是red_qword,则以red_qword格式写入所述安全基线项目的数值,并占有四个字节。

为了达到本申请目的,本申请提供了一种计算机可读存储介质,包括存储器和处理器,其中所述存储器存储有计算机程序,所述处理器调用所述存储器中的计算机程序以实现如下操作,包括:

在接收到windows操作系统的策略pol文件的生成请求后,根据所述生成请求,创建所述pol文件;

获取所述pol文件所需写入的安全基线项目的属性信息;

根据预先设置的编写策略,在所述pol文件中写入所述pol文件所需的安全基线项目的属性信息,得到所述生成请求所需的pol文件。

在一个示例性实施例中,所述处理器在实现获取属性信息的操作中获取的所述pol文件所需写入的安全基线项目的属性信息,包括如下至少一个:

一个或至少两个安全基线项目的注册表路径信息;

一个或至少两个安全基线项目的数据类型;

一个或至少两个安全基线项目的值的长度;

一个或至少两个安全基线项目的值的数值大小。

在一个示例性实施例中,所述处理器在实现得到所述生成请求所需的pol文件的操作过程中所述处理器实现如下操作,包括:

在所述pol文件的内容中写入pol文件的文件头;

在所述pol文件的文件头后逐项写入所述安全基线项目的属性信息,并在写完一项或者至少两项安全基线项目的属性信息后,根据预先记录的所述pol文件中所需的安全基线项目,判断所述安全基线项目是否已经写完;

在判断所述安全基线项目已经写完后,确定得到的pol文件为所述生成请求所需的pol文件。

在一个示例性实施例中,所述处理器在实现在所述pol文件的文件头后逐项写入所述安全基线项目的属性信息过程中,所述处理器实现如下操作,包括:

在所述pol文件的文件头后,按照如下方式写入每个安全基线项目的属性信息,包括:

写入每条属性信息的头部信息,其中所述每条属性信息的头部信息的内容为“[;”;

在所述属性信息的头部信息之后,写入所述注册表路径信息,并在末尾缀以符号“;”;

在写完注册表路径信息后,写入所述安全基线项目的数据类型,并在末尾缀以符号“;”;

在写完数据类型后,写入所述安全基线项目的值的长度,并在末尾缀以符号“;”;

在写完所述安全基线项目的值的长度后,根据所述安全基线项目的数据类型,写入所述安全基线项目的数值,并在末尾缀以符号“]”。

在一个示例性实施例中,所述处理器在实现写入所述安全基线项目的数值的过程中所述处理器实现如下操作,包括:

判断所述安全基线项目的数据类型是否为数字;

如果所述安全基线项目的数据类型不是数字,则以字符串格式写入所述安全基线项目的数值;

如果所述安全基线项目的数据类型是数字,判断所述安全基线项目的数据类型是否为red_dword或red_qword;如果所述安全基线项目的数据类型是red_dword,则以red_dword格式写入所述安全基线项目的数值,并占有四个字节;如果所述安全基线项目的数据类型是red_qword,则以red_qword格式写入所述安全基线项目的数值,并占有四个字节。

本申请提供的实施例,在接收到windows操作系统的策略pol文件的生成请求后,根据所述生成请求,创建所述pol文件,并获取所述pol文件所需写入的安全基线项目的属性信息,再根据预先设置的编写策略,在所述pol文件中写入所述pol文件所需的安全基线项目的属性信息,得到所述生成请求所需的pol文件,实现自动生成pol文件的目的,克服了现有技术中人工编写成本高和耗时长的问题,提高了pol文件的生成效率,控制了pol文件的编写所需的维护成本。

本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。

图1为本申请提供的获取操作系统中可执行文件的方法的流程图;

图2为本申请提供的windows系统下pol文件的生成方法的流程图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1为本申请提供的获取操作系统中可执行文件的方法的流程图。图1所示方法包括:

步骤101、在接收到windows操作系统的策略pol文件的生成请求后,根据所述生成请求,创建所述pol文件;

在本步骤中,在pol文件的生成请求后,根据该生成请求,创建一个空白的pol文件,用以在该pol文件中写入信息;

其中,该生成请求的触发可以是需要对windows操作系统中配置项和/或配置值的修复,需要对应的pol文件

步骤102、获取所述pol文件所需写入的安全基线项目的属性信息;

所需写入的安全基线项目的属性信息可以为写入到pol文件的全部信息,或者,可以为写入到pol文件的部分信息;

在一个示例性实施例中,所述pol文件所需写入的安全基线项目的属性信息,包括如下至少一个:

一个或至少两个安全基线项目的注册表路径信息;

一个或至少两个安全基线项目的数据类型;

一个或至少两个安全基线项目的值的长度;

一个或至少两个安全基线项目的值的数值大小;

步骤103、根据预先设置的编写策略,在所述pol文件中写入所述pol文件所需的安全基线项目的属性信息,得到所述生成请求所需的pol文件。

在一个示例性实施例中,按照编写策略在空白的pol文件写入到所需的pol文件,包括pol文件的头部信息和各项安全基线项目的属性信息。

本申请提供的方法实施例,在接收到windows操作系统的策略pol文件的生成请求后,根据所述生成请求,创建所述pol文件,并获取所述pol文件所需写入的安全基线项目的属性信息,再根据预先设置的编写策略,在所述pol文件中写入所述pol文件所需的安全基线项目的属性信息,得到所述生成请求所需的pol文件,实现自动生成pol文件的目的,克服了现有技术中人工编写成本高和耗时长的问题,提高了pol文件的生成效率,控制了pol文件的编写所需的维护成本。

下面对本申请提供的方法作进一步说明:

在一个示例性实施例中,所述根据预先设置的编写策略,在所述pol文件中写入所述pol文件所需的安全基线项目的属性信息,得到所述生成请求所需的pol文件,包括:

在所述pol文件的内容中写入pol文件的文件头;

在所述pol文件的文件头后逐项写入所述安全基线项目的属性信息,并在写完一项或者至少两项安全基线项目的属性信息后,根据预先记录的所述pol文件中所需的安全基线项目,判断所述安全基线项目是否已经写完;

在判断所述安全基线项目已经写完后,确定得到的pol文件为所述生成请求所需的pol文件。

在本示例性实施例中,pol文件的文件头为0x0167655250;在完成文件头的编写后,获取所述pol文件待写入的安全基线项目,并逐条进行编写,在编写过程中,在完成预先设置的数量阈值的安全基线项目对应的属性信息编写后,根据预先获取的待写入的安全基线项目,判断所述安全基线项目是否编写完成,如果编写完成,则确定本次编写结束,得到所述生成请求所需的pol文件;可以设置在每编写1条属性信息后,判断是否已完成全部安全基线项目的写入。

按照pol文件的文件格式进行编写,保证自动生成的文件内容符合文件编写规范,保证生成的文件的正确性;另外,按照pol文件的编写规范,通过在编写过程中检测是否已完成全部安全基线项目的编写,确定是否完成pol文件的生成,简单方便。

在一个示例性实施例中,所述在所述pol文件的文件头后逐项写入所述安全基线项目的属性信息,包括:

在所述pol文件的文件头后,按照如下方式写入每个安全基线项目的属性信息,包括:

写入每条属性信息的头部信息,其中所述每条属性信息的头部信息的内容为“[;”;

在所述属性信息的头部信息之后,写入所述注册表路径信息,并在末尾缀以符号“;”;

在写完注册表路径信息后,写入所述安全基线项目的数据类型,并在末尾缀以符号“;”;

在写完数据类型后,写入所述安全基线项目的值的长度,并在末尾缀以符号“;”;

在写完所述安全基线项目的值的长度后,根据所述安全基线项目的数据类型,写入所述安全基线项目的数值,并在末尾缀以符号“]”。

在本示例性实施例中,通过上述编写顺序和编写规则,可以保证编写出的pol文件符合编写规范。

在一个示例性实施例中,所述根据所述安全基线项目的数据类型,写入所述安全基线项目的数值,包括:

判断所述安全基线项目的数据类型是否为数字;

如果所述安全基线项目的数据类型不是数字,则以字符串格式写入所述安全基线项目的数值;

如果所述安全基线项目的数据类型是数字,判断所述安全基线项目的数据类型是否为red_dword或red_qword;如果所述安全基线项目的数据类型是red_dword,则以red_dword格式写入所述安全基线项目的数值,并占有四个字节;如果所述安全基线项目的数据类型是red_qword,则以red_qword格式写入所述安全基线项目的数值,并占有四个字节。

在上述示例性实施例中,通过上述方式进行数值的写入,保证写入的准确性,且符合编写规范。

下面对本申请提供的方法进行说明:

pol文件是二进制文件,其中的注册表路径、reg_sz型注册表键值等字符串数据以宽字符队列形式表示,而reg_dword、reg_qword等数值型则直接以二进制数字表示。而在scm知识库中,pol型的exportinfo部分信息量极少,可用作数据类型的判断。

其中,pol型的exportinfo的信息如下:

图2为本申请提供的windows系统下pol文件的生成方法的流程图。图2所示方法包括:

pol型文件的头部是固定的,因此在整个流程的起始部分需要固定写入0x0167655250以作为文件头部。之后,需要依次遍历事先初始化到内存中的安全基线项目列表,在初始化过程中读取知识库中的注册表目录、键值名、值类型,以及基线项目建议值,并将注册表目录与键值名合并为注册表路径。之后,开始逐一写入待导出的安全基线项目。

首先,将固定项目头部“[;”、注册表路径、值类型、值长度依次写入到文件中,并以“;”分隔。最后,判断该项的值类型以写入目标值,如果是reg_sz或者reg_expand_sz,则直接将字符串以字符队列的形式写入文件;如果该项的值类型为数字类型,则继续判断,若为reg_dword,则以二字节数字写入数据,若为reg_qword,则以四字节数字写入数据。完成目标值的写入之后,最终写入“]”作为本条目的结束。

循环执行上述过程,直至遍历完待导出列表中的所有数据,即可完成整个文件生成步骤。

本申请提供的方法,利用读取自微软官方scm知识库的数据,生成可由windows系统secedit工具识别的pol文件,进而完成系统配置项配置值的自动化修复。

本申请提供一种计算机可读存储介质,包括存储器和处理器,其中所述存储器存储有计算机程序,所述处理器调用所述存储器中的计算机程序以实现如下操作,包括:

在接收到windows操作系统的策略pol文件的生成请求后,根据所述生成请求,创建所述pol文件;

获取所述pol文件所需写入的安全基线项目的属性信息;

根据预先设置的编写策略,在所述pol文件中写入所述pol文件所需的安全基线项目的属性信息,得到所述生成请求所需的pol文件。

在一个示例性实施例中,所述处理器在实现获取属性信息的操作中获取的所述pol文件所需写入的安全基线项目的属性信息,包括如下至少一个:

一个或至少两个安全基线项目的注册表路径信息;

一个或至少两个安全基线项目的数据类型;

一个或至少两个安全基线项目的值的长度;

一个或至少两个安全基线项目的值的数值大小。

在一个示例性实施例中,所述处理器在实现得到所述生成请求所需的pol文件的操作过程中所述处理器实现如下操作,包括:

在所述pol文件的内容中写入pol文件的文件头;

在所述pol文件的文件头后逐项写入所述安全基线项目的属性信息,并在写完一项或者至少两项安全基线项目的属性信息后,根据预先记录的所述pol文件中所需的安全基线项目,判断所述安全基线项目是否已经写完;

在判断所述安全基线项目已经写完后,确定得到的pol文件为所述生成请求所需的pol文件。

在一个示例性实施例中,所述处理器在实现在所述pol文件的文件头后逐项写入所述安全基线项目的属性信息过程中,所述处理器实现如下操作,包括:

在所述pol文件的文件头后,按照如下方式写入每个安全基线项目的属性信息,包括:

写入每条属性信息的头部信息,其中所述每条属性信息的头部信息的内容为“[;”;

在所述属性信息的头部信息之后,写入所述注册表路径信息,并在末尾缀以符号“;”;

在写完注册表路径信息后,写入所述安全基线项目的数据类型,并在末尾缀以符号“;”;

在写完数据类型后,写入所述安全基线项目的值的长度,并在末尾缀以符号“;”;

在写完所述安全基线项目的值的长度后,根据所述安全基线项目的数据类型,写入所述安全基线项目的数值,并在末尾缀以符号“]”。

在一个示例性实施例中,所述处理器在实现写入所述安全基线项目的数值的过程中所述处理器实现如下操作,包括:

判断所述安全基线项目的数据类型是否为数字;

如果所述安全基线项目的数据类型不是数字,则以字符串格式写入所述安全基线项目的数值;

如果所述安全基线项目的数据类型是数字,判断所述安全基线项目的数据类型是否为red_dword或red_qword;如果所述安全基线项目的数据类型是red_dword,则以red_dword格式写入所述安全基线项目的数值,并占有四个字节;如果所述安全基线项目的数据类型是red_qword,则以red_qword格式写入所述安全基线项目的数值,并占有四个字节。

本申请提供的实施例,在接收到windows操作系统的策略pol文件的生成请求后,根据所述生成请求,创建所述pol文件,并获取所述pol文件所需写入的安全基线项目的属性信息,再根据预先设置的编写策略,在所述pol文件中写入所述pol文件所需的安全基线项目的属性信息,得到所述生成请求所需的pol文件,实现自动生成pol文件的目的,克服了现有技术中人工编写成本高和耗时长的问题,提高了pol文件的生成效率,控制了pol文件的编写所需的维护成本。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

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