首页
社区
课程
招聘
[原创]主动防御缓冲区溢出攻击的硬件技术
发表于: 2011-9-22 13:27 25180

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

2011-9-22 13:27
25180
权利要求书

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

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

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

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

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

    说明书

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

技术领域

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

背景技术

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

发明内容

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

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

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

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

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

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

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

具体实施方式

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

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

    实施例1

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

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

    实施例2

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

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

    实施例3

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

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

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

    附言

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

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

欢迎大家拍砖。

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

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 6
支持
分享
最新回复 (55)
雪    币: 76
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先来占个沙发,
2011-9-22 17:22
0
雪    币: 120
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好像很强大的。楼主超级水牛啊。。竟然还记得密码。。
2011-9-22 17:33
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不懂,菜B党路过。
2011-9-22 17:41
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
专利书?
2011-9-22 17:46
0
雪    币: 1689
活跃值: (379)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
6
"在处理器内部设置与该系统指令集中指令数量相同的指令编码寄存器"

这个开消也太大了。就拿80x86指令集来举例,其有上百条指令,对于CPU内部增加这么多寄存器是不现实的。寄存器在处理器中是非常珍贵的资源,价格高集成度低……

而在精简指令集(嵌入式系统)的实现中,为了提高处理器性能,多数采用硬件直接解码的形式。并且由于此类处理器对价格要求苛刻,集成那么多寄存器也是不可能的。arm的核就三十左右个寄存器,然而指令条数可不止三十条……

当然,LZ的想法还是不错的,也许未来可以产生一种”硬件虚拟指令集“的技术也说不定。
2011-9-22 20:22
0
雪    币: 1556
活跃值: (310)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
恶意代码是不能执行了,但正常的代码也不能执行了。难道还要用户手工把二进制重新才转化一遍?
2011-9-22 20:30
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
"恶意代码是不能执行了,但正常的代码也不能执行了。难道还要用户手工把二进制重新才转化一遍?"
是的,要用软件把二进制重新才转化一遍。
2011-9-25 09:23
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
9
好像很强大的。楼主超级水牛啊。。竟然还记得密码。。
2011-9-25 09:27
0
雪    币: 248
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
想法不错,不过开销很大
2011-9-25 10:03
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
"想法不错,不过开销很大"
在最终的产品中会贵出多少钱?
2011-9-29 10:39
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
没人回答我贵多少钱吗?
2011-10-7 12:36
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
自己顶一下。
2011-10-13 16:07
0
雪    币: 386
活跃值: (46)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
14
看起来是这个搞硬件的
2011-10-14 15:21
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
自己顶一下。
2011-10-26 13:18
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
自己顶一下。
2011-11-5 15:54
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
自己顶一下。
2011-11-18 13:47
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
自己顶一下。
2011-11-28 14:48
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
19
自己顶一下。
2011-12-4 15:24
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
楼主恐怕低估了黑客的智商。黑客只需要稍微调整下攻击数据的内容,照样黑你。

另外这种防御会导致模块或者系统死机吧。既然死了,可以认为防御也失败了。
2011-12-11 17:24
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
“楼主恐怕低估了黑客的智商。黑客只需要稍微调整下攻击数据的内容,照样黑你。

另外这种防御会导致模块或者系统死机吧。既然死了,可以认为防御也失败了。 ”
不会死机的,黑客需要调整攻击数据的内容会是一个天文数字。
2011-12-12 09:41
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
22
自己顶一下。
2012-2-1 14:02
0
雪    币: 22
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
楼主啊,这样的专利没有什么价值。这个最多是想想
2012-2-1 20:56
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
硬件专利得有样品吧?光拍脑袋想也可以吗?
2012-2-3 12:13
0
雪    币: 7
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
“硬件专利得有样品吧?光拍脑袋想也可以吗? ”
可以用软件或者硬件FPGA模拟的
2012-2-3 13:16
0
游客
登录 | 注册 方可回帖
返回
//