CN101714124A - 存储器保护方法及信息处理装置 - Google Patents

存储器保护方法及信息处理装置 Download PDF

Info

Publication number
CN101714124A
CN101714124A CN200910204411A CN200910204411A CN101714124A CN 101714124 A CN101714124 A CN 101714124A CN 200910204411 A CN200910204411 A CN 200910204411A CN 200910204411 A CN200910204411 A CN 200910204411A CN 101714124 A CN101714124 A CN 101714124A
Authority
CN
China
Prior art keywords
zone
memory
protection method
program
divided
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
CN200910204411A
Other languages
English (en)
Other versions
CN101714124B (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of CN101714124A publication Critical patent/CN101714124A/zh
Application granted granted Critical
Publication of CN101714124B publication Critical patent/CN101714124B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种存储器保护方法及信息处理装置。所述存储器保护方法用于保护存储器免受程序的非法访问,所述存储器保护方法包括以下步骤:执行用于将所述存储器上未划分的地址空间划分为多个区域的区域定义处理;执行用于在调用对所划分的区域进行访问的程序的过程之前、对所划分的区域进行临时组合的组合处理;执行用于在对所述区域进行组合之后调用所述过程的调用处理;以及执行用于在所调用的过程执行之后、使所述组合后的区域恢复到所述组合处理之前的状态的恢复处理。

Description

存储器保护方法及信息处理装置
技术领域
本发明涉及一种保护存储器免受程序的非法访问的存储器保护方法及信息处理装置。
背景技术
一般来说,在嵌入式系统中,程序可以(直接)访问所有存储器区域。由于这一原因,将开销抑制到很小,但是,无法保护存储器免受程序错误导致的非法访问。
当产生这种非法访问时,开发效率降低。也就是说,需要大量的人力和时间来顾全和测试复杂软件的所有执行序列。请注意,非法访问可能往往仅在特定执行序列中导致故障。由于复杂软件通常包含有多个逻辑模块,因此,非法访问往往不会在所有模块被综合(integrate)之前导致故障。
当系统中发生的故障的原因是非法访问时,很难指定作为该原因的访问。这是因为,如果故障在非法访问时即显现出来,则可以指定这样的访问,但是故障通常不会立即显现出来。例如,在从非法访问时起直到故障实际发生为止已执行过许多处理的情况下,很难指定作为该非法访问的来源的处理。
另一方面,在诸如工作站的非嵌入式系统中,一般来说,为了保护存储器免受非法访问,使用了对各程序固有的虚拟地址空间。在这种情况下,在虚拟地址空间上运行的程序不能访问与该空间不相关联的存储器区域。当要使用另一程序的虚拟地址空间的内容时,例如,操作系统(OS,Operating System)充当不同虚拟地址空间上的程序之间的消息交换的媒介。此外,已知有这样一种技术,其改变与虚拟地址空间相关联的存储器区域,以准许对最初不准许被访问的存储器区域进行访问(日本专利特开第2005-209178号公报)。
然而,对受保护的存储器区域进行访问需要大的开销,并相当程度地降低了系统的执行速度。当经由OS交换消息时,必须将执行环境切换到被准许访问相应存储器区域的程序。此外,由于消息交换需要复制数据,因此,访问所需要的开销很大。
另一方面,当多个存储器区域与虚拟地址空间的一部分相关联时,例如,在使用将虚拟地址编入索引的缓存的系统中,需要在每当与存储器区域的对应关系发生改变时都闪存和无效化该缓存的处理。另外,当对虚拟地址与物理地址之间的对应关系进行缓存时,也必须对该缓存进行无效化。这些操作增加了访问所需的开销,并降低了访问后的执行速度。
发明内容
本发明能够提供一种抑制对存储器上被划分的区域的非法访问、并减轻对所述区域访问的过程的执行速度的降低的技术。
根据本发明的第一方面,提供了一种存储器保护方法,其用于保护存储器免受程序的非法访问,该存储器保护方法包括以下步骤:执行用于将所述存储器上的未划分的地址空间划分为多个区域的区域定义处理;执行用于响应于所述程序需要对所划分的区域中的至少两个区域进行访问的过程、对所述至少两个区域进行临时组合的组合处理;执行用于在所述组合处理中对所述区域进行组合之后调用所述过程的调用处理;以及执行用于在所述调用处理中所调用的过程被执行之后,使所组合的区域恢复到所述组合处理之前的状态的恢复处理。
根据本发明的第二方面,提供了一种信息处理装置,其用于保护存储器免受程序的非法访问,该信息处理装置包括:区域定义处理单元,其被构造为将所述存储器上的未划分的地址空间划分为多个区域;组合处理单元,其被构造为响应于所述程序需要对所划分的区域中的至少两个区域进行访问的过程,对所述至少两个区域进行临时组合;调用处理单元,其被构造为在所述组合处理单元对所述区域进行组合之后调用所述过程;以及恢复处理单元,其被构造为在所述调用处理单元所调用的过程被执行之后,使所组合的区域恢复到所述组合处理之前的状态。
通过下面参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。
附图说明
图1是示出信息处理装置10的结构的示例的框图;
图2是示出由CPU 101实现的功能结构的示例的框图;
图3是示出信息处理装置10中的操作的示例的第一个流程图;
图4是示出保护功能设置表109的示例的图;
图5是示出信息处理装置10中的操作的示例的第二个流程图;
图6A及图6B是例示在存储器上确保的多个保护区域与对这些区域的访问之间的关系的图;
图7是示出信息处理装置10的结构的示例的框图;
图8是示出由CPU 101实现的功能结构的示例的框图;
图9是示出信息处理装置10中的操作的示例的流程图;
图10是示出保护功能设置表109的示例的第一个图;
图11是示出保护功能设置表109的示例的第二个图;
图12是示出信息处理装置10的结构的示例的框图;
图13是示出信息处理装置10中的操作的示例的第一个流程图;
图14是示出保护功能设置表109的示例的第一个图;
图15是示出保护功能设置表109的示例的第二个图;
图16是示出保护功能设置表109的示例的第三个图;
图17是示出信息处理装置10中的操作的示例的第二个流程图;以及
图18A及图18B是示出包含在保护功能设置表109中的访问权限保持表113的示例的图。
具体实施方式
下面,将参照附图来详细描述本发明的优选实施例。应当注意,除非另外特别说明,否则在这些实施例中所陈述的各组件的相对结构、数字表达及数值并不限定本发明的范围。
图1是示出信息处理装置10的结构的示例的框图。
CPU(中央处理单元,Central Processing Unit)101对整个信息处理装置10进行控制。
存储器102包括存储不需要改变的程序及参数的ROM(只读存储器,Read Only Memory)以及临时存储从外部装置等供给的程序及数据的RAM(随机存取存储器,Random Access Memory)。
外部存储设备104包括硬盘及存储卡。请注意,外部存储设备104可以包括从信息处理装置上可拆卸的软盘(FD,Flexible Disk)、诸如CD(压缩盘,Compact Disk)的光盘、磁卡和光卡以及IC卡。
输入/输出接口105将数据输入到信息处理装置,并将数据输出到装置外部。输入/输出接口105由例如联系信息处理装置10与用户的用户接口、用来连接外部环境(例如网络)的通信接口等来实现。系统总线106连接上述各单元,使得能够交换数据。
在存储器102上,映射有各种程序及数据。验证程序107表示可能包含有可能会导致非法访问的错误的程序。在这种情况下,验证程序107包含有三个模块,即模块M11、M12及M13。在本实施例中,假设验证程序107的执行从模块M11开始。另外,在本实施例中,假设验证程序107需要一项任务。也就是说,验证程序107不需要两项或更多项任务。请注意,视使用验证程序107的环境而定,例如在UNIX OS环境中,可以将“任务”称为“线程”。通过调用保护管理程序108中的具有保护区域临时组合功能的过程调用处理(以下简称为“具有组合功能的过程调用处理”),来实现对配置于存储器的不同区域上的模块的过程调用(以下称为“公共过程”)。也就是说,假设验证程序107记述有用于调用该处理的过程。
保护管理程序108(存储器保护程序)包含有用于实现区域定义处理以及具有组合功能的过程调用处理的过程。指定预定设置信息的保护功能设置表109包括例如区域定义信息。
存储器管理单元103用作检查对存储器102的访问的合法性的存储器管理设备。存储器管理单元103包括例如MMU(存储器管理单元,MemoryManagement Unit)或MPU(存储器保护单元,Memory Protection Unit)。请注意,可以将存储器管理单元103包括在CPU 101内。存储器管理单元103在CPU 101的特权模式下运行。例如,当对存储器上不准许访问的区域进行访问时,一执行验证程序107,存储器管理单元103即检测出该访问处理为非法访问。当检测到非法访问时,存储器管理单元103向CPU 101生成异常。此时,存储器管理单元103保持与非法访问相关联的信息。例如,保持进行非法访问的地址以及指示非法访问是读取访问还是写入访问的信息。在异常生成时,CPU 101读出这些信息,并指明进行非法访问的位置。
下面将参照图2,来描述由图1中所示的CPU 101实现的功能结构的示例。请注意,功能组件主要在CPU 101读出并执行存储(或映射)在存储器102中的保护管理程序108时由CPU 101实现。
CPU 101实现了作为功能组件的区域定义处理单元11及访问控制单元12。
区域定义处理单元11确保存储器102上的区域。参照保护功能设置表109来确保这些区域,将存储器上的未划分地址空间划分为多个要确保的区域。在下文中,这些划分后的区域中的各区域也称为“保护区域”。请注意,区域定义处理单元11针对各保护区域来配置模块、分配地址空间并设置访问权限。
访问控制单元12具有控制对多个划分后的保护区域的处理的执行的功能,并包含有临时组合处理单元13、执行处理单元14及恢复处理单元15。临时组合处理单元13对区域定义处理单元11划分出的区域进行临时组合。通过该组合处理,例如,由于访问源区域与访问目的地区域被临时组合,因此,在该组合处理期间调用的对保护区域进行访问的公共过程可以直接访问所述两区域。
执行处理单元14进行控制,以调用和执行对被组合的区域进行访问的公共过程。恢复处理单元15在公共过程结束之后,使临时组合处理单元13所组合的区域恢复到组合处理之前的状态。
下面,将描述图1中所示的信息处理装置10中的操作。假设对存储器管理单元103进行了初始化,从而准许从CPU 101对存储器102的所有访问。
CPU 101始终在特权模式下操作。于是,设置存储器管理单元103所需的开销减小。请注意,只有当要设置存储器管理单元103时,CPU 101才可能在特权模式下操作。此外,只要对存储器管理单元103的访问在非特权模式下进行,则CPU 101就可以始终在非特权模式下操作。
在验证程序107执行之前,CPU 101根据保护管理程序108来执行区域定义处理。该处理在例如信息处理装置10的初始化过程中通过调用保护管理程序108来执行。请注意,区域定义处理可以在验证程序107的执行被请求之后来执行。也就是说,不对区域定义处理的执行定时进行特别限制,只要在验证程序107的存储器访问处理之前执行该区域定义处理即可。
图3是示出区域定义处理的示例的流程图。该处理在CPU 101读出并执行存储(或映射)在存储器102中的保护管理程序108时被实现。
CPU 101控制区域定义处理单元11参照图4中所示的保护功能设置表109在存储器102上确保与被请求的大小相对应的区域(S101)。请注意,如有必要,要确保的各区域可以包含映射到存储器的寄存器。如图4所示,保护功能设置表109指定保护区域的大小以及要配置的模块作为区域定义信息301。在图4的情况下,定义了保护区域R11、R12及R13,并按照被存储器管理单元103识别为不同区域的最小单位,对各保护区域的大小进行了四舍五入。例如,下面将考查其中通过物理地址0x0000至0x9fff指定的存储器区域是可用的情况。在这种情况下,当向保护区域R11分配从0x0000到0x1fff的区域、向保护区域R12分配从0x2000到0x5fff的区域、向保护区域R13分配从0x6000到0x9fff的区域时,可以在存储器上确保具有所请求的大小的区域。
然后,CPU 101控制区域定义处理单元11在步骤S101中确保的区域上配置模块及保护管理程序(S102)。根据图4中所示的保护功能设置表109,模块M11被配置在保护区域R11上,模块M12被配置在保护区域R12上,模块M13被配置在保护区域R13上。通过把存储在存储器中的内容复制到相应区域,来对程序(各个模块)进行配置。在这种情况下,即使程序本身由于程序的执行结果而改变,也可以通过重新复制程序使其恢复到初始状态。请注意,可以通过步骤S101中的处理来确保存储各个模块的存储器区域,这些区域在步骤S103及后续步骤中可以直接使用。在本实施例中,将调用对保护区域进行访问的过程所需的保护管理程序108和模块M11配置在单独的保护区域R11上。这允许在验证程序107中首先执行的模块M11调用保护管理程序108。请注意,只有调用对保护区域进行访问的过程所需的处理(程序)可以被分离,并且可以被配置在保护区域R11上。此外,可以准备未配置有模块的另一保护区域,并可以将保护管理程序108配置在其中。在这种情况下,针对配置有保护管理程序108的区域,可以准许从需要对保护区域的过程调用的模块进行访问。
CPU 101控制区域定义处理单元11将地址空间分配给在步骤S101中确保的区域(S103)。地址空间通过设置存储器管理单元103来分配。请注意,要分配的地址空间是当CPU 101执行各种控制时使用的那些地址空间。请注意,在本实施例中,要分配的各地址空间与物理地址空间相匹配。在这种情况下,当在验证程序107中发现错误时,可以直接使用由CPU 101所使用的地址,从而使得能够轻松地进行调试。此外,可以把不具备地址转换功能的MPU用作存储器管理单元103。当定义了虚拟地址空间时,即使当要配置在保护区域上的模块不能够被配置在连续物理地址空间上时,其也能够作为虚拟地址空间上的连续保护区域来被处理。请注意,理所当然地,可以将物理地址空间和虚拟地址空间作为不同空间来定义。
最后,CPU 101控制区域定义处理单元11来设置对保护区域的访问权限(S104)。针对配置有在验证程序107开始时首先执行的模块(这里是模块M11)的区域来设置访问权限。请注意,可以通过在存储器管理单元103中设置访问权限来进行访问权限的设置。也就是说,CPU 101对存储器管理单元103进行设置,以准许对分配给保护区域R11(模块M11被配置在其中)的地址范围0x0000至0x1fff的读写访问。在这样设置之后,存储器管理单元103基于由CPU 101提供的地址来检查验证程序107进行的访问的合法性。然后,存储器管理单元103可以将对超出上述范围以外的地址的访问检测为非法访问。
这样,区域定义处理结束。在区域定义处理结束之后,例如,当需要通过动态存储器分配来增加各保护区域的大小时,可以通过改变存储器管理单元103中的设置来重新定义保护区域。
图5是示出具有组合功能的过程调用处理的示例的流程图。该处理在CPU 101读出并执行存储(或映射)在存储器102中的保护管理程序108时被实现。在图3中所示的前述区域定义处理之后,执行具有组合功能的过程调用处理。例如,当执行验证程序107来调用用于执行保护管理程序108(更具体地说,是具有组合功能的过程调用处理)的过程时,开始具有组合功能的过程调用处理。
CPU 101控制临时组合处理单元13来对多个目标保护区域进行临时组合(S201)。也就是说,CPU 101对配置有模块M11(作为执行起点的模块)和保护管理程序108的保护区域与配置有包含公共过程的模块的保护区域进行临时组合。更具体地说,CPU 101改变存储器管理单元103中的设置,以对配置有包含公共过程的模块的保护区域,设置与为配置有保护管理程序108等的保护区域所设置的访问权限相同的访问权限。结果,两个保护区域被组合起来,模块M11和保护管理程序108被准许访问配置有包含公共过程的模块的保护区域。
在区域被组合之后,CPU 101控制执行处理单元14来调用公共过程(S202)。在基于公共过程的处理完成之后,CPU 101控制恢复处理单元15来重新分离在步骤S201中所组合的区域,即恢复组合处理之前的区域(S203)。请注意,如在步骤S201中所描述,该处理是通过改变存储器管理单元103中的设置来实现的。所以,重新禁止了对作为公共过程的访问目的地的保护区域的访问。
图6A及6B是例示在存储器上确保的多个保护区域与对这些区域的访问之间的关系的图。
保护区域在具有组合功能的过程调用处理执行之前处于图6A中所示的状态。在图6A中所示的状态下,准许从配置在保护区域R11上的模块M11对存储在同一保护区域中的保护管理程序108的访问501。然而,禁止从模块M11对配置在保护区域R12上的模块M12的访问502以及从模块M11对配置在保护区域R13上的模块M13的访问503。也就是说,访问502及503被检测为非法访问。
另一方面,在执行具有组合功能的过程调用处理时,保护区域处于图6B中所示的状态。在图6B中所示的状态下,CPU 101根据保护管理程序108对保护区域R11与R12进行组合。在该状态下进行的公共过程调用与访问505相对应。准许配置在保护区域R11与R12上的模块之间的访问。因此,访问506被检测为合法访问。请注意,从模块M12对非组合的保护区域R13的访问507被检测为非法访问。在公共过程完成之后,当CPU 101根据保护管理程序108执行区域分离处理时,保护区域R11与R12被重新分离。结果,保护区域被恢复到图6A中所示的状态。
如上所述,根据本实施例,可以抑制对存储器上的划分区域的非法访问,并减轻对所述区域访问的过程的执行速度的降低。此外,由于从验证程序107中把与保护区域相关联的定义信息分离作为保护功能设置表109,因此,可以灵活地设置保护区域的实际大小以及要配置的存储器区域。
下面将描述另一实施例。本实施例将说明其中对不包含描述的程序执行处理的情况。例如,验证处理之后的程序对应于这样的程序。
图7是示出根据本实施例的信息处理装置10的结构的示例的框图。请注意,相同的附图标记代表具有与图1中相同的功能的组件,这里不再对其进行重复描述。程序110不对用于调用保护管理程序108的具有组合功能的过程调用处理的任何过程进行描述。模块M21、M22及M23构成程序110。保护管理程序108包含用于执行过程调用转换处理的过程。
下面将参照图8,来描述根据本实施例的由CPU 101实现的功能结构的示例。请注意,功能结构主要在CPU 101读出并执行存储(或映射)在存储器102中的保护管理程序108时由CPU 101实现。
除了第一实施例中的功能组件以外,CPU 101实现作为新的功能组件的转换处理单元16。请注意,相同的附图标记代表具有与用来描述第一实施例的图2中相同的功能的组件。
转换处理单元16对程序110的处理内容进行转换。更具体地说,转换处理单元16从程序110中检测被定义为公共过程的过程,并将这些过程转换为调用保护管理程序108的具有组合功能的过程调用处理的过程。
下面,将描述信息处理装置10中的操作。
图9是示出过程调用转换处理的示例的流程图。过程调用转换处理是在执行区域定义处理之前执行的。
CPU 101控制转换处理单元16来基于保护功能设置表109在程序110中检测对保护区域的过程调用(S301)。如图10所示,根据第二实施例的保护功能设置表109定义保护区域的大小以及要配置的模块作为区域定义信息801。在这种情况下,对不同模块的所有过程调用均被检测为对保护区域的过程调用。
CPU 101参照保护功能设置表109,从所检测的对保护区域的过程调用中选择被定义为公共过程的过程(S302)。请注意,除了前述的区域定义信息之外,根据本实施例的保护功能设置表109还包括图11中所示的公共过程定义信息901。公共过程定义信息901保持准许从外部模块访问各个模块的公共过程的名称列表。例如,如果在步骤S301中检测到过程F1,则在步骤S302中选择该过程F1作为要进行转换的过程。另一方面,如果在步骤S301中检测到过程F5,则因为过程F5不包含在公共过程定义信息901中,所以在步骤S302中不选择过程F5。也就是说,在程序110执行时,对过程F5的调用被检测为非法访问。这样,过程调用转换处理具有检测一些非法访问而不必执行程序110的优点。
CPU 101将在步骤S302中选择的对保护区域的公共过程调用,转换为用于执行具有组合功能的过程调用处理的过程(S303)。在程序110的源代码内调用公共过程的位置处转换各过程调用。例如,在该位置处,将过程调用参照的过程名称,由实现保护管理程序108中包含的具有组合功能的过程调用处理的过程的参照名称来替换。当在程序110执行之前需要编译及链接处理时,在链接处理之前,将编译处理生成的目标代码内的外部参照过程名称(符号名称),由实现具有组合功能的过程调用处理的过程的参照名称来替换。采用该方式,也可以对过程调用进行转换。然后,过程调用转换处理结束。
在图9中所示的前述处理中,所有过程在程序执行之前被同时转换。作为选择,可以根据需要在程序执行期间转换需要的过程。
还可以通过使用公共过程定义信息901,来生成实现保护管理程序108中包含的具有组合功能的过程调用处理的过程。具有组合功能的过程调用处理中的所有过程调用具有相同的结构。也就是说,过程调用具有这样的结构,即在实现区域组合处理的过程与实现恢复被组合的区域所需的分离处理的过程之间对公共过程进行调用。如上所述,在步骤S201中实现保护区域组合处理,在步骤S203中实现保护区域分离处理。这样,仅有一个具有该结构的过程被准备作为模板,由该模板调用的公共过程被改变为在公共过程定义信息901中定义的公共过程。在生成具有组合功能的过程调用处理时,可以针对各公共过程来生成具有组合功能的过程调用处理。
请注意,可以通过与图7中所示的信息处理装置不同的信息处理装置,来执行过程调用转换处理以及具有组合功能的过程调用处理。在这种情况下,执行过程调用转换处理以及具有组合功能的过程调用处理的信息处理装置不需要具有存储器管理设备。
如上所述,根据本实施例,程序具有后向兼容性。也就是说,在应用根据本实施例的处理时,不需要重新改变程序的描述。此外,可以在不改变程序的情况下,改变要配置在保护区域上的模块。
下面将描述又一实施例。本实施例将说明通过两项或更多项任务来执行程序的验证程序。
如果存储器管理单元103保持各项任务的访问权限设置,并且能够确定进行过访问的任务,则可以实现与前述实施例中相同的访问管理。然而,一般来说,需要软件来动态地改变存储器管理设备的设置。因此,在本实施例中,通过使用由操作系统(OS,Operating System)提供的多任务处理,来管理各项任务的访问。
图12是示出根据本实施例的信息处理装置10的结构的示例的框图。请注意,相同的附图标记代表具有与前述组件中相同的功能的组件,这里不再重复对其的描述。
存储器102上的程序111包含有模块M31、M32及M33,这些模块各自需要一项任务。任务由OS 112来提供。在这些任务当中,任务T1被分配给模块M31的执行,任务T2被分配给模块M32的执行,任务T3被分配给模块M33的执行。在存储器102上,存储有保持各项任务的保护区域的组合状态的访问权限保持表113。
下面,将描述本实施例的信息处理装置10中的操作。
图13是示出区域定义处理的示例的流程图。该处理在CPU 101读出并执行存储(或映射)在存储器102中的保护管理程序108时被实现。请注意,下面只说明与图3不同的处理。不同之处在于步骤S402中的处理。至于其他处理,步骤S401、S403及S404分别与图3中所示的步骤S101、S103及S104相同。
在步骤S402中,CPU 101控制区域定义处理单元11在步骤S401中确保的区域上配置模块、保护管理程序、OS及访问权限保持表。也就是说,除了步骤S102中的处理之外,还在保护区域上配置OS及访问权限保持表。
以上对区域定义处理的序列进行了描述。
下面将参照图14至图16,来描述保护功能设置表109的示例。
图14示出了区域定义信息1201的示例。对于未配置有模块的保护区域(这里为区域R33及R34),通过使用包含在保护功能设置表109中的配置定义信息,来决定要配置保护管理程序108、OS 112及访问权限保持表113的区域。图15示出了配置定义信息1301的示例。根据图15中所示的配置定义信息1301,将保护管理程序108及访问权限保持表113配置在保护区域R33上,将OS 112配置在保护区域R34上。
基于包含在保护功能设置表109中的访问权限定义信息1401,来设置保护区域R33及R34的访问权限。图16示出了访问权限定义信息1401的示例。图16中所示的访问权限定义信息1401中的各选中符号表示准许访问。例如,访问权限定义信息1401表明准许从所有访问区域对保护区域R33进行访问。
从如同保护区域R33的准许从所有区域对其访问的区域中,不能检测到非法访问。然而,可以在高速下进行对保护区域R33的访问。当在ROM上确保保护区域R33时,不存在因非法访问而重写内容的危险。
图17是示出根据第三实施例的具有组合功能的过程调用处理的示例的流程图。该处理在CPU 101读出并执行存储(或映射)在存储器102中的保护管理程序108时被实现。在图13中所示的上述区域定义处理之后,执行具有组合功能的过程调用处理。例如,当执行程序111并调用执行保护管理程序108的过程(具有组合功能的过程调用处理)时,开始具有组合功能的过程调用处理。请注意,下面将只说明与第一实施例中的图5不同的处理。不同之处在于步骤S502及S505的处理。至于其他处理,步骤S501、S503及S504分别与图5中所示的步骤S201、S202及S203相同。
在步骤S502中,CPU 101基于步骤S501中的结果来更新访问权限保持表113(S502)。之后,CPU 101调用公共过程(S503)。在基于过程的处理完成时,CPU 101将在步骤S501中组合的区域重新分离,以使其恢复到组合之前的状态(S504)。然后,CPU 101基于步骤S504中的结果重新更新访问权限保持表113(S505)。请注意,在步骤S501中的处理开始之后,直到步骤S502中的处理完成时为止,禁止环境切换。同样,在步骤S504中的处理开始之后,直到步骤S505中的处理完成时为止,禁止环境切换。可以使用OS的功能来禁止环境切换。
图18A及图18B示出了保持各项任务的保护区域的组合状态的访问权限保持表113。访问权限保持表113中的各选中符号表示准许访问。请注意,下面将说明在任务T2对保护区域R31执行具有组合功能的过程调用处理时改变访问权限保持表113的实施例。
图18A中所示的访问权限保持表113处于具有组合功能的过程调用处理执行之前的状态。如果在图17中所示的步骤S501中准许从任务T2对保护区域R31的访问,则在步骤S502中,访问权限保持表113从图18A中所示的状态被改变到图18B中所示的状态。之后,如果步骤S504中禁止从任务T2对保护区域R31的访问,则在步骤S505中,访问权限保持表113从图18B中所示的状态被改变到图18A中所示的状态。
下面,将描述当在步骤S503中调用公共过程、并且OS 112在所述公共过程的执行期间执行环境切换以从任务T2向任务T3进行执行转移时执行的操作。
假设,例如,在环境切换之前,访问权限保持表113处于图18B中所示的状态。根据图18B,准许任务T1对保护区域R31的访问,以及在环境切换之后执行的任务T2对保护区域R31的访问。如果环境切换未改变存储器管理单元103中的设置,则切换之后的任务T2能够在不执行任何具有组合功能的过程调用处理的情况下访问保护区域R31。因此,即使任务T2执行的模块包含有导致非法访问的错误,也不能够被检测出来。
为了防止这种情况,在环境切换中,OS 112基于访问权限保持表113来改变存储器管理单元103中的设置,以禁止对保护区域R31的访问。然后,在切换之后,当任务T2在不对保护区域R31执行具有组合功能的过程调用处理的情况下访问保护区域R31时,该访问被检测为非法访问。利用这一控制,即使任务T2所执行的模块包含有导致非法访问的错误,也能够被检测出来。
如上所述,根据本实施例,执行需要多项任务的程序的信息处理装置能够执行与前述实施例中相同的处理。通过使用未配置有模块的保护区域,还可以保护存储有OS的存储器区域。请注意,毋庸置言,除OS以外的程序及数据(例如公用库)也可以配置在未配置有模块的保护区域上,并且也可以得到保护。
请注意,本发明并不局限于以上描述并在附图中例示的实施例,可以在不偏离本发明的范围的情况下适当地构造各种变型例。
根据本发明,可以抑制对存储器上被划分的区域的非法访问,并减轻对这些区域访问的过程的执行速度的降低。
(其他实施例)
还可以通过读出并执行记录在存储设备上的程序来执行上述实施例的功能的系统或装置(或诸如CPU或MPU的设备)的计算机,来实现本发明的各方面;并且可以利用由通过例如读出并执行记录在存储设备上的程序来执行上述实施例的功能的系统或装置的计算机来执行各步骤的方法,来实现本发明的各方面。为此,例如经由网络或从充当存储设备的各种类型的记录介质(例如计算机可读存储介质)将程序提供给计算机。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明并不局限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽泛的解释,以涵盖所有的这类变型例及等同结构和功能。

Claims (17)

1.一种存储器保护方法,其用于保护存储器免受程序的非法访问,该存储器保护方法包括以下步骤:
执行用于将所述存储器上的未划分的地址空间划分为多个区域的区域定义处理;
执行用于响应于所述程序需要对所划分的区域中的至少两个区域进行访问的过程、将所述至少两个区域临时组合的组合处理;
执行用于在所述组合处理中对所述区域进行组合之后调用所述过程的调用处理;以及
执行用于在所述调用处理中所调用的过程被执行之后、使所组合的区域恢复到所述组合处理之前的状态的恢复处理。
2.根据权利要求1所述的存储器保护方法,其中,所述程序包含多个过程,并具有用于在调用对所划分的区域进行访问的所述过程之前调用所述组合处理的代码,并且
所述组合处理在被所述程序调用时执行。
3.根据权利要求1或权利要求2所述的存储器保护方法,该存储器保护方法还包括以下步骤:
执行用于确定所述程序对所述存储器的访问的合法性的存储器管理处理,
其中,在所述程序进行对所划分的区域的访问而不调用所述组合处理的情况下,确定该访问是非法访问。
4.根据权利要求1所述的存储器保护方法,该存储器保护方法还包括以下步骤:
执行通过从所述程序中检测对所划分的区域进行访问的过程并转换所述程序的处理内容以在所述调用处理中调用所检测到的过程的转换处理。
5.根据权利要求4所述的存储器保护方法,其中,在所述转换处理中,所述程序的源代码被改变。
6.根据权利要求4或权利要求5所述的存储器保护方法,其中,在所述转换处理中,所述程序的目标代码的外部参照过程名称被改变。
7.根据权利要求4所述的存储器保护方法,其中,在所述转换处理中,在所述程序执行之前执行所述转换。
8.根据权利要求4所述的存储器保护方法,其中,在所述转换处理中,基于过程定义信息从所检测到的过程中选择要转换的过程,并对所选择的过程进行转换,所述过程定义信息指定被授权访问所划分的区域的过程的名称。
9.根据权利要求1所述的存储器保护方法,其中,所述未划分的地址空间是物理地址空间或虚拟地址空间。
10.根据权利要求1所述的存储器保护方法,其中,所述非法访问是读取访问或写入访问。
11.根据权利要求1所述的存储器保护方法,其中,所述程序包含至少一个模块。
12.根据权利要求11所述的存储器保护方法,其中,在所述区域定义处理中所划分的区域至少具有包含至少一个模块的区域以及不包含模块的区域。
13.根据权利要求11所述的存储器保护方法,其中,在所述区域定义处理中,基于指定要划分的区域的大小以及要配置在所述区域上的模块的区域定义信息来划分所述区域。
14.根据权利要求12所述的存储器保护方法,其中,在所述区域定义处理中,在所述区域被划分之后,基于指定所划分的区域之中的各区域的访问权限的访问权限定义信息,为所述不包含模块的区域设置访问权限。
15.根据权利要求12所述的存储器保护方法,其中,在所述区域定义处理中,在所述区域被定义之后,基于指定要配置在所述不包含模块的区域上的信息的配置定义信息,来在该区域上配置信息。
16.根据权利要求1所述的存储器保护方法,其中,与操作系统中的各项任务相对应地管理在所述区域定义处理中所划分的区域的状态。
17.一种信息处理装置,其用于保护存储器免受程序的非法访问,该信息处理装置包括:
区域定义处理单元,其被构造为将所述存储器上的未划分的地址空间划分为多个区域;
组合处理单元,其被构造为响应于所述程序需要对所划分的区域中的至少两个区域进行访问的过程,将所述至少两个区域临时组合;
调用处理单元,其被构造为在所述组合处理单元对所述区域进行组合之后调用所述过程;以及
恢复处理单元,其被构造为在所述调用处理单元所调用的过程被执行之后,使所组合的区域恢复到组合处理之前的状态。
CN2009102044111A 2008-10-01 2009-09-30 存储器保护方法及信息处理装置 Expired - Fee Related CN101714124B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-256636 2008-10-01
JP2008256636A JP5225003B2 (ja) 2008-10-01 2008-10-01 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体

Publications (2)

Publication Number Publication Date
CN101714124A true CN101714124A (zh) 2010-05-26
CN101714124B CN101714124B (zh) 2012-08-15

Family

ID=41510734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102044111A Expired - Fee Related CN101714124B (zh) 2008-10-01 2009-09-30 存储器保护方法及信息处理装置

Country Status (4)

Country Link
US (1) US20100082929A1 (zh)
EP (1) EP2172844A1 (zh)
JP (1) JP5225003B2 (zh)
CN (1) CN101714124B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108369558A (zh) * 2015-11-25 2018-08-03 罗伯特·博世有限公司 用于运行微控制器的方法
CN109992532A (zh) * 2019-04-10 2019-07-09 北京智芯微电子科技有限公司 存储空间的访问权限管理方法及存储权限管理单元
CN112446059A (zh) * 2019-08-28 2021-03-05 美光科技公司 使用保险丝防止行激活

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101799858A (zh) * 2010-04-08 2010-08-11 华为终端有限公司 Flash数据保护方法及装置
US8601579B2 (en) * 2011-06-03 2013-12-03 Apple Inc. System and method for preserving references in sandboxes
JP6214142B2 (ja) * 2012-10-09 2017-10-18 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
CN103699434B (zh) * 2013-12-17 2018-05-08 天津国芯科技有限公司 一种适用于多应用之间安全访问的mpu及其多应用之间安全访问的方法
US11416421B2 (en) 2016-07-19 2022-08-16 Cypress Semiconductor Corporation Context-based protection system
US10802853B2 (en) 2016-10-14 2020-10-13 Seagate Technology Llc Active drive
GB2570474B (en) * 2018-01-26 2020-04-15 Advanced Risc Mach Ltd Region fusing
US10809924B2 (en) * 2018-04-12 2020-10-20 Webroot Inc. Executable memory protection

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677546A (en) * 1984-08-17 1987-06-30 Signetics Guarded regions for controlling memory access
JPH01201751A (ja) * 1988-02-05 1989-08-14 Matsushita Electric Ind Co Ltd メモリー保護装置
US5557771A (en) * 1990-12-01 1996-09-17 Hitachi, Ltd. Data processing system and storage device and auxiliary memory bits for controlling data protection in the storage device
JP3454854B2 (ja) * 1992-01-16 2003-10-06 株式会社東芝 メモリ管理装置及び方法
JPH07200317A (ja) * 1993-12-28 1995-08-04 Toshiba Corp 操作権管理装置
CN2249922Y (zh) * 1995-07-24 1997-03-19 刘存亮 微型计算机软硬盘保护装置
JP4621314B2 (ja) * 1999-06-16 2011-01-26 株式会社東芝 記憶媒体
JP4127587B2 (ja) * 1999-07-09 2008-07-30 株式会社東芝 コンテンツ管理方法およびコンテンツ管理装置および記録媒体
US20010034838A1 (en) * 2000-01-14 2001-10-25 Motoshi Ito Control program, device including the control program, method for creating the control program, and method for operating the control program
WO2001065366A1 (en) * 2000-03-02 2001-09-07 Alarity Corporation System and method for process protection
US7373646B1 (en) * 2003-04-04 2008-05-13 Nortel Network Limited Method and apparatus for sharing stack space between multiple processes in a network device
JP2005050286A (ja) * 2003-07-31 2005-02-24 Fujitsu Ltd ネットワークノードマシンおよび情報ネットワークシステム
JP2005209178A (ja) 2003-12-24 2005-08-04 Matsushita Electric Ind Co Ltd メモリ保護装置、メモリ保護方法及びメモリ保護プログラム
US20050144408A1 (en) * 2003-12-24 2005-06-30 Kenji Ejima Memory protection unit, memory protection method, and computer-readable record medium in which memory protection program is recorded
US20070271433A1 (en) * 2004-06-15 2007-11-22 Sony Corporation Information Management Device and Information Management Method
US8898246B2 (en) * 2004-07-29 2014-11-25 Hewlett-Packard Development Company, L.P. Communication among partitioned devices
JP2006318841A (ja) * 2005-05-16 2006-11-24 Funai Electric Co Ltd 液晶用バックライト
DE102006035662A1 (de) * 2006-07-31 2008-02-14 Infineon Technologies Ag Datenverarbeitungseinrichtung und Verfahren zum Überwachen des korrekten Betriebs einer Datenverarbeitungseinrichtung

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108369558A (zh) * 2015-11-25 2018-08-03 罗伯特·博世有限公司 用于运行微控制器的方法
CN109992532A (zh) * 2019-04-10 2019-07-09 北京智芯微电子科技有限公司 存储空间的访问权限管理方法及存储权限管理单元
CN112446059A (zh) * 2019-08-28 2021-03-05 美光科技公司 使用保险丝防止行激活

Also Published As

Publication number Publication date
CN101714124B (zh) 2012-08-15
US20100082929A1 (en) 2010-04-01
EP2172844A1 (en) 2010-04-07
JP2010086410A (ja) 2010-04-15
JP5225003B2 (ja) 2013-07-03

Similar Documents

Publication Publication Date Title
CN101714124B (zh) 存储器保护方法及信息处理装置
CN100428202C (zh) 存储器访问控制装置
CN1933647B (zh) 外部存储器管理装置和外部存储器管理方法
CN101300584B (zh) 防止对软件或运行时数据的未经授权的修改的方法
CN109840410A (zh) 一种进程内数据隔离与保护的方法和系统
TW201941049A (zh) 用於轉換詮釋資料處理的指令的系統和方法
CN102096642B (zh) 存储器保护装置及存储器保护方法
JP6984710B2 (ja) コンピュータ装置およびメモリ管理方法
CN109710317A (zh) 系统启动方法、装置、电子设备及存储介质
US20070271609A1 (en) Security system of flash memory and method thereof
CN105528179A (zh) 存储器位置之间控制的转移的系统和方法
CN109271789A (zh) 恶意进程检测方法、装置、电子设备及存储介质
CN101520754A (zh) 内存越界访问的定位方法及装置
US7814334B2 (en) Method and apparatus for changing and adding activation keys for functions of digital content without having to change and recompile the digital content
CN107463513A (zh) 在存储位置之间转移控制的系统和方法
US7127675B1 (en) Method and system for automatically revising software help documentation
US20020129270A1 (en) Electronic device for providing software protection
CN107092517B (zh) 一种sdk工具包的生成方法及装置
CN103729598A (zh) 数据安全互联系统及其建立方法
US6925569B2 (en) Secured microprocessor comprising a system for allocating rights to libraries
CN100576225C (zh) 外部存储器管理装置和外部存储器管理方法
CN108563578A (zh) Sdk兼容性检测方法、装置、设备及可读存储介质
US8321668B2 (en) Control of data access by dynamically verifying legal references
CN114254346A (zh) 一种数据存储的处理方法、系统、设备及介质
CN103729600A (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: 20120815

Termination date: 20180930

CF01 Termination of patent right due to non-payment of annual fee