CN1323413A - 保护入口地址的方法 - Google Patents

保护入口地址的方法 Download PDF

Info

Publication number
CN1323413A
CN1323413A CN99811943A CN99811943A CN1323413A CN 1323413 A CN1323413 A CN 1323413A CN 99811943 A CN99811943 A CN 99811943A CN 99811943 A CN99811943 A CN 99811943A CN 1323413 A CN1323413 A CN 1323413A
Authority
CN
China
Prior art keywords
entry address
code
correlativity
data
special
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
CN99811943A
Other languages
English (en)
Other versions
CN1237444C (zh
Inventor
C·梅
J·弗雷瓦尔德
O·布里克瑟尔
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1323413A publication Critical patent/CN1323413A/zh
Application granted granted Critical
Publication of CN1237444C publication Critical patent/CN1237444C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Devices For Executing Special Programs (AREA)
  • Hardware Redundancy (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

一种高效地保护计算机程序中的入口地址的方法,其中准许直接跳至允许的入口地址,并且可以利用不在同一单个指令中的数据的相关性来识别该允许的入口地址。在此,可以由编译程序或链接程序通过组织程序代码来确保只有合法的入口地址才满足所述的相关性。

Description

保护入口地址的方法
在未来的芯片卡上,应允许可以调用操作系统功能的第三方的应用。为此可能存在如下危险,即该第三方的应用包含关于其它程序段的干扰或破坏企图。这种可能的侵害有:从所述的应用出发不是采用操作系统程序的有效功能指针,而是采用另一入口地址。由此,操作系统的代码不是按规定执行的,并且可能譬如因错误重写存储器区而引起数据损失。
根据现有技术设计了一种解决方案,它利用的是进入到固定间隔(门)中的预定地址上。在此,首先必须检验门地址是否位于模块所允许的地址范围之内。在结果肯定的情况下,便跳向该门,然后从那里进一步跳跃到原本的功能中。这是有缺陷的,因为此处必须执行所计算出的跳跃,该跳跃在CPU流水线中将导致一个窥孔。也可选择在功能的一些预先处理的程序指令之后延迟地跳跃到所述的功能中。如果在所述功能的开始处引入一个循环,并且必须持续地在门处的代码和调出的代码之间来回跳跃,那么这将会给编译程序带来很困难的优化问题。
因此,本发明任务在于,创造一种保护这种类型的入口地址的方法,其中无须执行所计算的跳跃,由此在CPU指令流水线中不会出现窥孔。
根据本发明,该任务通过如下方式解决,即准许直接跳至允许的入口地址,并且可利用不在同一单个指令中的数据的相关性来识别该允许的入口地址。
在此,编译程序或链接程序通过组织程序代码来确保只有合法的入口地址才满足该相关性。譬如可以通过如下方式来实现所述的相关性,即直接位于入口地址之前或之后的存储单元包含有相关数据的地址。
为此,一种优选的可能性在于,直接位于入口地址之前或之后的存储单元包含有一个针对合法入口地址的保护目录内的相应项的参考。
在此,尤其优选的是,在执行功能调用时自动地检验是否满足数据的相关性。
特别优选的是,在执行功能调用时自动地检验所述的相关数据是否位于预定的预备存储区。
只要程序指令不超过某个最大数目n的字节,则可以通过如下方式应用本发明的另一解决方案,即设定一种特殊的无操作代码,用以避免随机的相关性,并且可以由编译程序或链接程序补充加入该无操作代码。
在此,如下做法是尤其优选的,即在至少相距n字节的代码数据之间产生所述的相关性。
此外,根据本发明,所述的入口地址可以通过加入一个特殊的、可以不出现在常规代码内的字节序列来进行暂存,譬如利用特殊的无操作代码。
因此,根据本发明,可以通过直接跳至功能指针的地址来避免流水线中的窥孔。但是,必须负责通过非局部的代码相关性来标出合法的跳跃地址。所述的编译程序或链接程序必须通过组织程序代码来确保只有合法的功能跳跃地址才能满足该相关性。在此,“非局部的相关性”意味着那些可以不位于同一单个指令内的数据的相关性。
因此,譬如下列的优选实施方案是可能的:
1.与为此而预备的存储区内的数据相关:一种简单的实现方法可以是譬如在直接位于入口地址之前的存储单元内包含相关数据的地址,该相关数据譬如又对应着功能的合法入口地址。在执行功能调用时,可以自动地检验是否满足该相关性,以及/或者该相关数据是否位于预定的预备存储区。该机理乍一看来非常近似于迄今的门机理,但有个优点,就是不会出现所计算的跳跃,而且可以直接把功能的指令取至流水线的预取器中。窥孔只有在非法进入的故障情况下才出现。
2.与非预备的存储区内的程序数据相关。该解决方案的前提条件是,程序指令不超过某个最大数目n的字节。于是必须排除代码段中有较长的数据区。此外,该方法还有一个前提条件是特殊的无操作代码(SNOP),该无操作代码从不装入在常规代码中,而只是为了避免随机的相关性而由编译程序/链接程序补充加入。在此还可以区别为两种不同的解决方案:
a)所述的相关性是在至少相距n个字节的代码数据之间产生的。在此,所述的编译程序或链接程序必须确保通过引入SNOP中间代码来避免代码中可能的随机相关性。
一种可能的实现规定如下:直接在所述功能的入口地址之前存在一个值,该值是接下来n+m(m≥0,否则是任意的)个字节的功能。如果代码中任何地方都可能随机地满足该相关性,则编译程序或链接程序必须消除该随机的相关性:因为根据前提条件在n+m个字节的序列中是以至少一个实指令结束,所以在该指令结束后可以加入一系列SNOP指令,直到所述的功能值发生变化。在此,该功能可以在某个界限内自由地进行选择。
b)所述的入口地址是通过加入特殊的字节序列来进行暂存的,该特殊字节序列可以不出现在常规代码之内。此处的例子为OP代码序列(SNOP)。
因此,根据本发明可以通过非局部的只可能在入口地址处出现的代码相关性来暂存功能的入口地址。
由此有利地避免了所述的门机理,该门机理会产生一种计算的跳跃,而且在指令流水线中引起一种窥孔。
更具体地讲,可直接在入口地址处跳至所述的功能中。接下来的指令可被装入到流水线内,且与验证跳跃地址的对或错无关。由此提高了监视功能调用的效率。

