在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10303|回复: 40

主动防御缓冲区溢出攻击的硬件技术

[复制链接]
发表于 2011-9-18 12:40:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

       权利要求书

1、处理器指令编码可重定义的方法,其特征是:由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。

2、根据权利要求1所述的处理器指令编码可重定义的方法,其特征是:在处理器内部设置与该系统指令集中指令数量相同的指令编码寄存器,每个指令编码寄存器对应一条指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。

3、根据权利要求1所述的处理器指令编码可重定义的方法,其特征是:在处理器内部设置与该系统指令集中的操作码、地址码、功能码、寄存器编码和条件编码数量相同的指令编码寄存器,每个指令编码寄存器对应一个指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。

4、根据权利要求1所述的处理器指令编码可重定义的方法,其特征是:在处理器内部指令的运行是由微指令解释执行,若干条微指令构成一个微程序,一个微程序对应一条指令编码时,由用户自定义所有的指令编码定义,然后重新编写所有的微程序使其解释执行由用户自定义的指令编码定义,然后更新所有重新编写的微程序,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。

5、根据权利要求23所述的处理器指令编码可重定义的方法,其特征是:加载指令编码指令是为加载指令编码而在指令集中增加的一条指令,用来加载用户自定义的指令编码定义到所有的指令编码寄存器。




    说明书



处理器指令编码可重定义方法

技术领域

    本发明涉及一种处理器可重新定义指令编码的方法。

背景技术

    目前,公知的处理器的执行指令的方式是:处理器从PC(指令地址寄存器)指向的内存地址中取指、解码、执行、访存、写回、更新PC(设置下一条指令的地址),然后再取出下一条指令,这样逐条执行。在解码和执行时使用的指令编码为处理器预先定义好的。在执行中若程序段遭到缓冲区溢出攻击或其他方式的攻击修改,程序将执行本身无法预料的功能,比如病毒或木马等恶意程序。现有的处理器无法识别出遭到恶意修改的程序段,因而无法阻止缓冲区溢出攻击、病毒攻击和木马的攻击。

发明内容

    为了克服现有的处理器不能区分合法指令流与非法指令流的不足,本发明提供一种指令编码可重定义方法,该方法可将合法指令流与非法指令流阻隔开来。

本发明解决技术问题采用以下技术方案:

处理器指令编码可重定义的方法,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。

在处理器内部设置与该系统指令集中指令数量相同的指令编码寄存器,每个指令编码寄存器对应一条指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。

在处理器内部设置与该系统指令集中的操作码、地址码、功能码、寄存器编码和条件编码数量相同的指令编码寄存器,每个指令编码寄存器对应一个指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。

在处理器内部指令的运行是由微指令解释执行,若干条微指令构成一个微程序,一个微程序对应一条指令编码时,由用户自定义所有的指令编码定义,然后重新编写所有的微程序使其解释执行由用户自定义的指令编码定义,然后更新所有重新编写的微程序,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。

由上述方案可见,本发明由于由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,而且用户自定义指令编码可以有极多的组合,当遭到程序段被恶意代码修改时,外来的指令编码与处理器执行的指令编码不一致,导致外来的指令编码流无法正常执行,从而有效的阻止了缓冲区溢出攻击、病毒和木马的攻击。

具体实施方式

现有的计算机系统都是采用“一次编译到处运行”的方式,同一平台所有的处理器只执行一种已经预先定义的固定的指令编码,而本发明将处理器指令编码可重定义方法引入到计算机系统中,从而打破了上述方式。

以下结合几个实施例进一步说明本发明。

实施例1

在处理器内部设置与该系统指令集中指令数量相同的指令编码寄存器,每个指令编码寄存器对应一条指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。这样处理器就运行在由用户自定义的机器语言(指令编码)上;然后,将计算机程序的原机器指令翻译为用户自定义编码的机器指令,运行翻译为用户自定义编码的机器指令的程序。这样整个计算机系统就运行在一套全新的由用户自定义的机器语言(指令编码)上。

