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

文档序号:6561609阅读:1013来源:国知局
专利名称:处理器指令编码可重定义的方法
技术领域
本发明涉及一种处理器可重新定义指令编码的方法。
背景技术
目前,公知的处理器的执行指令的方式是处理器从PC (指令地址寄存器)指向的内存地址中取指、解码、执行、访存、写回、更新PC (设置下一条指令的地址),然后再取出下一条指令,这样逐条执行。在解码和执行时使用的指令编码为处理器预先定义好的。在执行中若程序段遭到缓冲区溢出攻击或其他方式的攻击修改,程序将执行本身无法预料的功能,比如病毒或木马等恶意程序。现有的处理器无法识别出遭到恶意修改的程序段,因而无法阻止缓冲区溢出攻击、病毒攻击和木马的攻击。

发明内容
为了克服现有的处理器不能区分合法指令流与非法指令流的不足,本发明提供一种指令编码可重定义方法,该方法可将合法指令流与非法指令流阻隔开来。本发明解决技术问题采用以下技术方案
处理器指令编码可重定义的方法,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。在处理器内部设置与该系统指令集中指令数量相同的指令编码寄存器,每个指令编码寄存器对应一条指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。在处理器内部设置与该系统指令集中的操作码、地址码、功能码、寄存器编码和条件编码数量相同的指令编码寄存器,每个指令编码寄存器对应一个指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。在处理器内部指令的运行是由微指令解释执行,若干条微指令构成一个微程序, 一个微程序对应一条指令编码时,由用户自定义所有的指令编码定义,然后重新编写所有的微程序使其解释执行由用户自定义的指令编码定义,然后更新所有重新编写的微程序, 由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。由上述方案可见,本发明由于由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,而且用户自定义指令编码可以有极多的组合,当遭到程序段被恶意代码修改时,外来的指令编码与处理器执行的指令编码不一致,导致外来的指令编码流无法正常执行,从而有效的阻止了缓冲区溢出攻击、病毒和木马的攻击。
具体实施例方式以下结合几个实施例进一步说明本发明。实施例1
在处理器内部设置与该系统指令集中指令数量相同的指令编码寄存器,每个指令编码寄存器对应一条指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。这样处理器就运行在由用户自定义的机器语言(指令编码)上;然后,将计算机程序的原机器指令翻译为用户自定义编码的机器指令,运行翻译为用户自定义编码的机器指令的程序。这样整个计算机系统就运行在一套全新的由用户自定义的机器语言(指令编码)上。例如,当指令集中某一指令的原指令编码定义为01010101,对应于该指令编码定义,用户自定义的指令编码定义为11111111,然后由加载指令编码指令将该用户自定义的指令编码定义加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义。实施例2
在处理器内部设置与该系统指令集中的操作码、地址码、功能码、寄存器编码和条件编码数量相同的指令编码寄存器,每个指令编码寄存器对应一个指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。这样处理器就运行在由用户自定义的机器语言(指令编码)上;然后,将计算机程序的原机器指令翻译为用户自定义编码的机器指令,运行翻译为用户自定义编码的机器指令的程序。这样整个计算机系统就运行在一套全新的由用户自定义的机器语言(指令编码) 上。例如,在处理器内部,当指令集中某一指令的原操作码为0101、地址码为0101,对应于该操作码及地址码,用户自定义操作码为1111、地址码为1111,由加载指令编码指令加载用户自定义的操作码、地址码到对应的指令编码寄存器,由用户自定义编码的指令编码定义取代处理器原有的指令编码定义,
实施例3
在处理器内部指令的运行是由微指令解释执行,若干条微指令构成一个微程序,一个微程序对应一条指令编码时,由用户自定义所有的指令编码定义,然后重新编写所有的微程序使其解释执行由用户自定义的指令编码定义,然后更新所有重新编写的微程序,使用由用户自定义的指令编码定义取代处理器预先定义的指令编码定义。使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。这样处理器就运行在由用户自定义的机器语言(指令编码)上;然后,将计算机程序的原机器指令翻译为用户自定义编码的机器指令,运行翻译为用户自定义编码的机器指令的程序。这样整个计算机系统就运行在一套全新的由用户自定义的机器语言(指令编码)上。例如,在处理器内部,当指令集中某一指令的原操作码为0101、地址码为0101,对应于该操作码及地址码,用户自定义操作码为1111、地址码为1111,重新编写微程序使其解释执行由用户自定义的操作码、地址码,再更新用户自定义的操作码、地址码的微程序, 既由用户自定义的操作码、地址码定义取代处理器原有的操作码、地址码定义。由以上实施例可见,当计算机系统受到缓冲区溢出攻击、病毒攻击和木马攻击的时候,由于外来的程序段使用的机器语言(指令编码)与本地计算机系统的机器语言(指令编码)不一致,从而使得外来的程序段无法正常执行,有效的保护了本地计算机系统。现有的计算机系统都是采用“一次编译到处运行”的方式,同一平台所有的处理器只执行一种已经预先定义的固定的指令编码,而本发明将处理器指令编码可重定义方法引入到计算机系统中,从而打破了上述方式。权利要求
1.处理器指令编码可重定义的方法,其特征是由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。
2.根据权利要求1所述的处理器指令编码可重定义的方法,其特征是在处理器内部设置与该系统指令集中指令数量相同的指令编码寄存器,每个指令编码寄存器对应一条指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。
3.根据权利要求1所述的处理器指令编码可重定义的方法,其特征是在处理器内部设置与该系统指令集中的操作码、地址码、功能码、寄存器编码和条件编码数量相同的指令编码寄存器,每个指令编码寄存器对应一个指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义, 使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。
4.根据权利要求1所述的处理器指令编码可重定义的方法,其特征是在处理器内部指令的运行是由微指令解释执行,若干条微指令构成一个微程序,一个微程序对应一条指令编码时,由用户自定义所有的指令编码定义,然后重新编写所有的微程序使其解释执行由用户自定义的指令编码定义,然后更新所有重新编写的微程序,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。
5.根据权利要求2或3所述的处理器指令编码可重定义的方法,其特征是加载指令编码指令是为加载指令编码而在指令集中增加的一条指令,用来加载用户自定义的指令编码定义到所有的指令编码寄存器。
全文摘要
处理器指令编码可重定义的方法,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。本发明由于由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,而且用户自定义指令编码可以有极多的组合,当遭到程序段被恶意代码修改时,外来的指令编码与处理器执行的指令编码不一致,导致外来的指令编码流无法正常执行,从而有效的阻止了缓冲区溢出攻击、病毒和木马的攻击。
文档编号G06F21/22GK102231180SQ20111021609
公开日2011年11月2日 申请日期2011年7月30日 优先权日2011年7月30日
发明者张鹏 申请人:张鹏
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1