一种机顶盒终端软件合法性的识别方法

文档序号:6361670阅读:94来源:国知局
专利名称:一种机顶盒终端软件合法性的识别方法
技术领域
本发明涉及ー种机顶盒软件识别方法,更具体的说,本发明主要涉及ー种机顶盒终端软件合法性的识别方法。
背景技术
随着我国数字电视的普及,机顶盒的应用也越来越普遍,机顶盒又被称作数字视频变换盒,是ー种依托电视终端提供综合信息业务的家电设备。使用户能在现有电视机上观看数字电视节目,并可通过网络进行交互式数字化娱乐、教育和商业化活动。而终端机顶盒中集成了各种软件使得用户可获得各种各样的收视体验,同时机顶盒生产厂商为满足用户日益增长的使用需求,对于机顶盒终端软件的开发所投入的成本也越来越大,因此对于 机顶盒终端软件使用的合法性监控提出的更高的要求,传统的机顶盒软件主要通过用户权限设定,以及注册序列号或密钥文件的形式禁止第三方无偿使用,但是在计算机软件行业日益飞速发展的今天,大部分软件都可以通过解码或算法注册机等手段进行破解,因此在软件科技大发展的今天,对于前述机顶盒软件合法性使用的问题,有必要作进ー步的改进和研究。

