嵌入式软件的保护方法

文档序号:6444704阅读:205来源:国知局
专利名称:嵌入式软件的保护方法
技术领域
本发明是关于一种软件保护的技术,特别是关于一种避免嵌入式软件在未经授权的硬件上使用的方法。
背景技术
在当今信息科技发达的时代,信息、通讯网络与消费性电子产品是现代人进行信息交流及数据处理不可缺少的辅助工具。有鉴于此,相关产品制造商对这一庞大的消费商机,无不倾力进行研发设计,期望能制造出符合消费者需求的信息设备,借以获得大多数消费者的青睐,进而提高企业本身的竞争力。
要提高产品的竞争力,除产品轻巧、美观及硬件条件能够满足消费者的需求外,另一个决定因素即在于产品附加功能是否符合消费大众的需求,若产品附加的功能越接近人性化,则越能为大多数消费者接受。其中关键在于信息设备内部的嵌入式软件(Embedded Software)。该嵌入式软件是写入硬件内部,用以负责硬件的驱动、过程控制及接口处理。因此一套功能完整的嵌入式软件可提升信息设备的价值与竞争优势,这也增加了嵌入式软件被为盗用的可能性,这就令合法拥有该嵌入式软件制造商遭受庞大的利益损失,进而阻碍了日后的发展。
虽然嵌入式软件是写入硬件内部,但实际上,嵌入式软件与硬件之间并无所谓的相依关系,也就是盗用者通常只需复制嵌入式软件的执行码,即可在另一个硬件上执行。如此不足,对程序撰写人员造成严重打击,也让制造商遭受重大的损失。因为竞争对手仅需花很少的成本对盗用来的软件内容稍作改良,再以低于一般市价的价钱行销包含盗用嵌入式软件的信息设备,使合法拥有嵌入式软件的信息设备制造商毫无竞争力可言,这对真正投入时间、成本进行软件撰写的制造商来说,着实是一不平等的待遇。为弥补嵌入式软件的这一缺点,程序撰写人员在嵌入式软件内容中加入检查程序,该检查程序是当嵌入式软件在硬件中使用时,对硬件进行检查,以核对硬件的使用条件与设计者的设定是否相同,若相同,即开放嵌入式软件在该硬件上提供的附加功能,如否,嵌入式软件就无法在硬件上运行;该检查程序虽对嵌入式软件提供防护措施,但此措施仅仅是一个简单的防护,因为对于熟悉程序撰写的人士,程序中所列的检查条件可轻易经由工具软件追踪而加以修改,或将检查程序中检查硬件的程序代码跳过,形成硬件检查已成功的假象,这样就可在任一个硬件上使用被盗用的嵌入式软件。因此如何将嵌入式软件的某些机制与硬件的特性配合,不易被破解,以使嵌入式软件不再被人任意盗用,是为目前亟待解决的问题。

发明内容
为克服上述现有技术的缺点,本发明的主要目的在于提供一种嵌入式软件的保护方法,它可将嵌入式软件的某些机制,与硬件的特性配合,不易被破解,防止嵌入式软件被任意复制。
根据以上所述的目的,本发明即提供一种嵌入式软件的保护方法,它不是通过检查硬件来保护嵌入式软件,而是借由基本输出入系统(Basic Input Output System,以下简称为BIOS)的功能,达到保护嵌入式软件的目的。因BIOS是信息设备内所含主机板上的韧体,其与信息设备内组设的硬件具有某些程度上的关联性,如嵌入式软件搭配非设定的BIOS,也就是嵌入式软件是在未经授权的硬件内部使用,因该硬件内部的BIOS设定与嵌入式软件配合的BIOS的设定不同,故嵌入式软件无法在未经授权的硬件上执行附加功能,又因BIOS是与硬件相关,故很难通过软件工具加以破解,这样就可有效保护嵌入式软件。
本发明的嵌入式软件的保护方法是,使用者要在某一信息设备上执行嵌入式软件提供的功能时,(1)令该嵌入式软件所含的主程序将原本要传递的参数放置在信息设备内部组设的缓冲器(Buffer)中,之后,嵌入式软件借由BIOS提供的功能,将参数的控制权移转给信息设备内部的BIOS;(2)BIOS在取得参数控制权后,对缓冲器内的参数进行编码及重排,并依不同的顺序将参数转移至另一个存取接口内,随后将参数的控制权交还给嵌入式软件;(3)嵌入式软件的主程序随即呼叫所含的子程序,并将参数的控制权交由子程序,令子程序能够从内定参数地址中取出参数,并判别参数值正确与否,若参数值正确,使用者即可在该信息设备内执行嵌入式软件提供的功能,反之,如子程序读取的参数为错误值,即表示目前嵌入式软件所处的信息设备并未经过授权,故使用者无法在信息设备内使用嵌入式软件附加的功能。
综合上述,本发明的嵌入式软件的保护方法是通过BIOS提供的功能,将嵌入式软件的部份机制改成需要与硬件特性相配合,不易受到他人的破解,且因嵌入式软件所含的运行参数是经由BIOS存放在一储存接口中,故当嵌入式软件被使用在未经授权的信息设备内部时,嵌入式软件依此一信息设备内的BIOS提供的参数地址读出的参数值必无法被嵌入式软件所用,因正确的参数值是存放在经合法授权的信息设备中,故嵌入式软件附加的功能无法在未经授权的信息设备上使用,达到有效保护嵌入式软件的目的。
图附说明

图1为一方块图,显示本发明针对储存服务器内所含的储存管理软件在运行中执行保护措施的架构示意图;以及图2为一流程图,显示本发明针对储存服务器内所含的储存管理软件在运行中执行保护措施的各项程序步骤。
具体实施例方式
实施例在以下实施例中,本发明的嵌入式软件的保护方法是应用在保护储存服务器(Storage Server)所含的储存管理(Storage Management)软件,用以避免储存服务器内的储存管理软件被人任意复制后,使用在未经授权的储存服务器上。在此首先需注意的是,本发明的嵌入式软件的保护方法并不限定仅可用于储存服务器所含的储存管理软件中,广义而言;本发明是可适用于任何具有嵌入式软件的信息设备上,用以对信息设备内所含的嵌入式软件提供保护措施。
图1为一方块图,显示本发明针对储存服务器内所含的储存管理软件在运行中执行保护措施的架构示意图。如图所示,当客户端1的使用者通过网络2登录储存服务器3时,储存服务器3在接受使用者的登录申请后,随即进入备用状态,待使用者选取储存管理软件30所执行的功能。当使用者选定储存管理软件30所提供的一磁盘阵列(DiskArray)相关功能后,储存管理软件30随即依循其内所设定的流程执行磁盘阵列功能;储存管理软件30的主程序在呼叫磁盘阵列子程序前,首先,令主程序将原本要传递给磁盘阵列子程序的参数,先行在内存32所含的地址A中存放,内存32的地址是指内存中的缓冲器;接着,储存管理软件30通过BIOS 31定义的方式呼叫BIOS 31所提供的系统管理中断(System Management Interrupt,以下简称为SMI)功能,并传递一参数给SMI,令SMI了解要处理的事件的种类,本发明即利用这一SMI具有的特性,做为储存管理软件30的保护方法。因软件中有许多功能,且这些功能大都是借由函数(Function)方式加以实现,并由主程序呼叫及传递参数来完成,其形式为call function(parameter1,……parameter n)。本发明即通过SMI做为参数传递的工具,故当主程序将原本要传递给磁盘阵列子程序的参数,先行在内存32所含的地址A中存放后,即需接着呼叫SMI,以将参数的控制权通过SMI提供的功能,转移给BIOS 31,BIOS 31在接掌参数的控制权后,将存放在内存32所含地址A中的参数做执行编码及重新排列等动作,BIOS 31是以不同的顺序将这些参数重新转移至内存32所含的另一地址B中储存,之后,BIOS 31也通过SMI将参数的控制权转移给储存管理软件30,储存管理软件30在获得参数的控制权时,随即呼叫磁盘阵列子程序,并将参数的控制权交由磁盘阵列子程序掌控,但先前主程序已经由BIOS 31所附的SMI,将参数置放在地址B中,使得储存管理软件30所呼叫的磁盘阵列子程序没有携带任何参数,磁盘阵列子程序需从BIOS 31所含的内定参数地址中取出参数并进行译码,借以恢复原始参数值。有了正确的参数值才可令使用者选取的磁盘阵列功能能够在储存服务器3继续执行,反之,若储存管理软件30被盗用,在未经授权的储存服务器上执行其所附加的功能,使磁盘阵列子程序从该储存服务器所含BIOS的内定参数地址取得的参数是错误值,使磁盘阵列的功能无法利用正确的参数执行,从而失去储存服务器最主要的功能。
图2为一流程图,显示本发明针对储存服务器内所含的储存管理软件在运行中执行保护措施的各项程序步骤。如图所示,首先是由客户端1的使用者借由网络2登录储存服务器3,以选取储存管理软件所附加的磁盘阵列相关功能,随后进至步骤S2。
在步骤S2中,储存管理软件的主程序在呼叫磁盘阵列子程序前,先行将原本要传递给磁盘阵列子程序使用的参数存放在内存32所含的地址A,此执行程序是如下所示,随后进至步骤S3。
Write par 1 to memorywrite par 2 to memorywrite par n to memory在步骤S3中,储存管理软件30的主程序通过BIOS 31所规范的方式呼叫SMI,借由SMI,将对参数的控制权移转至BIOS 31,使BIOS31能够对参数的顺序进行调整,其程序内容是如下所示,随后进至步骤S4。
call SMI with a parameter torearrange the par 1~par n toCMOS NvRAMCall fun()end在步骤S4中,BIOS31在取得地址A中存放参数的控制权后,随即对这些参数进行编码及重新排列,BIOS31是将地址A中的参数以不同的顺序转移至内存32所含的另一地址B中储存,并将这些参数的顺序进行调整,这段程序内容如下所示,随后进至步骤S5。
BIOS SMI codeget par 1 from memoryget par n from memoryclear all memory bufferput par 5 to CMOS NvRAMput par n to CMOSput par 1 to CMOS在步骤S5中,BIOS 31在完成参数顺序调整作业后,将参数的控制权交由储存管理软件30的主程序掌控,使储存管理软件30能够呼叫磁盘阵列子程序执行使用者选定的功能,并将参数的控制权转移给磁盘阵列子程序。由于先前参数已由BIOS 31存放在地址B中,故此时主程序所呼叫的磁盘阵列子程序中并未含有任何参数数据供磁盘阵列子程序使用,随后进至步骤S6。
在步骤S6中,磁盘阵列子程序因无任何参数资料可供其执行功能时使用,故需根据BIOS 31中提供的内定参数地址取出参数,并进行译码,以恢复参数初始的内容,随后进至步骤S7。
在步骤S7中,磁盘阵列子程序对已恢复的参数进行检查,判别所取出的参数值是否正确,若参数值正确,进至步骤S8,如否,则直接进至步骤S9。
在步骤S8中,磁盘阵列子程序可利用取出的正确参数资料,执行使用者选取的功能。
在步骤S9中,参数值错误是表示储存管理软件在未经授权的储存服务器上执行功能运作,也就是储存管理软件被盗用,故其从BIOS提供的内定参数地址中取得的参数值,并不是原先由BIOS31所存入的参数,故无法在未经授权的储存服务器上执行磁盘阵列的相关功能。
综合上述,本发明的嵌入式软件的保护方法是通过BIOS上提供的SMI功能,进行参数顺序的调整及转移作业,将软件功能运行中所需的参数,存放在BIOS提供的内定参数地址内,借以利用BIOS与硬件相关的特性,使软件仅可在特定硬件内的BIOS配合下,执行其附加的功能,无法在其它硬件上使用,嵌入式软件即使遭受盗版,也无法使用,达到保护软件的目的。
权利要求
1.一种嵌入式软件的保护方法,是将嵌入式软件的认证机制,改成需要与设定的电子信息设备硬件特性相配合,其特征在于,该电子信息设备具有一储存装置及一韧体,使该嵌入式软件仅可在所设定的电子信息设备上执行功能操作,该方法包括(1)令该嵌入式软件所含的第一程序将要传递的参数放置在电子信息设备内部组设的储存装置的地址中,使该嵌入式软件借由韧体所提供的功能,将参数的控制权转移给电子信息设备内部所含的韧体;(2)令该韧体将储存装置内的参数依不同的顺序转移至储存装置的另一个地址内,并将参数的控制权交还给该嵌入式软件;以及(3)令该嵌入式软件呼叫其所含的第二程序,并将参数的控制权交由第二程序,令第二程序能够从内定参数地址中取出参数,并判别参数值正确与否,若参数值正确,嵌入式软件即可在电子信息设备内运行,反之,则无法在电子信息设备内使用。
2.如权利要求1所述的嵌入式软件的保护方法,其特征在于,该电子信息设备是一储存服务器。
3.如权利要求1所述的嵌入式软件的保护方法,其特征在于,该储存装置是一内存。
4.如权利要求1所述的嵌入式软件的保护方法,其特征在于,该韧体是一基本输出入系统。
5.如权利要求1所述的嵌入式软件的保护方法,其特征在于,该第一程序是指嵌入式软件所含的主程序。
6.如权利要求1所述的嵌入式软件的保护方法,其特征在于,步骤(1)所述的储存装置的地址是指内存中的缓冲器。
7.如权利要求1所述的嵌入式软件的保护方法,其特征在于,该韧体所提供的功能是BIOS内所含的系统管理中断服务。
8.如权利要求1所述的嵌入式软件的保护方法,其特征在于,在该步骤(2)中,将参数以不同顺序转移至储存装置之前,还包括对参数进行编码、重排的程序。
9.如权利要求1所述的嵌入式软件的保护方法,其特征在于,该第二程序是指嵌入式软件所含的子程序。
10.如权利要求1所述的嵌入式软件的保护方法,其特征在于,该嵌入式软件是一储存管理软件。
全文摘要
一种嵌入式软件的保护方法,防止该软件在未经授权的硬件上使用,它是借由电子信息设备内部韧体提供的转移功能进行保护措施,该软件的主程序在呼叫参数前,先将参数放置在缓冲器中,再通过转移功能将缓冲器内的参数依不同的顺序移至另一存取接口,该软件呼叫其所含的子程序时,因参数已置于另一存取接口,故子程序内并不夹带任何参数,需从内定参数地址中取出参数并进行译码,该软件需要有正确的参数才可正常执行附加功能,若该软件使用在未经授权的硬件上,则子程序取出的参数是错误值,令硬件无法执行该软件的附加功能,从而防止他人使用未经授权的软件。
文档编号G06F12/10GK1536479SQ0310932
公开日2004年10月13日 申请日期2003年4月7日 优先权日2003年4月7日
发明者陈志伟 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1