CN102231180B - 处理器指令编码可重定义的方法 - Google Patents
处理器指令编码可重定义的方法 Download PDFInfo
- Publication number
- CN102231180B CN102231180B CN201110216096.1A CN201110216096A CN102231180B CN 102231180 B CN102231180 B CN 102231180B CN 201110216096 A CN201110216096 A CN 201110216096A CN 102231180 B CN102231180 B CN 102231180B
- Authority
- CN
- China
- Prior art keywords
- instruction
- encoding
- user
- processor
- instruction encoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
处理器指令编码可重定义的方法,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。本发明由于由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,而且用户自定义指令编码可以有极多的组合,当遭到程序段被恶意代码修改时,外来的指令编码与处理器执行的指令编码不一致,导致外来的指令编码流无法正常执行,从而有效的阻止了缓冲区溢出攻击、病毒和木马的攻击。
Description
技术领域
本发明涉及一种处理器可重新定义指令编码的方法。
背景技术
目前,公知的处理器的执行指令的方式是:处理器从PC(指令地址寄存器)指向的内存地址中取指、解码、执行、访存、写回、更新PC(设置下一条指令的地址),然后再取出下一条指令,这样逐条执行。在解码和执行时使用的指令编码为处理器预先定义好的。在执行中若程序段遭到缓冲区溢出攻击或其他方式的攻击修改,程序将执行本身无法预料的功能,比如病毒或木马等恶意程序。现有的处理器无法识别出遭到恶意修改的程序段,因而无法阻止缓冲区溢出攻击、病毒攻击和木马的攻击。
发明内容
为了克服现有的处理器不能区分合法指令流与非法指令流的不足,本发明提供一种指令编码可重定义方法,该方法可将合法指令流与非法指令流阻隔开来。
本发明解决技术问题采用以下技术方案:
处理器指令编码可重定义的方法,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。
在处理器内部设置与该系统指令集中指令数量相同的指令编码寄存器,每个指令编码寄存器对应一条指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。
在处理器内部设置与该系统指令集中的操作码、地址码、功能码、寄存器编码和条件编码数量相同的指令编码寄存器,每个指令编码寄存器对应一个指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。
在处理器内部指令的运行是由微指令解释执行,若干条微指令构成一个微程序,一个微程序对应一条指令编码时,由用户自定义所有的指令编码定义,然后重新编写所有的微程序使其解释执行由用户自定义的指令编码定义,然后更新所有重新编写的微程序,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。
由上述方案可见,本发明由于由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,而且用户自定义指令编码可以有极多的组合,当遭到程序段被恶意代码修改时,外来的指令编码与处理器执行的指令编码不一致,导致外来的指令编码流无法正常执行,从而有效的阻止了缓冲区溢出攻击、病毒和木马的攻击。
具体实施方式
以下结合几个实施例进一步说明本发明。
实施例1
在处理器内部设置与该系统指令集中指令数量相同的指令编码寄存器,每个指令编码寄存器对应一条指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。这样处理器就运行在由用户自定义的机器语言(指令编码)上;然后,将计算机程序的原机器指令翻译为用户自定义编码的机器指令,运行翻译为用户自定义编码的机器指令的程序。这样整个计算机系统就运行在一套全新的由用户自定义的机器语言(指令编码)上。
例如,当指令集中某一指令的原指令编码定义为01010101,对应于该指令编码定义,用户自定义的指令编码定义为11111111,然后由加载指令编码指令将该用户自定义的指令编码定义加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义。
实施例2
在处理器内部设置与该系统指令集中的操作码、地址码、功能码、寄存器编码和条件编码数量相同的指令编码寄存器,每个指令编码寄存器对应一个指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。这样处理器就运行在由用户自定义的机器语言(指令编码)上;然后,将计算机程序的原机器指令翻译为用户自定义编码的机器指令,运行翻译为用户自定义编码的机器指令的程序。这样整个计算机系统就运行在一套全新的由用户自定义的机器语言(指令编码)上。
例如,在处理器内部,当指令集中某一指令的原操作码为0101、地址码为0101,对应于该操作码及地址码,用户自定义操作码为1111、地址码为1111,由加载指令编码指令加载用户自定义的操作码、地址码到对应的指令编码寄存器,由用户自定义编码的指令编码定义取代处理器原有的指令编码定义,
实施例3
在处理器内部指令的运行是由微指令解释执行,若干条微指令构成一个微程序,一个微程序对应一条指令编码时,由用户自定义所有的指令编码定义,然后重新编写所有的微程序使其解释执行由用户自定义的指令编码定义,然后更新所有重新编写的微程序,使用由用户自定义的指令编码定义取代处理器预先定义的指令编码定义。使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。这样处理器就运行在由用户自定义的机器语言(指令编码)上;然后,将计算机程序的原机器指令翻译为用户自定义编码的机器指令,运行翻译为用户自定义编码的机器指令的程序。这样整个计算机系统就运行在一套全新的由用户自定义的机器语言(指令编码)上。
例如,在处理器内部,当指令集中某一指令的原操作码为0101、地址码为0101,对应于该操作码及地址码,用户自定义操作码为1111、地址码为1111,重新编写微程序使其解释执行由用户自定义的操作码、地址码,再更新用户自定义的操作码、地址码的微程序,既由用户自定义的操作码、地址码定义取代处理器原有的操作码、地址码定义。
由以上实施例可见,当计算机系统受到缓冲区溢出攻击、病毒攻击和木马攻击的时候,由于外来的程序段使用的机器语言(指令编码)与本地计算机系统的机器语言(指令编码)不一致,从而使得外来的程序段无法正常执行,有效的保护了本地计算机系统。
现有的计算机系统都是采用“一次编译到处运行”的方式,同一平台所有的处理器只执行一种已经预先定义的固定的指令编码,而本发明将处理器指令编码可重定义方法引入到计算机系统中,从而打破了上述方式。
Claims (3)
1.处理器指令编码可重定义的方法,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令,其特征是:在处理器内部设置与其系统指令集中指令数量相同的指令编码寄存器,每个指令编码寄存器对应一条指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。
2.处理器指令编码可重定义的方法,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令,其特征是:在处理器内部设置与其系统指令集中的操作码、地址码、功能码、寄存器编码和条件编码数量相同的指令编码寄存器,每个指令编码寄存器对应一个指令编码定义,然后由用户自定义所有的指令编码定义,然后由加载指令编码指令将用户自定义的各指令编码定义分别加载到所对应的指令编码寄存器上,由用户自定义的指令编码定义取代处理器预先定义的指令编码定义,使处理器在解码和执行指令时,使用用户自定义的指令编码定义解码和执行指令。
3.根据权利要求1或2所述的处理器指令编码可重定义的方法,其特征是:加载指令编码指令是为加载指令编码而在指令集中增加的一条指令,用来加载用户自定义的指令编码定义到所有的指令编码寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110216096.1A CN102231180B (zh) | 2011-07-30 | 2011-07-30 | 处理器指令编码可重定义的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110216096.1A CN102231180B (zh) | 2011-07-30 | 2011-07-30 | 处理器指令编码可重定义的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102231180A CN102231180A (zh) | 2011-11-02 |
CN102231180B true CN102231180B (zh) | 2014-05-28 |
Family
ID=44843744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110216096.1A Active CN102231180B (zh) | 2011-07-30 | 2011-07-30 | 处理器指令编码可重定义的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102231180B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11809871B2 (en) | 2018-09-17 | 2023-11-07 | Raytheon Company | Dynamic fragmented address space layout randomization |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055309B (zh) * | 2016-05-27 | 2019-04-02 | 上海兆芯集成电路有限公司 | 中央处理器和在其中执行隐秘操作、协处理器操作的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5574927A (en) * | 1994-03-25 | 1996-11-12 | International Meta Systems, Inc. | RISC architecture computer configured for emulation of the instruction set of a target computer |
CN1382280A (zh) * | 1999-02-05 | 2002-11-27 | 坦斯利卡公司 | 用于设计可配置的处理器的自动处理器产生系统及其方法 |
CN101561833A (zh) * | 2009-05-08 | 2009-10-21 | 东南大学 | 专用指令集处理器的设计方法 |
CN101887357A (zh) * | 2009-05-11 | 2010-11-17 | 美普思科技有限公司 | 指令集架构中的变量寄存器和立即数字段编码 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW343318B (en) * | 1996-09-23 | 1998-10-21 | Advanced Risc Mach Ltd | Register addressing in a data processing apparatus |
US8584109B2 (en) * | 2006-10-27 | 2013-11-12 | Microsoft Corporation | Virtualization for diversified tamper resistance |
-
2011
- 2011-07-30 CN CN201110216096.1A patent/CN102231180B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5574927A (en) * | 1994-03-25 | 1996-11-12 | International Meta Systems, Inc. | RISC architecture computer configured for emulation of the instruction set of a target computer |
CN1382280A (zh) * | 1999-02-05 | 2002-11-27 | 坦斯利卡公司 | 用于设计可配置的处理器的自动处理器产生系统及其方法 |
CN101561833A (zh) * | 2009-05-08 | 2009-10-21 | 东南大学 | 专用指令集处理器的设计方法 |
CN101887357A (zh) * | 2009-05-11 | 2010-11-17 | 美普思科技有限公司 | 指令集架构中的变量寄存器和立即数字段编码 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11809871B2 (en) | 2018-09-17 | 2023-11-07 | Raytheon Company | Dynamic fragmented address space layout randomization |
Also Published As
Publication number | Publication date |
---|---|
CN102231180A (zh) | 2011-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10445494B2 (en) | Attack protection for valid gadget control transfers | |
US11789735B2 (en) | Control transfer termination instructions of an instruction set architecture (ISA) | |
US10268480B2 (en) | Energy-focused compiler-assisted branch prediction | |
US9003375B2 (en) | Optional logging of debug activities in a real time instruction tracing log | |
US9684511B2 (en) | Using software having control transfer termination instructions with software not having control transfer termination instructions | |
JP2016207231A (ja) | 命令エミュレーションプロセッサ、方法、およびシステム | |
KR20170097633A (ko) | 융합된 단일 사이클 증가-비교-점프를 수행하기 위한 명령어 및 로직 | |
TWI724065B (zh) | 包含用於控制流向終止的模式特定結束分支之處理器及系統 | |
WO2012136975A1 (en) | A data processing apparatus and method for performing vector operations | |
US8782380B2 (en) | Fine-grained privilege escalation | |
KR102298403B1 (ko) | 제어 전송 인스트럭션으로의 리턴 | |
CN107526622B (zh) | Linux的快速异常处理方法及装置 | |
CN102231180B (zh) | 处理器指令编码可重定义的方法 | |
JP2009059246A (ja) | マイクロプロセッサ | |
CN102893260A (zh) | 用以作为指令评估数据值的系统和方法 | |
CN108920188B (zh) | 一种扩展寄存器堆的方法及装置 | |
US11216278B2 (en) | Multi-thread processing | |
JP2010257199A (ja) | プロセッサ及びプロセッサにおける命令発行の制御方法 | |
KR20160108754A (ko) | 파이프라인 구조의 프로세서에서의 무조건 분기 명령어 처리 방법 | |
TW201419144A (zh) | 處理器及其操作方法 | |
JP7276755B2 (ja) | 処理速度整合回路およびマイクロプロセッサ | |
US20230418934A1 (en) | Control flow integrity to prevent potential leakage of sensitive data to adversaries | |
EP4239470A1 (en) | Software-controlled flag to require a stack switch during execution | |
CN106021041B (zh) | 基于有限状态机的多周期非流水线cpu调试方法 | |
JP2011170758A (ja) | プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 233000 Anhui province Bengbu Longzihu two steel Village East 1 Building 2 unit 5 Applicant after: Zhang Peng Address before: The mountain district in Anhui province 233000 blue Yuhui District of Bengbu City 2 Building 1 unit 7 Applicant before: Zhang Peng |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |