一种程序模块安全检测方法及装置制造方法及图纸

技术编号:20118567 阅读:21 留言:0更新日期:2019-01-16 12:12
本发明专利技术公开了一种程序模块安全检测方法及装置,从目标程序模块中解析出导入函数名称列表和字符串列表;判断导入函数名称列表中是否存在与日志输出相关的导入函数,如果存在,生成第一判断结果,否则生成第二判断结果;判断导入函数名称列表中是否存在预定核心函数,如果存在,生成第三判断结果,否则生成第四判断结果;判断字符串列表中是否包含预定字符串,如果包含,生成第五判断结果,否则生成第六判断结果;如果生成第一判断结果、第三判断结果、第五判断结果中的至少一种判断结果,则确定目标程序模块不安全。本发明专利技术解决了现有技术导致对应用程序的组件检测可靠性不高的技术问题。

A Method and Device for Safety Detection of Program Modules

The invention discloses a program module security detection method and device, which parses the list of imported function names and string lists from the target program module, determines whether there is an imported function in the list of imported function names related to log output, generates a first judgment result if there is one, or generates a second judgment result; and determines whether there is a list of imported function names. The predetermined core function generates the third judgment result if it exists, otherwise generates the fourth judgment result; decides whether the string list contains the predetermined string, if it contains, generates the fifth judgment result, otherwise generates the sixth judgment result; if generates at least one judgment result of the first judgment result, the third judgment result and the fifth judgment result, determines the target range. Sequence modules are not secure. The invention solves the technical problem of low reliability of component detection of application program caused by the prior technology.