例如,当指令集中某一指令的原指令编码定义为01010101,对应于该指令编码定义,用户自定义的指令编码定义为11111111,然后由加载指令编码指令将该用户自定义的指令编码定义加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义。

实施例2

在处理器内部设置与该系统指令集中的操作码、地址码、功能码、寄存器编码和条件编码数量相同的指令编码寄存器,每个指令编码寄存器对应一个指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。这样处理器就运行在由用户自定义的机器语言(指令编码)上;然后,将计算机程序的原机器指令翻译为用户自定义编码的机器指令,运行翻译为用户自定义编码的机器指令的程序。这样整个计算机系统就运行在一套全新的由用户自定义的机器语言(指令编码)上。

例如,在处理器内部,当指令集中某一指令的原操作码为0101、地址码为0101,对应于该操作码及地址码,用户自定义操作码为1111、地址码为1111,由加载指令编码指令加载用户自定义的操作码、地址码到对应的指令编码寄存器,由用户自定义编码的指令编码定义取代处理器原有的指令编码定义,

实施例3

在处理器内部指令的运行是由微指令解释执行,若干条微指令构成一个微程序,一个微程序对应一条指令编码时,由用户自定义所有的指令编码定义,然后重新编写所有的微程序使其解释执行由用户自定义的指令编码定义,然后更新所有重新编写的微程序,使用由用户自定义的指令编码定义取代处理器预先定义的指令编码定义。使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。这样处理器就运行在由用户自定义的机器语言(指令编码)上;然后,将计算机程序的原机器指令翻译为用户自定义编码的机器指令,运行翻译为用户自定义编码的机器指令的程序。这样整个计算机系统就运行在一套全新的由用户自定义的机器语言(指令编码)上。

例如,在处理器内部,当指令集中某一指令的原操作码为0101、地址码为0101,对应于该操作码及地址码,用户自定义操作码为1111、地址码为1111,重新编写微程序使其解释执行由用户自定义的操作码、地址码,再更新用户自定义的操作码、地址码的微程序,既由用户自定义的操作码、地址码定义取代处理器原有的操作码、地址码定义。

由以上实施例可见,当计算机系统受到缓冲区溢出攻击、病毒攻击和木马攻击的时候,由于外来的程序段使用的机器语言(指令编码)与本地计算机系统的机器语言(指令编码)不一致,从而使得外来的程序段无法正常执行,有效的保护了本地计算机系统。



附言





在有段页式内存管理的系统上,也可以指定在不同的段、页内的运行不同的指令编码,这样就可以将每个程序段隔离开来运行,而且每个页都可以运行不同的指令编码。实施后的好处是将系统段、程序段隔离开来运行,有效保护系统不受缓冲区溢出攻击。

本人是第一次涉足处理器领域,有可笑之处请大笑。

欢迎大家拍砖。

联系方式 Email aeec-mark@163.com

          QQ 499186231

 楼主| 发表于 2011-9-21 10:27:08 | 显示全部楼层
那位大侠给评价一下
 楼主| 发表于 2011-9-25 09:00:22 | 显示全部楼层
我想听听大家的见解。
 楼主| 发表于 2011-10-2 11:08:32 | 显示全部楼层
没人回我的帖子吗?
发表于 2011-11-20 16:16:12 | 显示全部楼层
我觉得你拿个简单的CPU把你的想法整合进去举个例子可能更容易懂
 楼主| 发表于 2011-12-4 12:54:15 | 显示全部楼层
自己顶一下。
 楼主| 发表于 2011-12-15 13:06:14 | 显示全部楼层
自己顶一下。
 楼主| 发表于 2011-12-23 12:55:10 | 显示全部楼层
那位大侠给评价一下
发表于 2011-12-24 18:29:25 | 显示全部楼层
你这专利还没申请就发到网上了。。。
发表于 2011-12-24 18:38:04 | 显示全部楼层
“当遭到程序段被恶意代码修改时,外来的指令编码与处理器执行的指令编码不一致”
外来的指令编码和处理器执行的指令编码是指什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 15:07 , Processed in 0.042877 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表