Claims (10)

1.保护入口地址的方法,其特征在于:准许直接跳至允许的入口地址,并且可利用不在同一单个指令中的数据的相关性来识别该允许的入口地址。
2.如权利要求1所述的方法,其特征在于:编译程序或链接程序通过组织程序代码来确保只有合法的入口地址才满足所述的相关性。
3.如权利要求1或2所述的方法,其特征在于:通过如下方式来实现所述的相关性,即直接位于所述入口地址之前或之后的存储单元包含有相关数据的地址。
4.如权利要求3所述的方法,其特征在于:所述直接位于入口地址之前或之后的存储单元包含有一个针对合法入口地址的保护目录内的相应项的参考。
5.如权利要求1~4中任一项所述的方法,其特征在于:在执行功能调用时自动地检验是否满足数据的相关性。
6.如权利要求5所述的方法,其特征在于:在执行功能调用时自动地检验所述的相关数据是否位于预定的预备存储区。
7.如权利要求1或2所述的方法,其特征在于:程序指令不超过某个最大数目n的字节;设定一种特殊的无操作代码(SNOP),用以避免随机的相关性,并且可以由编译程序或链接程序补充加入该无操作代码。
8.如权利要求7所述的方法,其特征在于:在至少相距n字节的代码数据之间产生所述的相关性。
9.如权利要求1、2或7所述的方法,其特征在于:通过加入一个特殊的字节序列来暂存所述的入口地址,而该字节序列可以不出现在常规代码内。
10.如权利要求9所述的方法,其特征在于:采用一种特殊的无操作代码(SNOP)作为特殊的字节序列。
CNB998119431A 1998-10-09 1999-10-01 保护入口地址的方法 Expired - Fee Related CN1237444C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19846676.5 1998-10-09
DE19846676A DE19846676C1 (de) 1998-10-09 1998-10-09 Verfahren zur Absicherung von Einsprungsadressen

Publications (2)

Publication Number Publication Date
CN1323413A true CN1323413A (zh) 2001-11-21
CN1237444C CN1237444C (zh) 2006-01-18

Family

ID=7884005

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB998119431A Expired - Fee Related CN1237444C (zh) 1998-10-09 1999-10-01 保护入口地址的方法

Country Status (12)

