发明名称 |
基于虚拟函数表替换的软件安全防护方法 |
摘要 |
本发明公开一种基于虚拟函数表替换的软件安全防护方法,属于软件安全领域。采用核心功能代码预加载与实际执行相分离的技术,保护程序不被恶意软件攻击。核心代码运用代理类(包含一系列虚函数)进行系统函数调用,然后其预先被加载入内存,获取其机器码,存入相应文件。实际执行时,程序开辟内存区域运行核心功能的机器码,并在当前环境下获取系统函数地址,用于替换代理类中调用的系统函数,确保程序的可移植性。本方法从根本上保护了程序的安全性,完成过程不基于其他安全工具,利用虚函数表机制,巧妙地降低了实现难度。 |
申请公布号 |
CN106126981A |
申请公布日期 |
2016.11.16 |
申请号 |
CN201610767154.2 |
申请日期 |
2016.08.30 |
申请人 |
电子科技大学 |
发明人 |
张小松;牛伟纳;刘路遥;王颖;曹思宇;冯有钲;唐海洋;宋珺 |
分类号 |
G06F21/12(2013.01)I;G06F21/14(2013.01)I |
主分类号 |
G06F21/12(2013.01)I |
代理机构 |
成都弘毅天承知识产权代理有限公司 51230 |
代理人 |
李春芳 |
主权项 |
基于虚拟函数表替换的软件安全防护方法,其特征在于,包括如下步骤,步骤1、根据预加载的核心功能函数特征,获取存放有核心二进制代码的加密文件;步骤2、在当前运行环境,寻找应用程序接口函数地址和动态链接库地址,将寻找到的应用程序接口函数地址和动态链接库地址,按虚函数表中虚函数存放结构保存于各个虚函数自定义的数据结构中;步骤3、定义代理类类型指针指向存放有应用程序接口函数地址和动态链接库地址的数据结构,获得重构的虚函数表数据结构;步骤4、获取运行内存,根据重构的虚函数表数据结构和加密文件,通过在运行内存中替换代理类类型指针的地址,加载核心二进制代码至运行内存,从而在加密防护下正常运行程序。 |
地址 |
611731 四川省成都市高新区(西区)西源大道2006号 |