[发明专利]一种非立即数跳转的保护方法及对应计算装置在审
申请号: | 201810597845.1 | 申请日: | 2018-06-12 |
公开(公告)号: | CN110597571A | 公开(公告)日: | 2019-12-20 |
发明(设计)人: | 杨力祥 | 申请(专利权)人: | 杨力祥 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100081 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 立即数 跳转指令 间接转移指令 信息安全领域 目标地址 攻击 跳转 改写 增设 信息技术 应用 检查 | ||
1.一种非立即数跳转的保护方法,其特征在于:将非立即数跳转指令改写为立即数跳转指令的方式,使跳转地址确定。
2.根据权利要求1所述的方法,其特征在于:所述立即数跳转指令的方式是指通过条件判断,选择函数进行调用的方式。
3.一种非立即数跳转的保护方法,其特征在于:通过在非立即数跳转指令执行前进行检查的方式,防止非立即数跳转指令访问非法地址。
4.根据权利要求3所述的方法,其特征在于:所述进行检查是通过在非立即数跳转指令执行前添加用于完成“对跳转目标地址进行判断”这一逻辑的指令,检查跳转的地址是否在指定的地址集合内。
5.根据权利要求4所述的方法,其特征在于:如果所述跳转的地址处于其可能跳转到的全部地址集合内,则允许执行非立即数跳转指令,否则,则进入异常处理流程。
6.根据权利要求3-5之一所述的方法,其特征在于:将所述非立即数跳转指令可能跳转到的地址集合中的每一个地址,对应的生成一个对应的随机ID值,ID在整个整数范围内随机取值,且要确保每个ID值彼此不相同,构建一个ID值与跳转目标地址的对照表,并用ID值给指针变量赋值。
7.根据权利要求6所述的方法,其特征在于:所述“对跳转目标地址进行判断”的逻辑包括根据ID值,在“ID值与跳转目标对照表”中,找到匹配的跳转目标地址值,如果找不到跳转目标地址值,进入异常处理流程,如果找到匹配的跳转目标地址值,就返回该值作为跳转指令的跳转目标地址值。
8.一种非立即数跳转的保护方法,其特征在于:将所述非立即数跳转指令可能跳转到的地址集合中的每一个地址,对应的生成一个随机ID值,ID在整个整数范围内随机取值,且要确保每个ID值彼此不相同,构建一个ID值与跳转目标地址的对照表,并用ID值给指针变量赋值。
9.一种非立即数跳转的保护方法,其特征在于:增设一种非立即数跳转指令,CPU执行此指令时,自动识别是否跳转到指定的地址集合内,并作出处理。
10.根据权利要求9所述的方法,其特征在于:所述非立即数跳转指令不再用跳转地址,而是用ID值来标识跳转目标,且所述ID值与跳转的目标地址建立一一对应关系,并记录于一个对照表内。
11.一种计算装置,其特征在于:包括一种非立即数跳转指令,所述指令能够自动识别是否跳转到指定的地址集合内,并作出处理。
12.一种计算装置,其特征在于:使用权利要求1-10之一所述的方法。
13.一种编译器的改进方法,其特征在于:在编译源文件时,自动生成非立即数跳转指令前的目标地址判断指令,以确保跳转的地址在指定的地址集合内。
14.根据权利要求13所述的方法,其特征在于:在语法分析过程中,编译器在识别到具有“将函数地址赋值给指针变量”以及“调用钩子函数”的语法现象时,在语法树中进行标识,这些标识的信息一直保持到目标代码生成阶段,根据这些信息,就可以识别出非立即数跳转指令的地址位置,以及可能跳转到的地址集合,并据此,在生成非立即数跳转指令前,自动添加对跳转地址进行检查的逻辑对应的指令。
15.根据权利要求13所述的方法,其特征在于:在语法分析过程中,编译器在识别到具有“将函数地址赋值给指针变量”以及“调用钩子函数”的语法现象时,在语法树中进行标识,这些标识的信息一直保持到目标代码生成阶段,在目标代码生成阶段,将统计出来的可能跳转到的地址集合中每一个地址,对应的生成一个对应的随机ID值,ID在整个整数范围内随机取值,要确保每个ID值彼此不相同,构建一个ID值与跳转目标地址的对照表,并用ID值给指针变量赋值,并据此,在生成非立即数跳转指令前,自动添加对跳转地址进行检查的逻辑对应的指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杨力祥,未经杨力祥许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810597845.1/1.html,转载请声明来源钻瓜专利网。