一种标签函数的处理方法及装置制造方法及图纸

技术编号:15725039 阅读:45 留言:0更新日期:2017-06-29 12:11
本发明专利技术公开了一种标签函数的处理方法及装置,涉及计算机安全技术领域,主要目的是用以解决现有技术中标签函数删除不彻底的问题。所述方法包括:获取导入表中的标签函数信息,所述标签函数信息包括标签函数名称以及标签函数在内存中的地址;根据所述标签函数信息创建重定位函数块;当程序执行到所述标签函数时,将所述标签函数重定位至所述重定位函数块。本发明专利技术主要用于标签函数的处理。

【技术实现步骤摘要】
一种标签函数的处理方法及装置
本专利技术涉及计算机安全领域,尤其是一种标签函数的处理方法及装置。
技术介绍
在软件安全保护中,软件开发人员在软件开发的过程中,通常将需要保护的函数定义一个统一的标签,将标签添加到需要保护的函数中。软件开发人员通过导入动态库在程序中找到标签,然后对添加过标签的函数进行保护,完成后需要将标签函数进行删除。然而,现有技术在对标签函数进行删除时,如果删除的不彻底,当程序运行到标签函数对应的位置时,程序会运行崩溃;另外,如果仅仅对标签函数简单的设置为nop指令,会给软件破解者留下找到关键代码的痕迹,从而无法保证软件的安全性。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种标签函数的处理方法及装置,用以解决现有技术中标签函数删除不彻底的问题。本专利技术实施例的一方面,本专利技术提供了一种函数标签的处理方法,包括:获取导入表中的标签函数信息,所述标签函数信息包括标签函数名称以及标签函数在内存中的地址;根据所述标签函数信息创建重定位函数块;当程序执行到所述标签函数时,将所述标签函数重定位至所述重定位函数块。进一步地,所述获取导入表中的标签函数信息包括:解析PE文件,获取导入表的位置;根据所述导入表的位置获取所述导入表中的标签函数信息。进一步地,所述根据所述标签函数信息创建重定位函数块包括:在所述重定位函数块中添加相对虚拟地址,所述重定位函数块的相对虚拟地址为所述标签函数信息中标签函数在内存中的地址;根据所述相对虚拟地址在所述重定位函数块中添加重定位信息。进一步地,所述根据所述相对虚拟地址在所述重定位函数块中添加重定位信息包括:根据所述相对虚拟地址获取所述标签函数的标签开始代码和标签结束代码;根据所述标签开始代码和标签结束代码在所述重定位函数块中分别添加替代开始函数块和替代结束函数块。进一步地,所述重定位函数块包括替代开始函数块和替代结束函数块,所述当程序执行到所述标签函数时,将所述标签函数信息重定位至所述重定位函数块包括:当程序执行到所述标签函数的标签开始代码时,将所述标签函数重定位至所述重定位函数块中的替代开始函数块;当程序执行到所述标签函数的标签结束代码时,将所述标签函数重定位至所述重定位函数块中的替代结束函数块。进一步地,所述方法还包括:删除所述导入表中的标签函数信息。依据本专利技术实施例的另一方面,本专利技术实施例提供了一种标签函数的处理装置,包括:获取单元,用于获取导入表中的标签函数信息,所述标签函数信息包括标签函数名称以及标签函数在内存中的地址;创建单元,用于根据所述标签函数信息创建重定位函数块;重定位单元,用于当程序执行到所述标签函数时,将所述标签函数重定位至所述重定位函数块。进一步地,所述获取单元包括:解析模块,用于解析PE文件,获取导入表的位置;获取模块,用于根据所述导入表的位置获取所述导入表中的标签函数信息。进一步地,所述创建单元包括:第一添加模块,用于在所述重定位函数块中添加相对虚拟地址,所述重定位函数块的相对虚拟地址为所述标签函数信息中标签函数在内存中的地址;第二添加模块,用于根据所述相对虚拟地址在所述重定位函数块中添加重定位信息。进一步地,所述第二添加模块,具体用于根据所述相对虚拟地址获取所述标签函数的标签开始代码和标签结束代码;所述第二添加模块,具体还用于根据所述标签开始代码和标签结束代码在所述重定位函数块中分别添加替代开始函数块和替代结束函数块。进一步地,所述重定位函数块包括替代开始函数块和替代结束函数块,所述重定位单元包括:第一重定位模块,用于当程序执行到所述标签函数的标签开始代码时,将所述标签函数重定位至所述重定位函数块中的替代开始函数块;第二重定位模块,用于当程序执行到所述标签函数的标签结束代码时,将所述标签函数重定位至所述重定位函数块中的替代结束函数块。进一步地,所述装置还包括:删除单元,用于删除所述导入表中的标签函数信息。借由上述技术方案,本专利技术提供的一种标签函数的处理方法及装置,首先获取导入表的标签函数信息,这里的标签函数信息包括标签函数名称以及标签函数在内存中的地址,然后根据标签函数信息创建重定位函数块,当程序执行到标签函数时,将标签函数重定位至重定位函数模块,从而将标签函数彻底的删除,与现有技术中对标签函数设置nop指令方式的标签函数的处理方法相比,本专利技术实施例根据标签函数信息创建重定位函数块,在重定位函数块中添加重定位信息,以使得当程序执行到标签函数时,能够重定位至重定位函数模块,进而执行重定位函数模块中的代码,将标签函数彻底删除,保证了程序运行过程中的核心函数的安全性。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例提供的一种标签函数的处理方法流程示意图;图2示出了本专利技术实施例提供的另一种标签函数的处理方法流程示意图;图3示出了本专利技术实施例提供的一种标签函数的处理装置结构示意图;图4示出了本专利技术实施例提供的另一种标签函数的处理装置结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术实施例提供了一种标签函数的处理方法,如图1所示,该方法主要用于处理程序执行过程中的标签函数,具体步骤包括:101、获取导入表中的标签函数信息。其中,导入表中保存了包括但不限制于标签函数的名称和标签函数在内存中的地址IAT等连接动态链接库所必须的信息。这里的标签函数为添加过标签的导入函数,为导入函数当中比较核心的函数,标签函数在内存中的地址为标签函数实际所处的地址,只有当PE文件被装入内存的时候,Windows装载器才将动态链接库装入,并将调用标签函数的指令以及标签函数实际所处的地址联系起来。需要说明的是,为了更好的对核心函数进行保护,本专利技术实施例重点对导入函数当中添加过标签的标签函数进行处理,从而保证了在程序运行过程中的安全性。本专利技术实施例中的导入表实际是一个image_import_descriptor结构数组,每个结构包含PE文件导入函数的一个相关动态链接库DLL,举例来说,如果该PE文件从10个不同的动态链接库DLL中引入函数,那么这个数组就有10个成员。102、根据所述标签函数信息创建重定位函数块。其中,重定位函数块的相对虚拟地址RVA为标签函数信息中标签函数在内存中的地址,每个RVA指向一个字符串,指向导入模块的名字,进而根据重定位函数块的RVA能够获取到导入函数的位置。进一步地,在重定位函数块的相对虚拟地址RVA中添加重定位信息,在加载到内存后,就只需要根据重定位信息中的相对虚拟地址RVA将调用导本文档来自技高网...
一种标签函数的处理方法及装置