【技术实现步骤摘要】
一种程序模块安全检测方法及装置
本专利技术涉及应用组件的安全检测领域,尤其涉及一种程序模块安全检测方法。
技术介绍
目前,对于应用程序来说,会进行组件化开发,每一个应用程序的组件是一个独立的程序模块,使用组件化可以使得组件更易于测试及更新。同时也会把一些功能相对于独立的或者是基础功能独立的使用一个程序模块,其他模块则可以通过调用该基础模块的功能来完成更为复杂的功能。而对于一些比较重要的程序模块则是需要对其开发的代码进行最终的安全功能测试。查看其是否有存在一些不安全的漏洞等。例如对于登录模块,其对用户的密码信息的保护是比较重要的,不能轻易的被病毒盗取其账户和密码信息。查看比较重要的安全模块是否存在安全漏洞。目前,从源代码级别对组件进行检测,但是,由于有的时候使用的是其他人员开发的模块,则获取不到源代码,导致对应用程序的组件检测可靠性不高。
技术实现思路
本专利技术实施例通过提供一种程序模块安全检测方法及装置,解决了现有技术导致对应用程序的组件检测可靠性不高的技术问题。第一方面,本专利技术实施例提供的一种程序模块安全检测方法,包括:从目标程序模块中解析出导入函数名称列表和字符串列表,其中,所述导入函数名称列表包含导入至所述目标程序模块中的系统函数的名称,所述字符串列表中包含所述目标程序模块中的所有字符串;判断所述导入函数名称列表中是否存在与日志输出相关的导入函数,如果判断出所述导入函数名称列表中存在与所述日志输出相关的导入函数,生成第一判断结果,否则生成第二判断结果;判断所述导入函数名称列表中是否存在预定核心函数,如果判断出所述导入函数名称列表中存在所述预定核心函数,生成第三判断结果,否则生成第四判断结果;判断所述字符串列表中是否包含预定字符串,如果判断出所述字符串列表中包含所述预定字符串,生成第五判断结果,否则生成第六判断结果;如果生成所述第一判断结果、所述第三判断结果、所述第五判断结果中的至少一种判断结果,则确定所述目标程序模块不安全。可选的,所述从目标程序模块中解析出导入函数名称列表和字符串列表,包括:将所述目标程序模块的模块头部信息加载至内存中,其中,所述模块头部信息中包括对所述目标程序模块中所存在的各个段信息的索引;根据所述索引,将所述各个段信息加载至所述内存中;从所述各个段信息中,提取所述各个段信息的数据内容;从所述各个段信息的数据内容中,提取所述导入函数名称列表和所述字符串列表。可选的,如果所述日志输出相关的导入函数为用于格式化输出字符串至终端的格式化输出函数,所述判断所述导入函数名称列表中是否存在与日志输出相关的导入函数,包括:从所述导入函数名称列表中读取第一个导入函数的名称;判断当前读取到的导入函数的名称是否为所述格式化输出函数的名称;如果是,生成所述第一判断结果,否则,继续从所述导入函数名称列表中读取下一个导入函数的名称,并返回所述判断当前读取到的导入函数的名称是否为所述格式化输出函数的名称的步骤;如果从所述导入函数名称列表读取到的最后一个导入函数的名称不是所述格式化输出函数的名称,则生成所述第二判断结果。可选的,所述预定核心函数包括多个,所述判断所述导入函数名称列表中是否存在预定核心函数,以生成第二判断结果,包括:从所述导入函数名称列表中读取第一个导入函数的名称;判断当前读取到的导入函数的名称是否属于所述预定核心函数;如果是,生成所述第三判断结果,否则,继续从所述导入函数名称列表中读取下一个导入函数的名称,并返回所述判断当前读取到的导入函数的名称是否属于所述预定核心函数的步骤;如果从所述导入函数名称列表读取到的最后一个导入函数的名称不属于所述预定核心函数,则生成所述第四判断结果。可选的,所述预定核心函数,包括:用于格式化输出字符串至缓冲区的函数、用于返回字符串长度的函数中的一种或多种。可选的,所述判断所述字符串列表中是否包含预定字符串,包括:从所述预定字符串中读取第一个字符串;判断当前读取到的字符串是否属于所述预定字符串;如果是,生成所述第五判断结果,否则,继续从所述字符串列表中读取下一个字符串,并返回所述判断当前读取到的字符串是否属于所述预定字符串的步骤;如果从所述字符串列表中读取到的最后一个字符串不属于所述预定字符串,则生成所述第六判断结果。可选的,所述预定字符串,包括:标示密码的字符串、标示密钥的字符串、标示加密操作的字符串、标示解密操作的字符串、标示加密标准的字符串、标示加密算法类型的字符串中的一种或多种。第二方面,本专利技术实施例提供了一种程序模块安全检测装置,包括:解析单元,用于从目标程序模块中解析出导入函数名称列表和字符串列表,其中,所述导入函数名称列表包含导入至所述目标程序模块中的系统函数的名称,所述字符串列表中包含所述目标程序模块中的所有字符串;日志输出判断单元,用于判断所述导入函数名称列表中是否存在与日志输出相关的导入函数,如果判断出所述导入函数名称列表中存在与所述日志输出相关的导入函数,则生成第一判断结果,否则生成第二判断结果;核心函数判断单元,用于判断所述导入函数名称列表中是否存在预定核心函数,如果判断出所述导入函数名称列表中存在所述预定核心函数,则生成第三判断结果,否则生成第四判断结果;字符串判断单元,用于判断所述字符串列表中是否包含预定字符串,如果判断出所述字符串列表中包含所述预定字符串,则生成第五判断结果,否则生成第六判断结果;安全性确定单元,用于如果生成所述第一判断结果、所述第三判断结果、所述第五判断结果中的至少一种判断结果,则确定所述目标程序模块不安全。可选的,所述解析单元,具体用于:将所述目标程序模块的模块头部信息加载至内存中,其中,所述模块头部信息中包括对所述目标程序模块中所存在的各个段信息的索引;根据所述索引,将所述各个段信息加载至所述内存中;从所述各个段信息中,提取所述各个段信息的数据内容;从所述各个段信息的数据内容中,提取所述导入函数名称列表和所述字符串列表。可选的,如果所述日志输出相关的导入函数为用于格式化输出字符串至终端的格式化输出函数,所述日志输出判断单元,具体用于:从所述导入函数名称列表中读取第一个导入函数的名称;判断当前读取到的导入函数的名称是否为所述格式化输出函数的名称;如果是,生成所述第一判断结果;否则,继续从所述导入函数名称列表中读取下一个导入函数的名称,并返回所述判断当前读取到的导入函数的名称是否为所述格式化输出函数的名称的步骤;如果从所述导入函数名称列表读取到的最后一个导入函数的名称不是所述格式化输出函数的名称,则生成所述第二判断结果。可选的,所述预定核心函数包括多个,所述核心函数判断单元,具体用于:从所述导入函数名称列表中读取第一个导入函数的名称;判断当前读取到的导入函数的名称是否属于所述预定核心函数;如果是,生成所述第三判断结果;否则,继续从所述导入函数名称列表中读取下一个导入函数的名称,并返回所述判断当前读取到的导入函数的名称是否属于所述预定核心函数的步骤;如果从所述导入函数名称列表读取到的最后一个导入函数的名称不属于所述预定核心函数,则生成所述第四判断结果。可选的,所述预定核心函数,包括:用于格式化输出字符串至缓冲区的函数、用于返回字符串长度的函数中的一种或多种。可选的,所述字符串判断单元,包括:从所述预定字符串中读取本文档来自技高网...

