[发明专利]一种标签函数的处理方法及装置有效
申请号: | 201710154795.5 | 申请日: | 2017-03-15 |
公开(公告)号: | CN106897588B | 公开(公告)日: | 2020-02-14 |
发明(设计)人: | 孙吉平;尹永政 | 申请(专利权)人: | 北京深思数盾科技股份有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/12;G06F9/445 |
代理公司: | 11348 北京鼎佳达知识产权代理事务所(普通合伙) | 代理人: | 王伟锋;刘铁生 |
地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 标签 函数 处理 方法 装置 | ||
本发明公开了一种标签函数的处理方法及装置,涉及计算机安全技术领域,主要目的是用以解决现有技术中标签函数删除不彻底的问题。所述方法包括:获取导入表中的标签函数信息,所述标签函数信息包括标签函数名称以及标签函数在内存中的地址;根据所述标签函数信息创建重定位函数块;当程序执行到所述标签函数时,将所述标签函数重定位至所述重定位函数块。本发明主要用于标签函数的处理。
技术领域
本发明涉及计算机安全领域,尤其是一种标签函数的处理方法及装置。
背景技术
在软件安全保护中,软件开发人员在软件开发的过程中,通常将需要保护的函数定义一个统一的标签,将标签添加到需要保护的函数中。软件开发人员通过导入动态库在程序中找到标签,然后对添加过标签的函数进行保护,完成后需要将标签函数进行删除。
然而,现有技术在对标签函数进行删除时,如果删除的不彻底,当程序运行到标签函数对应的位置时,程序会运行崩溃;另外,如果仅仅对标签函数简单的设置为nop指令,会给软件破解者留下找到关键代码的痕迹,从而无法保证软件的安全性。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种标签函数的处理方法及装置,用以解决现有技术中标签函数删除不彻底的问题。
本发明实施例的一方面,本发明提供了一种函数标签的处理方法,包括:
获取导入表中的标签函数信息,所述标签函数信息包括标签函数名称以及标签函数在内存中的地址;
根据所述标签函数信息创建重定位函数块;
当程序执行到所述标签函数时,将所述标签函数重定位至所述重定位函数块。
进一步地,所述获取导入表中的标签函数信息包括:
解析PE文件,获取导入表的位置;
根据所述导入表的位置获取所述导入表中的标签函数信息。
进一步地,所述根据所述标签函数信息创建重定位函数块包括:
在所述重定位函数块中添加相对虚拟地址,所述重定位函数块的相对虚拟地址为所述标签函数信息中标签函数在内存中的地址;
根据所述相对虚拟地址在所述重定位函数块中添加重定位信息。
进一步地,所述根据所述相对虚拟地址在所述重定位函数块中添加重定位信息包括:
根据所述相对虚拟地址获取所述标签函数的标签开始代码和标签结束代码;
根据所述标签开始代码和标签结束代码在所述重定位函数块中分别添加替代开始函数块和替代结束函数块。
进一步地,所述重定位函数块包括替代开始函数块和替代结束函数块,所述当程序执行到所述标签函数时,将所述标签函数信息重定位至所述重定位函数块包括:
当程序执行到所述标签函数的标签开始代码时,将所述标签函数重定位至所述重定位函数块中的替代开始函数块;
当程序执行到所述标签函数的标签结束代码时,将所述标签函数重定位至所述重定位函数块中的替代结束函数块。
进一步地,所述方法还包括:
删除所述导入表中的标签函数信息。
依据本发明实施例的另一方面,本发明实施例提供了一种标签函数的处理装置,包括:
获取单元,用于获取导入表中的标签函数信息,所述标签函数信息包括标签函数名称以及标签函数在内存中的地址;
创建单元,用于根据所述标签函数信息创建重定位函数块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思数盾科技股份有限公司,未经北京深思数盾科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710154795.5/2.html,转载请声明来源钻瓜专利网。