发明内容
本发明的目的之一在于解决上述不足,提供ー种使用更为有效的机顶盒终端软件合法性的识别方法。为解决上述的技术问题,本发明采用以下技术方案本发明所提供的ー种机顶盒终端软件合法性的识别方法,其特征在干所述的识别方法按照如下步骤操作步骤A、在系统前端发送用于识别机顶盒终端软件合法性的验证码至机顶盒终端软件中的验证模块;步骤B、机顶盒终端软件中的验证模块利用对外调用接ロ,验证模块使用调用接ロ的符号地址作为机顶盒终端软件特征信息并生成识别码;步骤C、验证模块将其生成的识别码与其接收到系统前端发送的验证码相比较,如识别码与验证码相互匹配时,则认为机顶盒中终端软件合法,机顶盒实现正常功能;反之验证模块则停止机顶盒终端软件的正常功能或进行报警提示。更进一歩的技术方案是所述的步骤A中系统前端的验证码,是通过人工或额外的应用系统自动从机顶盒输出接ロ获取的终端软件中验证模块生成的识别码。更进一歩的技术方案是所述的识别方法还包括步骤c-i、当验证模块所生成的识别码与系统前端发送的验证码相互不匹配时,验证模块拒绝执行部分机顶盒终端软件实现正常功能所必须的接ロ调用。更进ー步的技术方案是所述的验证模块以目标文件或C/C++静态库的方式提供,在生成最終的应用程序时由C/C++链接器链接成为机顶盒终端软件的一部分,且验证模块提供或具有机顶盒内软件正常工作所不可缺少的功能。更进一歩的技术方案是所述的步骤B中的验证模块以函数或变量的形式向外提供一个或多个调用接ロ,一个或多个调用接ロ的符号地址被C/C++链接器或程序装载器重定位后,验证模块使用调用接ロ的符号地址作为机顶盒终端软件特征信息的组成部分井生成真实的识别码。更进一歩的技术方案是所述的步骤B中的验证模块需要使用ー个或多个由其它程序模块所提供的调用接ロ,一个或多个调用接ロ的符号地址被C/C++链接器或程序装载器重定位后,验证模块使用调用接ロ的符号地址作为机顶盒终端软件特征信息的组成部分并生成真实的识别码。更进一歩的技术方案是所述的重定位为C/C++链接器或程序装载器向验证模块选择为机顶盒终端软件特征信息的调用接ロ分配ー个符号地址,利用调用接ロ符号地址的部分或全部组成的原始数据列表,作为验证模块生成的识别码。 更进一歩的技术方案是所述的重定位为C/C++链接器或程序装载器向每个调用接ロ分配ー个符号地址,利用单向散列算法将由调用接ロ符号地址的部分或全部组成的原始数据列表转换为字节流,以字节流作为生成的识别码。更进一歩的技术方案是所述的验证模块进行报警提示是在单位时间内通过声音或图像的形式进行报警;所述的C/C++静态库为多个目标文件的集合。更进一歩的技术方案是所述的C/C++链接器或程序装载器的验证模块重定位功能相同;且所述的重定位是通过C/C++链接器或程序装载器对目标文件或C/C++静态库中目标文件的函数或变量的符号地址进行重新赋值。与现有技术相比,本发明的有益效果之一是利用机顶盒软件开发工具生成最終的可执行代码时C/C++链接器或程序装载器所具有的调用接ロ符号重定位功能,当程序代码发生变化,调用接ロ符号重定位吋,C/C++链接器为调用接ロ符号所分配的符号地址会发生变化,此时选取的调用接ロ地址的部分或全部形成原始数据列表或转换为字节流,就能产生不同的识别码。将该识别码作为机顶盒正常工作的必要条件吋,就能够实现对机顶盒终端软件的合法性识别。且本发明所提供的ー种机顶盒终端软件合法性的识别方法步骤简单,可在各种类型机顶盒的终端软件中应用,为机顶盒中间厂商提供了一种保证终端软件合法使用的技术手段,同时为运营商提供了一种对运营网络中的终端进行规范管理的技术手段。
具体实施例方式在详细阐述本发明的具体实施方式
之前,首先对本发明中反复提及的几个概念进行说明C/C++编译器和链接器 C/C++编译器和链接器是ー种软件开发工具,广泛应用于计算机软件、嵌入式終端设备的软件开发,可以说是世界上应用最为广泛的软件开发工具。再嵌入式平台上使用C/C++进行软件开发过程中有两个重要的步骤来生成最終可以运行在相应硬件平台上的可执行代码。>使用编译器对源代码进行编译,生成目标文件。
>使用链接器对中间文件进行链接,生成可执行的代码。C/C++链接器与程序装载器的重定位功能目标文件以机器码的形式包含了编译单元里所有的代码和数据,如果存在多个目标文件,则目标文件并至少提供3个表(未解決符号表、导出符号表、地址重定向表)来告诉链接器自己需要什么和能够提供什么。链接器扫描所有目标文件,为每个目标文件中的未解決符号表从别的目标文件中查找导出符号表,并填写到未解決符号表中;某些支持文件系统的机顶盒平台,需要使用程序装载器加载应用程序,为符号表赋值的功能由程序装载器来完成。所谓符号表,其本质上就是C/C++函数或变量的入口地址表。由于编译器在编译生成目标文件时,通常都使用从零开始的相对地址。然而,在链接过程中,链接器将从ー个指定的地址开始,根据输入的目标文件的顺序以段为单位将它们ー个接一个的拼装起来,所以链接器对每ー个目标文件都会有ー个重定位的过程。除了目标文件的拼装之外,在重 定位的过程中还完成了两个任务ー是生成最終的符号表;ニ是对代码段中的某些位置进行修改,所有需要修改的位置都由编译器生成的重定位表指出。C/C++ 静态库C/C++静态库可理解为多个obj文件的集合,本质与.obj文件相同是多个目标文件的集合。C/C++链接器在连接吋,只拼接其中会被其他文件用到的代码,同样需要对其中的符号进行重定位存在。单向散列算法单向散列算法又叫杂凑算法,源于密码学。其意义在于,对一段数据进行某种运算,其获得的结果是唯一的,具有可重复可再现特性。而对不同的数据进行这种运算,其结果是不同的,尤其是重复的几率很小,以128位MD5算法为例,自然重复的几率为2的128次方分之一。下面结合具体实例对本发明作进ー步阐述。本发明的其中一种实施例是要提供ー种机顶盒终端软件合法性的识别方法,所述的识别方法按照如下步骤操作步骤A、在系统前端发送用于识别机顶盒终端软件合法性的验证码至机顶盒终端软件中的验证模块;而本步骤中所提到的系统前端的验证码,是通过人工或额外的应用系统自动从机顶盒输出接ロ获取的终端软件中验证模块首次生成的识别码。步骤B、机顶盒终端软件中的验证模块利用对外调用接ロ,验证模块使用调用接ロ的符号地址作为机顶盒终端软件特征信息并生成识别码;步骤C、验证模块将其生成的识别码与其接收到系统前端发送的验证码相比较,如识别码与验证码相互匹配时,则认为机顶盒中终端软件合法,机顶盒实现正常功能;反之验证模块则停止机顶盒终端软件的正常功能或进行报警提示。此处需要说明的是,本步骤中所提到的比较方法是根据验证码与识别码的内容进行ニ进制的数据比较,只要二者有一比特位不同就视为失败;由于在步骤A中系统前端发送的验证码的来源就是在步骤B中由机顶盒终端软件中的验证模块首次生成的识别码,所以只要前端输入正确,就可以保证系统前端发送的验证码与验证模块生成的识别码是同一个数据或编码值,因此验证码和识别码可以视作是同一数据或编码值。步骤C-1、当验证模块所生成的识别码与系统前端发送的验证码相互不匹配时,验证模块拒绝执行部分机顶盒终端软件实现正常功能所必须的接ロ调用。在此需要说明的是,本发明上述的步骤C-I是完成机顶盒终端软件识别验证步骤C的ー个分支,或者是步骤C的其中ー种情形,本领域的普通技术人员完全可以利用上述步骤A至步骤C的操作方式来解决本发明所明确的技术问题之一,而步骤C-I也可与上述步骤A与步骤B组合成为ー个新的实施例。本发明的发明人认为,上述的技术方案实施后足以解决本发明中提到的至少ー个技术问题,因此结合本发明所基于的背景技术,可以将其视作发明ー个普通实施例,而发明人还參考现有技术,在上述实施例技术方案的基础之上,对本发明作了进ー步的改进在上述的操作步骤中所反复提及的验证模块为机顶盒终端软件中的ー个虚拟模块,可以将其是视为ー个成熟的代码集群,验证模块以目标文件或C/C++静态库的方式提 供,在生成最終的应用程序时由C/C++链接器链接成为机顶盒内软件的一部分,且验证模块提供或具有机顶盒内软件正常工作所不可缺少的功能。需要说明的是,前述的C/C++静态库为多个目标文件的集合,因此可将构建验证模块的目标文件与C/C++静态库视作是等同的。而上述步骤B中验证模块生成识别码的方法为以函数或变量的形式向外提供一个或多个调用接ロ,一个或多个调用接ロ的符号地址被C/C++链接器或程序装载器重定位后,验证模块使用调用接ロ的符号地址作为机顶盒终端软件特征信息的组成部分并生成真实的识别码。作为上述步骤B中验证模块生成识别码方式的延伸,发明人在此还提出了另ー种与上述识别码生成方式相互并列的技术方案,与上述识别码生成方式相类似,并与上述步骤A至步骤C,或者步骤A至步骤C-I相结合,组成本发明另一个实施例,该方式具体为所述的步骤B中的验证模块需要使用一个或多个由其它程序模块所提供的调用接ロ,ー个或多个调用接ロ的符号地址被C/C++链接器或程序装载器重定位后,验证模块使用调用接ロ的符号地址作为机顶盒终端软件特征信息的组成部分并生成真实的识别码。上述的重定位方式发明人经过反复实验,得出两种较为优选的重定位生成识别码的方式,可以依照该两种验证模块调用接ロ的重定位方式,结合上述的技术内容,将本发明变换为两个更加优选的实施例,而前述所提到的两种重定位方式当中的ー种为C/C++链接器或程序装载器向验证模块选择为机顶盒终端软件特征信息的调用接ロ分配ー个符号地址,利用调用接ロ符号地址的部分或全部组成的原始数据列表,作为验证模块生成的识别码。而重定位后的验证模块调用接ロ符号地址实际上就是ー个整数值,这个值指向了验证模块上的调用接ロ在机顶盒的微处理器系统被调用时程序指针的值,验证模块在设计时,会被设计成以部分或全部验证模块调用接ロ符号地址作为变量来计算最終的识别码。前述提到的识别码可以通过接ロ符号地址作为变量来进行计算,而这就引出了发明人实验得出的另ー种重定位生成验证码的方式,即所述的重定位为C/C++链接器或程序装载器向验证模块的每个调用接ロ分配ー个符号地址,利用单向散列算法将由调用接ロ符号地址的部分或全部组成的原始数据列表转换为字节流,以字节流作为生成的识别码。
而上述所提及的C/C++链接器或程序装载器的验证模块重定位功能相同,结合上述对验证模块调用接ロ符号地址的重定位方式的介绍,更加确切的说验证模块调用接ロ地址重定位是通过C/C++链接器或程序装载器对目标文件或C/C++静态库中目标文件的函数或变量的地址进行重新赋值。还需要说明的是,本发明所提供的ー种使用更为有效的机顶盒终端软件合法性的识别方法从步骤A到步骤C,或者从步骤A到步骤C-I,都是在验证机顶盒终端软件是否合法时瞬时完成步骤,各个步骤之间可以仅有瞬时停顿,或者以没有停顿的方式连续完成。另夕卜,在本说明书中所谈到的“一个实施例”、“另ー个实施例”、“实施例”、等,指的是结合该实施例描述的具体特征、结构或者特点包括在本申请概括性描述的至少ー个实施例中。在说明书中多个地方出现同种表述不是一定指的是同一个实施例。进ー步来说,结合任ー实施例描述ー个具体特征、结构或者特点时,所要主张的是结合其他实施例来实现这种特征、结构或者特点也落在本发明的范围内。尽管这里參照本发明的多个解释性实施例对本发明进行了描述,但是,应该理解, 本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。更具体地说,在本申请公开的范围内,可以对主题组合布局的组成部件和/或布局进行多种变型和改进。除了对组成部件和/或布局进行的变型和改进外,对于本领域技术人员来说,其他的用途也将是明显的。
权利要求
1.ー种机顶盒终端软件合法性的识别方法,其特征在于所述的识别方法按照如下步骤操作 步骤A、在系统前端发送用于识别机顶盒终端软件合法性的验证码至机顶盒终端软件中的验证模块; 步骤B、机顶盒终端软件中的验证模块利用对外调用接ロ,验证模块使用调用接ロ的符号地址作为机顶盒终端软件特征信息并生成识别码; 步骤C、验证模块将其生成的识别码与其接收到系统前端发送的验证码相比较,如识别码与验证码相互匹配时,则认为机顶盒中终端软件合法,机顶盒实现正常功能;反之验证模块则停止机顶盒终端软件的正常功能或进行报警提示。
2.根据权利要求I所述的机顶盒终端软件合法性的识别方法,其特征在于所述的步骤A中系统前端的验证码,是通过人工或额外的应用系统自动从机顶盒输出接ロ获取的终端软件中验证模块生成的识别码。
3.根据权利要求I所述的机顶盒终端软件合法性的识别方法,其特征在于所述的识别方法还包括步骤C-1、当验证模块所生成的识别码与系统前端发送的验证码相互不匹配时,验证模块拒绝执行部分机顶盒终端软件实现正常功能所必须的接ロ调用。
4.根据权利要求I所述的机顶盒终端软件合法性的识别方法,其特征在于所述的验证模块以目标文件或C/C++静态库的方式提供,在生成最終的应用程序时由C/C++链接器链接成为机顶盒终端软件的一部分,且验证模块提供或具有机顶盒内软件正常工作所不可缺少的功能。
5.根据权利要求I所述的机顶盒终端软件合法性的识别方法,其特征在于所述的步骤B中的验证模块以函数或变量的形式向外提供一个或多个调用接ロ,一个或多个调用接ロ的符号地址被C/C++链接器或程序装载器重定位后,验证模块使用调用接ロ的符号地址作为机顶盒终端软件特征信息的组成部分并生成真实的识别码。
6.根据权利要求I所述的机顶盒终端软件合法性的识别方法,其特征在于所述的步骤B中的验证模块需要使用一个或多个由其它程序模块所提供的调用接ロ,ー个或多个调用接ロ的符号地址被C/C++链接器或程序装载器重定位后,验证模块使用调用接ロ的符号地址作为机顶盒终端软件特征信息的组成部分并生成真实的识别码。
7.根据权利要求5所述的机顶盒终端软件合法性的识别方法,其特征在于所述的重定位为C/C++链接器或程序装载器向验证模块选择为机顶盒终端软件特征信息的调用接ロ分配ー个符号地址,利用调用接ロ符号地址的部分或全部组成的原始数据列表,作为验证模块生成的识别码。
8.根据权利要求6所述的机顶盒终端软件合法性的识别方法,其特征在于所述的重定位为C/C++链接器或程序装载器向每个调用接ロ分配ー个符号地址,利用单向散列算法将由调用接ロ符号地址的部分或全部组成的原始数据列表转换为字节流,以字节流作为生成的识别码。
9.根据权利要求I或4所述的机顶盒终端软件合法性的识别方法,其特征在于所述的验证模块进行报警提示是在单位时间内通过声音或图像的形式进行报警;所述的C/C++静态库为多个目标文件的集合。
10.根据权利要求5至8任意ー权利要求所述的机顶盒终端软件合法性的识别方法,其特征在于所述的C/C++链接器或程序装载器的验证模块重定位功能相同;且所述的重定 位是通过C/C++链接器或程序装载器对目标文件或C/C++静态库中目标文件的函数或变量的符号地址进行重新赋值。
全文摘要
本发明公开了一种机顶盒终端软件合法性的识别方法,属一种机顶盒软件识别方法,所述的识别方法按照如下步骤操作步骤A、在系统前端发送用于识别机顶盒终端软件合法性的验证码至机顶盒终端软件中的验证模块;步骤B、机顶盒终端软件中的验证模块利用对外调用接口,验证模块使用调用接口的符号地址作为机顶盒终端软件特征信息并生成识别码;本发明所提供的一种机顶盒终端软件合法性的识别方法步骤简单,可在各种类型机顶盒的终端软件中应用,为机顶盒中间厂商提供了一种保证终端软件合法使用的技术手段,同时为运营商提供了一种对运营网络中的终端进行规范管理的技术手段。
文档编号G06F9/44GK102681844SQ201210063610
公开日2012年9月19日 申请日期2012年3月12日 优先权日2012年3月12日
发明者周旭辉, 唐文东 申请人:成都金亚科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1