【技术保护点】
1.一种程序模块安全检测方法,其特征在于,包括:从目标程序模块中解析出导入函数名称列表和字符串列表,其中,所述导入函数名称列表包含导入至所述目标程序模块中的系统函数的名称,所述字符串列表中包含所述目标程序模块中的所有字符串;判断所述导入函数名称列表中是否存在与日志输出相关的导入函数,如果判断出所述导入函数名称列表中存在与所述日志输出相关的导入函数,生成第一判断结果,否则生成第二判断结果;判断所述导入函数名称列表中是否存在预定核心函数,如果判断出所述导入函数名称列表中存在所述预定核心函数,生成第三判断结果,否则生成第四判断结果;判断所述字符串列表中是否包含预定字符串,如果判断出所述字符串列表中包含所述预定字符串,生成第五判断结果,否则生成第六判断结果;如果生成所述第一判断结果、所述第三判断结果、所述第五判断结果中的至少一种判断结果,则确定所述目标程序模块不安全。

【技术特征摘要】
1.一种程序模块安全检测方法,其特征在于,包括:从目标程序模块中解析出导入函数名称列表和字符串列表,其中,所述导入函数名称列表包含导入至所述目标程序模块中的系统函数的名称,所述字符串列表中包含所述目标程序模块中的所有字符串;判断所述导入函数名称列表中是否存在与日志输出相关的导入函数,如果判断出所述导入函数名称列表中存在与所述日志输出相关的导入函数,生成第一判断结果,否则生成第二判断结果;判断所述导入函数名称列表中是否存在预定核心函数,如果判断出所述导入函数名称列表中存在所述预定核心函数,生成第三判断结果,否则生成第四判断结果;判断所述字符串列表中是否包含预定字符串,如果判断出所述字符串列表中包含所述预定字符串,生成第五判断结果,否则生成第六判断结果;如果生成所述第一判断结果、所述第三判断结果、所述第五判断结果中的至少一种判断结果,则确定所述目标程序模块不安全。2.如权利要求1所述的程序模块安全检测方法,其特征在于,所述从目标程序模块中解析出导入函数名称列表和字符串列表,包括:将所述目标程序模块的模块头部信息加载至内存中,其中,所述模块头部信息中包括对所述目标程序模块中所存在的各个段信息的索引;根据所述索引,将所述各个段信息加载至所述内存中;从所述各个段信息中,提取所述各个段信息的数据内容;从所述各个段信息的数据内容中,提取所述导入函数名称列表和所述字符串列表。3.如权利要求1所述的程序模块安全检测方法,其特征在于,如果所述日志输出相关的导入函数为用于格式化输出字符串至终端的格式化输出函数,所述判断所述导入函数名称列表中是否存在与日志输出相关的导入函数,包括:从所述导入函数名称列表中读取第一个导入函数的名称;判断当前读取到的导入函数的名称是否为所述格式化输出函数的名称;如果是,生成所述第一判断结果,否则,继续从所述导入函数名称列表中读取下一个导入函数的名称,并返回所述判断当前读取到的导入函数的名称是否为所述格式化输出函数的名称的步骤;如果从所述导入函数名称列表读取到的最后一个导入函数的名称不是所述格式化输出函数的名称,则生成所述第二判断结果。4.如权利要求1所述的程序模块安全检测方法,其特征在于,所述预定核心函数包括多个,所述判断所述导入函数名称列表中是否存在预定核心函数,包括:从所述导入函数名称列表中读取第一个导入函数的名称;判断当前读取到的导入函数的名称是否属于所述预定核心函数;如果是,生成所述第三判断结果,否则,继续从所述导入函数名称列表中读取下一个导入函数的名称,并返回...

【专利技术属性】
技术研发人员:周志刚张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1