Country Link
US (1) US7039907B2 (zh)
EP (1) EP1127311B1 (zh)
JP (1) JP2002527809A (zh)
KR (1) KR20010080068A (zh)
CN (1) CN1237444C (zh)
AT (1) ATE257255T1 (zh)
BR (1) BR9914396A (zh)
DE (2) DE19846676C1 (zh)
ES (1) ES2214062T3 (zh)
RU (1) RU2216770C2 (zh)
UA (1) UA57855C2 (zh)
WO (1) WO2000022506A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150438A (zh) * 2013-03-12 2013-06-12 青岛中星微电子有限公司 一种电路编译方法及装置
CN105786524A (zh) * 2016-03-23 2016-07-20 福建正孚软件有限公司 软件钩子设置方法及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584354B2 (en) * 2003-01-31 2009-09-01 Intel Corporation Implementing portable content protection to secure secrets
KR100617698B1 (ko) * 2004-06-07 2006-08-28 삼성전자주식회사 기능별 데이터 저장을 위한 바이너리 파일 생성 장치 및방법과 그 방법이 저장된 컴퓨터 판독 가능한 저장 매체
KR102014083B1 (ko) * 2012-12-31 2019-08-27 삼성전자주식회사 단말기의 메모리 관리방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
JPS59205605A (ja) * 1983-05-07 1984-11-21 Hitachi Ltd シ−ケンス制御装置
US5507028A (en) * 1992-03-30 1996-04-09 International Business Machines Corporation History based branch prediction accessed via a history based earlier instruction address
JP3499252B2 (ja) * 1993-03-19 2004-02-23 株式会社ルネサステクノロジ コンパイル装置及びデータ処理装置
JP3491365B2 (ja) * 1995-01-31 2004-01-26 ソニー株式会社 符号化データ復号方法および復号装置
US5797014A (en) * 1995-12-14 1998-08-18 International Business Machines Corporation Method for reducing processor cycles used for global offset table address computation in a position independent shared library
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
DE19709975C2 (de) * 1997-03-11 1999-04-22 Siemens Ag Mikrocomputer

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150438A (zh) * 2013-03-12 2013-06-12 青岛中星微电子有限公司 一种电路编译方法及装置
CN103150438B (zh) * 2013-03-12 2016-01-06 青岛中星微电子有限公司 一种电路编译方法及装置
CN105786524A (zh) * 2016-03-23 2016-07-20 福建正孚软件有限公司 软件钩子设置方法及装置
CN105786524B (zh) * 2016-03-23 2019-03-12 福建正孚软件有限公司 软件钩子设置方法及装置

Also Published As

Publication number Publication date
DE19846676C1 (de) 2000-03-02
EP1127311B1 (de) 2004-01-02
RU2216770C2 (ru) 2003-11-20
ES2214062T3 (es) 2004-09-01
DE59908212D1 (de) 2004-02-05
JP2002527809A (ja) 2002-08-27
ATE257255T1 (de) 2004-01-15
KR20010080068A (ko) 2001-08-22
EP1127311A2 (de) 2001-08-29
CN1237444C (zh) 2006-01-18
US7039907B2 (en) 2006-05-02
UA57855C2 (uk) 2003-07-15
US20010039652A1 (en) 2001-11-08
BR9914396A (pt) 2001-06-26
WO2000022506A2 (de) 2000-04-20
WO2000022506A3 (de) 2000-08-24

Similar Documents

Publication Publication Date Title
US11113384B2 (en) Stack overflow protection by monitoring addresses of a stack of multi-bit protection codes
US7287166B1 (en) Guards for application in software tamperproofing
US8510571B1 (en) System and method for inserting security mechanisms into a software program
US6202176B1 (en) Method of monitoring the correct execution of software programs
US8315382B2 (en) Method for monitoring execution of data processing program instructions in a security module
US6934887B1 (en) Method for protecting a program flow
CN107330320A (zh) 应用进程监控的方法和装置
CN1237444C (zh) 保护入口地址的方法
US20060047955A1 (en) Application code integrity check during virtual machine runtime
CN116150739A (zh) 一种基于关键地址动态保护的栈溢出自动防御方法
Sinnadurai et al. Transparent runtime shadow stack: Protection against malicious return address modifications
US7207066B2 (en) Method for protecting a microcomputer system against manipulation of data stored in a storage arrangement of the microcomputer system
DuVarney et al. SELF: a transparent security extension for ELF binaries
CN101128802B (zh) 数据保护用的方法和用于其实施的设备
US20240012886A1 (en) Code flow protection with error propagation
US7634640B2 (en) Data processing apparatus having program counter sensor
US11704404B2 (en) Method for control-flow integrity protection, apparatus, device and storage medium
Jang et al. IBV-CFI: Efficient fine-grained control-flow integrity preserving CFG precision
CN113032737B (zh) 软件的保护方法、装置、电子设备及存储介质
KR102351663B1 (ko) Cfi 기반 got 변조 공격 방지 장치 및 그 방법
RU2198424C2 (ru) Микрокомпьютер
US20210182175A1 (en) Compilation scheme for tagged global variables
CN111881485A (zh) 一种基于arm指针验证的内核敏感数据完整性保护方法
MXPA01003581A (en) Method for protecting entry addresses
CN116743499B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060118

Termination date: 20151001

EXPY Termination of patent right or utility model