【技术保护点】
一种标签函数的处理方法,其特征在于,包括:获取导入表中的标签函数信息,所述标签函数信息包括标签函数名称以及标签函数在内存中的地址;根据所述标签函数信息创建重定位函数块;当程序执行到所述标签函数时,将所述标签函数重定位至所述重定位函数块。

【技术特征摘要】
1.一种标签函数的处理方法,其特征在于,包括:获取导入表中的标签函数信息,所述标签函数信息包括标签函数名称以及标签函数在内存中的地址;根据所述标签函数信息创建重定位函数块;当程序执行到所述标签函数时,将所述标签函数重定位至所述重定位函数块。2.根据权利要求1中的方法,其特征在于,所述获取导入表中的标签函数信息包括:解析PE文件,获取导入表的位置;根据所述导入表的位置获取所述导入表中的标签函数信息。3.根据权利要求1所述的方法,其特征在于,所述根据所述标签函数信息创建重定位函数块包括:在所述重定位函数块中添加相对虚拟地址,所述重定位函数块的相对虚拟地址为所述标签函数信息中标签函数在内存中的地址;根据所述相对虚拟地址在所述重定位函数块中添加重定位信息。4.根据权利要求3所述的方法,其特征在于,所述根据所述相对虚拟地址在所述重定位函数块中添加重定位信息包括:根据所述相对虚拟地址获取所述标签函数的标签开始代码和标签结束代码;根据所述标签开始代码和标签结束代码在所述重定位函数块中分别添加替代开始函数块和替代结束函数块。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述重定位函数块包括替代开始函数块和替代结束函数块,所述当程序执行到所述标签函数时,将所述标签函数信息重定位至所述重定位函数块包括:当程序执行到所述标签函数的标签开始代码时,将所述标签函数重定位至所述重定位函数块中的替代开始函数块;当程序执行到所述标签函数的标签结束代码时,将所述标签函数重定位至所述重定位函数块中的替代结束函数块。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:删除所述导入表中的标签函数信息。7.一种标签函数的处理装置,...

【专利技术属性】
技术研发人员:孙吉平尹永政
申请(专利权)人:北京深思数盾科技股份有限公司
类型:发明
国别省市:北京,11

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

1