CN105095762A - 基于地址随机和段隔离的全局偏移表保护方法 - Google Patents

基于地址随机和段隔离的全局偏移表保护方法 Download PDF

Info

Publication number
CN105095762A
CN105095762A CN201510463850.XA CN201510463850A CN105095762A CN 105095762 A CN105095762 A CN 105095762A CN 201510463850 A CN201510463850 A CN 201510463850A CN 105095762 A CN105095762 A CN 105095762A
Authority
CN
China
Prior art keywords
plt
dynamic
address
elf
segment
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.)
Granted
Application number
CN201510463850.XA
Other languages
English (en)
Other versions
CN105095762B (zh
Inventor
林键
郭玉东
周少皇
何红旗
董卫宇
王立新
蔄羽佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Redneurons Co Ltd
PLA Information Engineering University
Original Assignee
Shanghai Redneurons Co Ltd
PLA Information Engineering University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Redneurons Co Ltd, PLA Information Engineering University filed Critical Shanghai Redneurons Co Ltd
Priority to CN201510463850.XA priority Critical patent/CN105095762B/zh
Publication of CN105095762A publication Critical patent/CN105095762A/zh
Application granted granted Critical
Publication of CN105095762B publication Critical patent/CN105095762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于地址随机和段隔离的全局偏移表保护方法,包含:加载ELF程序,随机申请内存空间,将ELF节段内容进行拷贝并赋予新的节段名称,加载字段PT_DYNAMIC;对该内存空间创建段描述符,选择空闲的段寄存器,将段描述符加载到该段寄存器中;修改程序表头及内存空间中的节段内容,并修改.plt节中的代码;初始化动态链接器,修改程序表头段内容,隐藏.dynamic节所在地址。本发明增加随机化处理,反汇编代码获得GOT表地址,在不知道段寄存器段基地址情况下,无法计算出GOT表的地址,让对原来固定的GOT表地址进行恶意代码劫持攻击失效,对尝试读取固定内存地址并计算出GOT表地址的方法恶意攻击失效。

Description

基于地址随机和段隔离的全局偏移表保护方法
技术领域
本发明涉及计算机可执行文件安全技术领域,特别涉及一种基于地址随机和段隔离的全局偏移表保护方法。
背景技术
在动态链接的ELF程序中,所引用的外部符号分为两大类,一是对外地全局数据(如全局变量)的引用,二是对外地全局函数的调用;引用和调用的位置分布在整个可执行程序中。为了便于管理,ELF格式的可执行文件中定义了两个节.got和.got.plt,称为全局偏移表GOT(GlobalOffsetTable),专门用于集中存放可执行程序引用的各全局符号和函数的目的地址,其中,全局数据符号的目的地址记录在.got节中,全局函数符号的目的地址记录在.got.plt节中。
出于执行效率的考虑,ELF程序通常采用延迟解析机制,只有在第一次真正引用时才对全局库函数进行解析。解析程序获得库函数的真正的目的地址并将其写入到GOT表中,因此GOT表必须是可写的。在Linux操作系统中,应用进程的地址空间布局是相对固定的,特别地,应用进程的代码和数据段在地址空间中的位置是固定的,GOT表的位置也是固定的,因而节.got.plt实际上是位于固定内存空间的一组可写的函数指针。利用这一属性,恶意代码可以通过修改GOT表的值来劫持程序的控制流程。
现有的GOT表保护方法,如RELRO,通过禁用延迟解析来保护GOT表,其实现思路是:在为进程加载程序时,一次性解析所有的全局库函数,完成GOT表的初始化,而后将GOT表所在的页标记为只读页,禁止再对其进行修改。然而函数解析工作比较耗时,加载时解析所有的库函数会延缓程序的启动过程,而且很多库函数可能根本不会被执行到,对它们的解析也是一种浪费,所以该方法并未在GCC编译器中默认启用。
发明内容
针对现有技术中的不足,本发明提供一种基于地址随机和段隔离的全局偏移表保护方法,增加随机化处理,性能开销较小,安全性能高,进一步防止恶意代码通过修改GOT表值来劫持程序控制流程。
按照本发明所提供的设计方案,一种基于地址随机和段隔离的全局偏移表保护方法,包含如下步骤:
步骤1.ELF程序完成加载后,随机申请内存空间,并将ELF节段内容拷贝到该内存空间中,赋予新的节段名称,在ELF程序表头中定义加载字段PT_DYNAMIC,用于描述.dynamic节的信息;
步骤2.对步骤1中随机申请的内存空间创建段描述符,选择一个空闲的段寄存器作为特殊段寄存器,将段描述符加载到该特殊段寄存器中;
步骤3.修改程序表头及步骤1中赋予新的节段名称的节段内容,使之满足ELF中节段的指向关系,并修改.plt节中的代码,使其通过特殊段寄存器访问GOT表;
步骤4.初始化动态链接器,修改程序表头中PT_DYNAMIC段内容,并隐藏.dynamic节所在地址。
上述的,所述步骤1中随机申请内存空间并将ELF节段内容拷贝到该内存空间中具体包含随机地按需申请至少三页内存空间,包含可读可执行页、只可读页和可读可写页,其中,.plt拷贝到可读可执行页中,记为.new.plt;.rel.plt拷贝到只可读页中,记为.new.rel.plt;.dynamic和.got.plt拷贝到可读可写页中,并分别记为.new.dynamic和.new.got.plt。
上述的,步骤1中将ELF节段内容拷贝到该内存空间中,赋予新的节段名称具体包含:将.plt、.rel.plt、.dynamic、.got.plt节的内容拷贝到该内存空间中,并分别标记为.new.plt、.new.rel.plt、.new.dynamic、.new.got.plt,其中.plt为过程链接表,通过jmp指令对GOT表进行引用,.rel.plt包含与过程链接表相关联的重定向地址,.dynamic用于提供动态链接器所需信息,.got.plt用于记录全局函数符号的目的地址。
上述的,所述步骤3中ELF中节段的指向关系具体为ELF文件头指向ELF程序表头内存位置,ELF程序表头指向加载字段PT_DYNAMIC内存位置,加载字段PT_DYNAMIC指向.got.plt、.rel.plt的内存位置,通过.got.plt中的第一个函数初始值计算.plt内存位置。
本发明的有益效果:
本发明克服现有技术中GOT表位置固定、保护困难、一次性解析所有库函数造成资源浪费等问题,增加随机化处理,.plt表中有对GOT表的引用,正常反汇编.plt表中的代码可以知道GOT表地址,引入段隔离之后,在不知道段寄存器的段基地址的情况下,无法计算出GOT表的地址,段基地址在用户态是没有权限读取的,让常规的对原来固定的GOT表地址进行恶意代码劫持攻击失效,对尝试读取固定内存地址并计算出GOT表地址的方法恶意攻击失效。
附图说明:
图1为本发明的流程示意图;
图2为实施例二流程示意图;
图3为实施例二ELF各节点的指向关系示意图;
图4为实施例二修改后的ELF各节点的指向关系示意图;
图5为实施例二中PLT表结构示意图;
图6为实施例二中PLT表和GOT表的关系示意图;
图7为实施例二中Elf32_Dyn结构体定义示意图;
图8为实施例三中Elf32_Rel和Elf32_Rela定义示意图;
图9为实施例三中分配后的内存布局示意图;
图10为实施例三中修改指令示意图。
具体实施方式:
下面结合附图和技术方案对本发明作进一步详细的说明,并通过优选的实施例详细说明本发明的实施方式,但本发明的实施方式并不限于此。
实施例一,参见图1所示,基于地址随机和段隔离的全局偏移表保护方法,包含如下步骤:
步骤1.ELF程序完成加载后,随机申请内存空间,并将ELF节段内容拷贝到该内存空间中,赋予新的节段名称,在ELF程序表头中定义加载字段PT_DYNAMIC,用于描述.dynamic节的信息;
步骤2.对步骤1中随机申请的内存空间创建段描述符,选择一个空闲的段寄存器作为特殊段寄存器,将段描述符加载到该特殊段寄存器中;
步骤3.修改程序表头及步骤1中赋予新的节段名称的节段内容,使之满足ELF中节段的指向关系,并修改.plt节中的代码,使其通过特殊段寄存器访问GOT表;
步骤4.初始化动态链接器,修改程序表头中PT_DYNAMIC段内容,并隐藏.dynamic节所在地址。
增加随机化处理,让常规的对原来固定的GOT表地址进行恶意代码劫持攻击失效,对尝试读取固定内存地址并计算出GOT表地址的方法恶意攻击失效,性能开销较小,安全性能高,进一步防止恶意代码通过修改GOT表值来劫持程序控制流程。
实施例二,参见图2~4所示,与实施例一基本相同,不同之处在于:所述步骤1中随机申请内存空间并将ELF节段内容拷贝到该内存空间中具体包含随机地按需申请至少三页内存空间,包含可读可执行页、只可读页和可读可写页,其中,.plt拷贝到可读可执行页中,记为.new.plt;.rel.plt拷贝到只可读页中,记为.new.rel.plt;.dynamic和.got.plt拷贝到可读可写页中,并分别记为.new.dynamic和.new.got.plt,三页内存空间可以是地址空间中任意未用的三页内存。
优选的,步骤1中将ELF节段内容拷贝到该内存空间中,赋予新的节段名称具体包含:将.plt、.rel.plt、.dynamic、.got.plt节的内容拷贝到该内存空间中,并分别标记为.new.plt、.new.rel.plt、.new.dynamic、.new.got.plt,其中,.plt为过程链接表,通过jmp指令对GOT表进行引用,除PLT0之外,每个PLT表项由3条指令构成,PLT表结构如图5所示,PLT表和GOT表的关系如图6所示,PLT表通过jmp指令对GOT表进行引用,在未解析之前,GOT表中的值默认指向PLT+6的地址,即PLT中push指令的地址;在解析之后,GOT表中的值是函数的目的地址;.rel.plt包含与过程链接表相关联的重定向地址,在动态解析后将对应GOT表中的值改写为目标函数的真正地址时,根据.rel.plt节快速得到到对应函数在GOT表中的地址;.dynamic用于提供动态链接器所需信息;.got.plt用于记录全局函数符号的目的地址,第一项为.dynamic节所在地址,第二项为自身的链接映射结构link_map的地址,第三项为动态链接器中符号解析函数_dl_runtime_resolve的入口地址,第二项和第三项是在动态加载器初始化时设置的,剩下的项为程序所依赖的库函数的目的地址。
优选的,所述步骤3中ELF中节段的指向关系具体为ELF文件头指向ELF程序表头内存位置,ELF程序表头指向加载字段PT_DYNAMIC内存位置,加载字段PT_DYNAMIC指向.got.plt、.rel.plt的内存位置,通过.got.plt中的第一个函数初始值计算.plt内存位置;如图3所示,查ELF文件头可以获得程序头表的位置,查程序头表可以获得类型为PT_DYNAMIC的加载段的位置,查类型为PT_DYNAMIC的加载段可以获得.got.plt、.rel.plt的内存位置,读取.got.plt中第一个函数在GOT表中初始值,即PLT1+6,可以计算.plt节的内存地址。
其中,.dynamic节是一个Elf32_Dyn类型的数组,Elf32_Dyn结构体下图7所示,提供动态链接器所需要的信息:
根据Elf32_Dyn结构体d_tag的不同值,获取d_un中值的具体含义,其中能获取到的信息如表1所示:
名称 d_tag值 d_un含义
DT_PLTGOT 3 .plt.got节的地址
DT_JMPREL 23 .rel.plt节的地址
DT_PLTRELSZ 2 .rel.plt节的大小
DT_PLTREL 20 .rel.plt中的重定位项类型(DT_REL或DT_RELA)
其中,包括.got.plt节和.rel.plt节的地址和节的大小。
修改程序表头及步骤1中赋予新的节段名称的节段内容,使之满足ELF中节段的指向关系,并修改.plt节中的代码,使其通过特殊段寄存器访问GOT表;修改.new.dynamic、.new.got.plt、.new.rel.plt中的相关项,使其满足ELF中各节的指向关系,其中,.new.got.plt的初始值修改为指向.new.plt中对应PLT项PLTn+6;修改原来的.plt节中的jmp指令,使其通过段寄存器间接寻址的方式对.new.got.plt节进行引用;修改ELF的程序头表,使其PT_DYNAMIC区段指向到.new.dynamic节,具体指向关系如图4所示;对各节段内容的修改都是找到对应节段内容所在的内存地址,为该内存地址所在的页增加可写权限,对需要修改的值直接进行修改,最后恢复内存页最初的权限;在程序的动态链接器初始化完毕之后,修改内存中ELF的程序头表中的PT_DYNAMIC区段,使其不指向真正.dynamic节所在地址。
实施例三,结合具体的实施例对本发明技术方案做进一步的介绍,具体实现过程如下:
在ELF程序头表中包含类型为PT_DYNAMIC的区段,该区段包含.dynamic节,通过解析.dynamic节可以获得.plt.got、.rel.plt节的起始偏移、.rel.plt节的大小,.rel.plt中重定位项的类型;根据获取到的关于.rel.plt节的信息,可以知道该程序引用的库函数的个数:
libfun_num=size(.rel.plt)/sizeof(Type_Rel)
其中,Type_Rel根据重定位表的类型确定为Elf32_Rel或者Elf32_Rela,这两种类型的定义如图8所示。
根据库函数的个数,计算得到.got.plt的大小,size(.got.plt)=libfun_num*4+12,.got.plt节中的库函数初始是设为它们在自己.plt中的入口地址+6,根据.got.plt节推算出.plt节所在位置,每个PLT表项的大小固定为0x10,plt节的大小计算得到,具体计算公式为:
libfunc1=*(addr(.got.plt)+0xc)
addr(.plt)=libfunc1-0x16
size(.plt)=libfunc_num*0x10+0x10
其中,libfunc1为.got.plt中第一个库函数f1的值,也就是PLT1+6。
随机申请的内存页选择在mmap_min_addr到0x08048000之间选择。mmap_min_addr是进程所能映射的最低地址,而0x08048000是通常进程代码段加载的地址,分配后的内存布局如图9所示:
在Intel处理器中,有6个寄存器:CS、DS、ES、SS、GS、FS,其中,CS指向代码段,DS、ES、SS指向数据段。在ELF的32位程序中,GS用于线程局部存储(TLS)区域,FS一般没有被使用;在ELF的64位中,FS用于TLS区域,GS一般没有被使用。根据程序为32位还是64位,决定使用FS还是GS寄存器,如果为32位程序,则选择使用FS寄存器;如果为64为程序,则选择使用GS寄存器。
对.plt中对GOT表引用的指令全部进行修改,使其指向到.new.got.plt节,具体修改指令如图10所示。
在动态链接器初始化完成后,需要对程序头表中PT_DYNAMIC区段的信息进行清除。要实现清除,在动态链接器初始化完成后,能够获取到程序的控制权。在加载时,将GOT表所在的页设置为只读。当动态链接器初始化时,尝试对GOT表进行写入操作,将会产生页异常,进入到页故障异常处理程序中。通过修改页故障处理程序,获取到程序的控制权,实现对程序头表中PT_DYNAMIC区段信息的修改。
本发明并不局限于上述具体实施方式,本领域技术人员还可据此做出多种变化,但任何与本发明等同或者类似的变化都应涵盖在本发明权利要求的范围内。

Claims (4)

1.一种基于地址随机和段隔离的全局偏移表保护方法,其特征在于:包含如下步骤:
步骤1.ELF程序完成加载后,随机申请内存空间,并将ELF节段内容拷贝到该内存空间中,赋予新的节段名称,在ELF程序表头中定义加载字段PT_DYNAMIC,用于描述.dynamic节的信息;
步骤2.对步骤1中随机申请的内存空间创建段描述符,选择一个空闲的段寄存器作为特殊段寄存器,将段描述符加载到该特殊段寄存器中;
步骤3.修改程序表头及步骤1中赋予新的节段名称的节段内容,使之满足ELF中节段的指向关系,并修改.plt节中的代码,使其通过特殊段寄存器访问GOT表;
步骤4.初始化动态链接器,修改程序表头中PT_DYNAMIC段内容,并隐藏.dynamic节所在地址。
2.根据权利要求1所述的基于地址随机和段隔离的全局偏移表保护方法,其特征在于:所述步骤1中随机申请内存空间并将ELF节段内容拷贝到该内存空间中具体包含随机地按需申请至少三页内存空间,包含可读可执行页、只可读页和可读可写页,其中,.plt拷贝到可读可执行页中,记为.new.plt;.rel.plt拷贝到只可读页中,记为.new.rel.plt;.dynamic和.got.plt拷贝到可读可写页中,并分别记为.new.dynamic和.new.got.plt。
3.根据权利要求1所述的基于地址随机和段隔离的全局偏移表保护方法,其特征在于:步骤1中将ELF节段内容拷贝到该内存空间中,赋予新的节段名称具体包含:将.plt、.rel.plt、.dynamic、.got.plt节的内容拷贝到该内存空间中,并分别标记为.new.plt、.new.rel.plt、.new.dynamic、.new.got.plt,其中.plt为过程链接表,通过jmp指令对GOT表进行引用,.rel.plt包含与过程链接表相关联的重定向地址,.dynamic用于提供动态链接器所需信息,.got.plt用于记录全局函数符号的目的地址。
4.根据权利要求1所述的基于地址随机和段隔离的全局偏移表保护方法,其特征在于:所述步骤3中ELF中节段的指向关系具体为ELF文件头指向ELF程序表头内存位置,ELF程序表头指向加载字段PT_DYNAMIC内存位置,加载字段PT_DYNAMIC指向.got.plt、.rel.plt的内存位置,通过.got.plt中的第一个函数初始值计算.plt内存位置。
CN201510463850.XA 2015-07-31 2015-07-31 基于地址随机和段隔离的全局偏移表保护方法 Active CN105095762B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510463850.XA CN105095762B (zh) 2015-07-31 2015-07-31 基于地址随机和段隔离的全局偏移表保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510463850.XA CN105095762B (zh) 2015-07-31 2015-07-31 基于地址随机和段隔离的全局偏移表保护方法

Publications (2)

Publication Number Publication Date
CN105095762A true CN105095762A (zh) 2015-11-25
CN105095762B CN105095762B (zh) 2017-10-10

Family

ID=54576169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510463850.XA Active CN105095762B (zh) 2015-07-31 2015-07-31 基于地址随机和段隔离的全局偏移表保护方法

Country Status (1)

Country Link
CN (1) CN105095762B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653906A (zh) * 2015-12-28 2016-06-08 中国人民解放军信息工程大学 基于地址随机的反内核挂钩方法
CN106096407A (zh) * 2016-05-31 2016-11-09 华中科技大学 一种代码复用攻击的防御方法
CN107247579A (zh) * 2016-08-19 2017-10-13 北京金山安全管理系统技术有限公司 一种elf文件映像基地址的计算方法及装置
CN110008154A (zh) * 2019-04-16 2019-07-12 北京智芯微电子科技有限公司 提高处理器与访存总线时序的方法及内存属性预测器
CN112100160A (zh) * 2020-11-05 2020-12-18 四川新网银行股份有限公司 一种基于Elastic Search的双活实时数据仓库建设方法
CN112527303A (zh) * 2019-09-19 2021-03-19 无锡江南计算技术研究所 面向即时编译的基于动态库的got表管理方法
CN115421876A (zh) * 2022-10-27 2022-12-02 飞腾信息技术有限公司 二进制翻译方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101309149A (zh) * 2008-06-30 2008-11-19 华为技术有限公司 一种地址处理方法和装置
US20120011371A1 (en) * 2010-07-12 2012-01-12 Hongik University Industry-Academia Cooperation Foundation Method and apparatus for securing indirect function calls by using program counter encoding
US20150047049A1 (en) * 2013-08-12 2015-02-12 Cisco Technology, Inc. Binary Translation and Randomization System for Application Security

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101309149A (zh) * 2008-06-30 2008-11-19 华为技术有限公司 一种地址处理方法和装置
US20120011371A1 (en) * 2010-07-12 2012-01-12 Hongik University Industry-Academia Cooperation Foundation Method and apparatus for securing indirect function calls by using program counter encoding
US20150047049A1 (en) * 2013-08-12 2015-02-12 Cisco Technology, Inc. Binary Translation and Randomization System for Application Security

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHAO ZHANG 等: "SecGOT: Secure Global Offset Tables in ELF Executables", 《PROCEEDINGS OF THE 2ND INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND ELECTRONICS ENGINEERING (ICCSEE 2013)》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653906A (zh) * 2015-12-28 2016-06-08 中国人民解放军信息工程大学 基于地址随机的反内核挂钩方法
CN105653906B (zh) * 2015-12-28 2018-03-27 中国人民解放军信息工程大学 基于地址随机的反内核挂钩方法
CN106096407A (zh) * 2016-05-31 2016-11-09 华中科技大学 一种代码复用攻击的防御方法
CN107247579A (zh) * 2016-08-19 2017-10-13 北京金山安全管理系统技术有限公司 一种elf文件映像基地址的计算方法及装置
CN107247579B (zh) * 2016-08-19 2020-09-11 北京金山安全管理系统技术有限公司 一种elf文件映像基地址的计算方法及装置
CN110008154A (zh) * 2019-04-16 2019-07-12 北京智芯微电子科技有限公司 提高处理器与访存总线时序的方法及内存属性预测器
CN110008154B (zh) * 2019-04-16 2020-08-21 北京智芯微电子科技有限公司 提高处理器与访存总线时序的方法及内存属性预测器
CN112527303A (zh) * 2019-09-19 2021-03-19 无锡江南计算技术研究所 面向即时编译的基于动态库的got表管理方法
CN112100160A (zh) * 2020-11-05 2020-12-18 四川新网银行股份有限公司 一种基于Elastic Search的双活实时数据仓库建设方法
CN112100160B (zh) * 2020-11-05 2021-09-07 四川新网银行股份有限公司 一种基于Elastic Search的双活实时数据仓库建设方法
CN115421876A (zh) * 2022-10-27 2022-12-02 飞腾信息技术有限公司 二进制翻译方法及装置

Also Published As

Publication number Publication date
CN105095762B (zh) 2017-10-10

Similar Documents

Publication Publication Date Title
CN105095762A (zh) 基于地址随机和段隔离的全局偏移表保护方法
US10540181B2 (en) Managing branch prediction information for different contexts
EP2979189B1 (en) Storing data from cache lines to main memory based on memory addresses
TW202030615A (zh) 範圍檢查指令
EP3674877A1 (en) Method for accessing extended memory, device, and system
JP5044387B2 (ja) 情報処理装置及びそのスタックポインタ更新方法
US7996833B2 (en) Method and system for replacing instructions and instruction blocks in computer code
US20180321947A1 (en) Protecting basic input/output (bios) code
US20190087208A1 (en) Method and apparatus for loading elf file of linux system in windows system
US8019946B2 (en) Method and system for securing instruction caches using cache line locking
CN105653906B (zh) 基于地址随机的反内核挂钩方法
JP2021517690A (ja) タグ保護されたメモリ・システムのためのランダム・タグ設定命令
WO2019237866A1 (zh) 一种运行时访问控制方法及计算装置
US8726248B2 (en) Method and apparatus for enregistering memory locations
CN105528179A (zh) 存储器位置之间控制的转移的系统和方法
JP2022505011A (ja) メモリ・アクセスを制御するための装置及び方法
US9715398B2 (en) Program code loading method of application and computing system using the same
CN113485716B (zh) 防内存越界的程序编译方法及装置
KR102455675B1 (ko) 하위 호환성을 위한 cpuid 스푸핑
CN111797390B (zh) 程序运行方法、装置、电子设备及计算机可读存储介质
CN106096407B (zh) 一种代码复用攻击的防御方法
US11055202B1 (en) Compilation scheme for tagged global variables
US9135144B2 (en) Integrated circuits and methods for debugging
CN117170753B (zh) 程序处理方法、程序处理装置、车辆和存储介质
CN107533515A (zh) 阻止存储器溢出攻击的精细粒度存储器保护

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant