专利名称:一种基于系统级芯片平台的应用进程保护方法及系统的利记博彩app
技术领域:
本发明涉及芯片设计领域,更具体的说,是一种基于系统级芯片平台的应用进程保护方法。
背景技术:
目前,芯片厂商提供的系统级芯片(System On a Chip,SOC)平台通常包括应用平台和应用进程。参见图1所示,现有技术中SOC平台包括应用进程11和应用平台12。其中,所述应用进程11,用于实现用户终端的应用需求;所述应用平台12,用于为应用进程提供运行环境。所述应用进程11包括经过优化的多媒体编码模块和应用程序等,所述应用平台12,包括操作系统和标准C库等。由于安谋(ARM)架构的开放性,要确保具有高附加值的应用进程仅限于工作在特定的SOC平台上时,需要对应用进程实施有效的保护方法,用来验证应用进程是否工作在合法的SOC平台上。
在现有的嵌入式系统中,验证应用进程是否工作在合法的SOC平台的方法为应用进程从特定系统的输入/输出(Input/Output,I/O)地址读取系统标识字,通过该系统标识字与应用进程自身保存的系统标识字是否相同来判断目前运行的SOC平台是否合法。但是,当此方法应用于复杂的微处理器核,例如在ARM架构中,则会出现以下问题在一个非法的SOC平台上,可能特定系统的I/O地址不存在或应用进程不能访问该I/O地址,从而当应用进程访问该I/O地址时,微处理器会产生一个异常,从而导致系统立即报错或发生崩溃。此时,用户终端可以通过定位得出是该I/O地址访问指令导致了异常情况的出现,只需要扫描该应用进程,将所有对该地址访问的指令替换为等效的赋值指令即可破解对应用进程的保护,从而应用进程可以在非法的SOC平台上运行。
综上所述,当现有技术中对应用进程的保护方法应用于复杂的微处理器核时可能导致系统出现异常,并且容易被用户终端察觉,从而用户终端可以通过采取相应的手段破解该保护方法,使应用进程能够在非法的SOC平台上运行。
发明内容
本发明提供一种基于系统级芯片平台的应用进程保护方法及系统,使应用进程在非法SOC平台运行时,对运行在该非法SOC平台上的应用进程进行保护。
本发明提供了一种基于系统级芯片平台的应用进程保护方法,所述系统级芯片平台包括应用进程和应用平台,该方法包括以下步骤A.所述应用进程将设定的系统底层函数和该函数的参数发送给所述应用平台;B.当所述应用平台确定所述系统底层函数为设定的合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取合法性验证值,并将所述合法性验证值发送给所述应用进程;C.当所述应用进程判断所述合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法。
在步骤B中,当所述应用平台确定所述系统底层函数不为设定的合法性检测口时,执行所述系统底层函数和该函数的参数,将执行结果发送给所述应用进程,则步骤C中,当所述应用进程判断所述执行结果与设定的合法性验证值不相符时,确定当前运行的系统级芯片平台非法,对中间数据进行扰码。
所述应用进程通过将原始关键数据与设定的随机数进行逻辑操作对中间数据进行扰码。
所述合法性验证值为所述应用进程在该系统级芯片平台上允许运行的被保护应用进程模块的总数。
本发明还公开了一种基于系统级芯片平台的应用进程保护系统,该系统包括应用进程和应用平台,其中,所述应用进程,用于将设定的系统底层函数和该函数的参数发送给所述应用平台,接收所述应用平台发送的合法性验证值,当判断该合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法;所述应用平台,用于接收所述设定的系统底层函数和该函数的参数,当确定所述系统底层函数为设定的合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取所述合法性验证值,并将该合法性验证值发送给所述应用进程。
所述应用进程包括第一发送模块,用于将设定的系统底层函数和该函数的参数发送给所述应用平台;第一验证模块,用于当判断所述应用平台返回的合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法;第一接收模块,用于接收来自所述应用平台的所述合法性验证值。
所述应用平台包括第二接收模块,用于接收来自所述应用进程的所述设定的系统底层函数和该函数的参数;第一控制模块,用于当确定所述系统底层函数为设定的合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取合法性验证值;第二发送模块,用于将所述合法性验证值发送给所述应用进程。
所述应用平台包括第二控制模块,用于当确定所述系统底层函数不为设定的合法性检测口时,执行所述系统底层函数和该函数的参数,获得执行结果;发送模块,用于将所述执行结果发送给所述应用进程。
所述应用进程还包括第二验证模块、扰码模块;所述第二验证模块,用于当判断所述执行结果与设定的合法性验证值不相符时,确定当前运行的系统级芯片平台非法,并向所述扰码模块发送触发信号;所述扰码模块,用于接收到所述触发信号时,通过将原始关键数据与设定的随机数进行逻辑操作对中间数据进行扰码。
通过使用本发明的方法及系统,由应用进程调用应用平台中通用的系统底层函数,避免了现有技术中应用进程的保护方法应用于复杂的微处理器核时,无法访问特定的I/O地址造成的异常,从而可以通过不易被用户终端察觉的方式实现对SOC平台的合法性检测,并实现对运行在非法SOC平台上的应用进程的保护。
图1为现有技术中系统级芯片的结构示意图;图2为本发明中对基于系统级芯片的应用进程实现保护的方法示意图;图3为本发明中对基于系统级芯片的应用进程实现保护的流程示意图;图4为本发明系统结构示意图。
具体实施例方式
为了达到对应用进程运行所在的SOC平台的合法性验证,并当应用进程在非法SOC平台运行时,对该应用进程实现保护的目的,在本发明中,首先,由应用进程将设定的系统底层函数和该函数的参数发送给应用平台;然后,当所述应用平台确定所述系统底层函数为合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取合法性验证值,并将所述合法性验证值发送给所述应用进程;最后,当所述应用进程判断所述合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法。当所述应用平台确定所述系统底层函数不为合法性检测口时,执行所述系统底层函数和该函数的参数,将执行结果发送给所述应用进程,当所述应用进程判断所述执行结果与设定的合法性验证值不相符时,确定当前运行的系统级芯片平台非法,对中间数据进行扰码。
下面结合附图对本发明的具体实施方式
进行说明。
参见图2所示,本发明实施例中对基于系统级芯片的应用进程实现保护的方法包括步骤21当所述应用进程对当前运行的系统级芯片平台进行合法性验证时,将调用函数请求发送给所述应用平台,所述调用函数请求包含设定的系统底层函数和该函数的参数。在本发明实施例中,所述设定的系统底层函数和该函数的参数也可以通过其他方式发送给所述应用平台。
步骤22当所述应用平台确定所述系统底层函数为合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取合法性验证值,并将所述合法性验证值发送给所述应用进程。
步骤23当所述应用进程判断所述接收到的合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法。在本发明实施例中,所述相符可以为所述合法性验证值与设定的合法性验证值相等,也可以为所述合法性验证值与设定的合法性验证值满足一定的对应关系。
在步骤22中,当所述应用平台确定所述系统底层函数不为合法性检测口时,执行所述系统底层函数和该函数的参数,将所述底层函数的执行结果发送给所述应用进程,则步骤23中,当所述应用进程当判断所述执行结果与设定的合法性验证值不相符时,则确定当前运行的系统级芯片平台非法,对中间数据进行扰码,进一步地,由所述应用进程通过将原始关键数据与随机数进行逻辑操作对中间数据进行扰码。
在本发明实施例中,所述应用平台确定所述系统底层函数是否为合法性检测口且该函数的参数是否为所述合法性检测口的入口参数的步骤可以为所述应用平台接收到所述应用进程发送的设定的系统底层函数和该函数的参数后,与自身的系统底层函数和该函数的参数进行比较,当满足条件时,则确定接收到的所述系统底层函数为合法性检测口且该函数的参数为所述合法性检测口的入口参数,当不满足条件时,则确定接收到的所述系统底层函数不为合法性检测口,所述条件可以为接收到所述应用进程发送的设定的系统底层函数和该函数的参数与应用平台自身的系统底层函数和该函数的参数相同,当然也可以为其他设定条件。
所述系统级芯片平台包括应用进程和应用平台,在整体设计所述系统级芯片平台时,确定作为所述应用进程合法性检测口的系统底层函数和该合法性检测口的入口参数;在设计所述应用平台时,将所述系统级芯片平台上允许运行的被保护应用进程模块的总数确定为合法性验证值;在设计所述应用进程时,保存所述合法性验证值;在设计所述应用平台时,当所述应用进程调用所述系统底层函数和所述入口参数时,所述应用平台向所述应用进程返回所述合法性验证值。所述应用进程判断所述应用平台返回的所述合法性验证值与自身保存的合法性验证值是否相等,如果是,则所述应用进程确定所述系统级芯片平台为合法平台,所述应用进程在该平台上继续运行,否则,所述应用进程确定所述系统级芯片平台为非法平台,对关键中间数据进行扰码。
参见图3所示,本发明中实施例中实现对应用进程运行所在的SOC平台合法性检测的步骤包括步骤31所述应用进程将设定的系统底层函数和该函数的参数发送给所述应用平台。
这里,所述应用进程可以通过调用函数请求来发送设定的系统底层函数和该函数的参数。
步骤32所述应用平台判断所述系统底层函数是否为的合法性检测口且该函数的参数是否为所述合法性检测口的入口参数。当所述应用平台确定所述系统底层函数为的合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用的合法性检测口、入口参数与合法性验证值的对应关系获取合法性验证值,并将所述合法性验证值发送给所述应用进程。
当所述应用平台确定所述系统底层函数不为合法性检测口时,则执行所述系统底层函数和该函数的参数,获得底层函数执行结果,并将所述底层函数的执行结果发送给所述应用进程。
在正常实现的系统中,调用该系统底层函数时该入口参数会返回一个出错值,但该返回的出错值不会对系统造成任何影响。同时,该入口参数在正常实现的系统中,不会被其他程序调用。例如使用标准C库中的malloc()函数,参数为Oxtabcd910,对于正常实现的系统,这意味着向系统要求分配接近4G的堆空间。遵照ANSCI标准,正常实现的系统会返回0以表示分配失败,但不会对系统造成任何负面影响。
在该SOC平台上允许运行的应用进程模块的总数,将该数值确定为合法性验证值。将所述合法性验证值保存在应用进程和应用平台中。
步骤33所述应用进程判断返回值与设定的合法性验证值是否相符,如果是,则执行步骤34,否则,执行步骤35,在本发明实施例中,所述返回值可以为所述应用平台返回的利用合法性检测口、入口参数与合法性验证值的对应关系获取合法性验证值,也可以为执行所述系统底层函数和该函数的参数后的执行结果。
步骤34所述应用进程确定当前运行所在的SOC平台为合法平台,继续运行,结束。
步骤35所述应用进程确定当前运行所在的系统级芯片平台为非法平台,对中间数据进行扰码,结束。
基于上述对本发明实施例方法的描述,本发明还提供一种基于系统级芯片平台的应用进程保护系统,参见图4所示,在本系统中包括应用进程和应用平台,其中,所述应用进程用于将设定的系统底层函数和该函数的参数发送给所述应用平台,接收所述应用平台发送的合法性验证值,当判断该合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法;所述应用平台,用于接收所述设定的系统底层函数和该函数的参数,当确定所述系统底层函数为合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取所述合法性验证值,并将该合法性验证值发送给所述应用进程。
进一步地,本发明系统中应用进程包括第一发送模块11、第一接收模块12和第一验证模块13,其中,第一发送模块11用于将设定的系统底层函数和该函数的参数发送给所述应用平台;第一接收模块12用于接收来自所述应用平台的所述合法性验证值;第一验证模块13用于当判断所述应用平台返回的合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法。
所述应用进程还包括第二验证模块14和扰码模块15,其中,第二验证模块14用于当判断所述应用平台发送的执行结果与设定的合法性验证值不相符时,确定当前运行的系统级芯片平台非法,并向所述扰码模块15发送触发信号;扰码模块15用于接收到所述触发信号时,通过将原始关键数据与设定的随机数进行逻辑操作对中间数据进行扰码。
本发明系统中应用平台包括第二接收模块21、第一控制模块22和第二发送模块23,其中,第二接收模块21用于接收来自所述应用进程的所述设定的系统底层函数和该函数的参数;第一控制模块22用于当确定所述系统底层函数为设定的合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取合法性验证值;第二发送模块23用于将所述合法性验证值发送给所述应用进程。
所述应用平台还可以包括第二控制模块24和发送模块25,其中,所述第二控制模块24用于当确定所述系统底层函数不为合法性检测口时,执行所述系统底层函数和该函数的参数,获得执行结果;发送模块25用于将所述执行结果发送给所述应用进程。
本发明提出为了进行快速隐蔽的扰码,可以将原始关键数据与一随机数进行逻辑操作,该随机数的选择可以使用当前的栈指针,在ARM架构中为R13。当所述应用进程在确定当前运行所在的系统级芯片平台为非法平台时,不会立即退出,否则用户终端仍然可以较快的查找到出错原因并采取相应的破解手段。本发明提出应用进程对关键中间数据进行扰码,这样应用进程对于用户终端而言仍在正常运行,但由于应用进程对中间数据进行扰码,则最后输出的运行结果将会被改变,无法达到用户终端的使用目的。从而实现了对运行在非法SOC平台上的应用进程的保护。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种基于系统级芯片平台的应用进程保护方法,所述系统级芯片平台包括应用进程和应用平台,其特征在于,该方法包括以下步骤A.所述应用进程将设定的系统底层函数和该函数的参数发送给所述应用平台;B.当所述应用平台确定所述系统底层函数为设定的合法性检测口且该函数的参数为所述设定的合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取合法性验证值,并将所述合法性验证值发送给所述应用进程;C.当所述应用进程判断所述合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法。
2.根据权利要求1所述的方法,其特征在于,在步骤B中,当所述应用平台确定所述系统底层函数不为设定的合法性检测口时,执行所述系统底层函数和该函数的参数,将执行结果发送给所述应用进程,则步骤C中,当所述应用进程判断所述执行结果与设定的合法性验证值不相符时,确定当前运行的系统级芯片平台非法,对中间数据进行扰码。
3.根据权利要求2所述的方法,其特征在于,所述应用进程通过将原始关键数据与设定的随机数进行逻辑操作对中间数据进行扰码。
4.根据权利要求1或2所述的方法,其特征在于,所述合法性验证值为所述应用进程在该系统级芯片平台上允许运行的被保护应用进程模块的总数。
5.一种基于系统级芯片平台的应用进程保护系统,其特征在于,该系统包括应用进程和应用平台,其中,所述应用进程,用于将设定的系统底层函数和该函数的参数发送给所述应用平台,接收所述应用平台发送的合法性验证值,当判断该合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法;所述应用平台,用于接收所述设定的系统底层函数和该函数的参数,当确定所述系统底层函数为设定的合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取所述合法性验证值,并将该合法性验证值发送给所述应用进程。
6.根据权利要求5所述的系统,其特征在于,所述应用进程包括第一发送模块,用于将设定的系统底层函数和该函数的参数发送给所述应用平台;第一接收模块,用于接收来自所述应用平台的所述合法性验证值;第一验证模块,用于当判断所述应用平台返回的合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法。
7.根据权利要求5或6所述的系统,其特征在于,所述应用平台包括第二接收模块,用于接收来自所述应用进程的所述设定的系统底层函数和该函数的参数;第一控制模块,用于当确定所述系统底层函数为设定的合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取合法性验证值;第二发送模块,用于将所述合法性验证值发送给所述应用进程。
8.根据权利要求7所述的系统,其特征在于,所述应用平台进一步包括第二控制模块,用于当确定所述系统底层函数不为设定的合法性检测口时,执行所述系统底层函数和该函数的参数,获得执行结果;发送模块,用于将所述执行结果发送给所述应用进程。
9.根据权利要求8所述的系统,其特征在于,所述应用进程包括第二验证模块、扰码模块;所述第二验证模块,用于当判断所述执行结果与设定的合法性验证值不相符时,确定当前运行的系统级芯片平台非法,并向所述扰码模块发送触发信号;所述扰码模块,用于接收到所述触发信号时,通过将原始关键数据与设定的随机数进行逻辑操作对中间数据进行扰码。
全文摘要
本发明公开了一种基于系统级芯片平台的应用进程保护方法,该方法包括应用进程将设定的系统底层函数和该函数的参数发送给应用平台;当确定系统底层函数为合法性检测口且该函数的参数为所述合法性检测口的入口参数时,则利用合法性检测口、入口参数与合法性验证值的对应关系获取合法性验证值,并将合法性验证值发送给所述应用进程;当应用进程判断所述合法性验证值与设定的合法性验证值相符时,确定当前运行的系统级芯片平台合法。本发明还公开了一种基于系统级芯片平台的应用进程保护系统。通过使用本发明的方法及系统,可以通过不易被用户终端察觉的方式实现对系统级芯片平台的合法性检测,实现对运行在非法平台上的应用进程的保护。
文档编号G06F21/00GK101013458SQ200710063620
公开日2007年8月8日 申请日期2007年2月6日 优先权日2007年2月6日
发明者侯培新 申请人:北京中星微电子有限公司