一种保护应用程序中的核心函数的方法技术

技术编号:16282379 阅读:33 留言:0更新日期:2017-09-23 01:52
本发明专利技术公开了一种保护应用程序中的核心函数的方法,为了保护应用程序中的核心函数,需要对核心函数的调用者进行校验,首先通过核心模块接收调用者发送的第一密文;所述第一密文是所述调用者从服务器中获取的验证密文;然后通过所述核心模块判断所述第一密文是否合法;若是,则通过所述核心模块开放调用所述核心函数的权限给所述调用者,以使所述调用者使用所述核心函数。故而,本发明专利技术对核心函数设置了‘校验’的机制,只有校验通过才可以正常的使用该核心函数,故而能够避免该核心函数被不合法的第三方调用,能够保护到本应用程序的核心函数的安全。

A method of protecting the core functions in an application

The invention discloses a method for protecting a core function in the application, in order to protect the core function in the application, the need for the core functions of the caller to check, first through the first core module receives the caller sends the ciphertext; the first ciphertext is the caller to get from the server to verify the ciphertext; then through judgment the core module of the first ciphertext is legitimate; if, through the core of the core function module of open call permissions to the caller, the caller using the core function. Therefore, the invention is provided with the \check\ mechanism of the core function, can only check through the normal use of the core function, so as to avoid the core function is not a legitimate third party call, can protect the core function of the application security.

【技术实现步骤摘要】
一种保护应用程序中的核心函数的方法
本申请涉及视频直播领域,尤其涉及一种保护应用程序中的核心函数的方法。
技术介绍
目前,软件开发通常会采用模块化开发,将软件的功能进行模块化拆分,不同的模块负责不同的功能。同时在设计模块时尽可能的使得模块松耦合,使得模块能够独立使用,并且相对于函数功能也会设计的比较独立,每一种功能设计成一个独立的函数,通过将该函以导出的方式来给使用者使用,从而给模块的使用者提供了极大的方便。当程序发布时,程序主框架则会加载一个个独立的模块来实现整个程序的功能。对于Windows客户端程序则是一个DLL(DynamicLinkLibrary文件为动态链接库文件)文件。由于在程序发布到客户端后,可以从客户端安装目录中获取到一个个独立的DLL文件,那么对于第三方或者HACK(hacker,也称网络黑客或者网络骇客)则也很方便的可以获取到所有的模块文件,同时由于每个模块的功能函数都是以导出的形式存在,那么第三方拿到模块后则也可以直接使用导出函数,从而盗取了软件开发商的知识产权。比如,开发者将对资源文件进行加解密的功能开发到一个模块中,并进行导出该函数,由于函数被调用是不知道调用者是谁,那么第三方获取到该模块后,则可以直接使用该模块导出的所有函数。因此急需一种保护应用程序中的核心函数的方法,防止被第三方直接进行使用的方法。
技术实现思路
本专利技术了提供了一种保护应用程序中的核心函数的方法,以解决目前面对的函数的技术问题。为解决上述技术问题,本专利技术提供了一种保护应用程序中的核心函数的方法,所述方法包括:通过核心模块接收调用者发送的第一密文;所述第一密文是所述调用者从服务器中获取的验证密文;其中,所述核心模块中装载了所述核心函数;通过所述核心模块判断所述第一密文是否合法;若是,则通过所述核心模块开放调用所述核心函数的权限给所述调用者,以使所述调用者使用所述核心函数。优选的,所述应用程序包括:主程序,模块文件;所述模块文件中包含:所述核心模块。优选的,所述调用者至少包括:所述主程序,其他应用程序。优选的,所述通过核心模块接收调用者发送的第一密文之前,所述方法还包括:通过所述主程序获取所述应用程序的当前运行环境信息;通过所述主程序将所述当前运行环境信息和所述核心函数的函数名称上报所述服务器,以使所述服务器基于所述运行环境信息以及所述核心函数的函数名称生成所述第一密文。优选的,所述通过所述主程序获取所述应用程序的运行环境信息之前,所述方法还包括:当所述核心模块加载到终端设备的内存中时,确定所述核心模块的哈希值,所述哈希值用于所述服务器对所述核心模块进行验证,若验证不通过,则拒接所述主程序发送的所述当前运行环境信息和所述核心函数的函数名称。优选的,所述确定所述核心模块的哈希值,包括:通过所述主程序获取所述核心模块在所述终端设备的内存中的起始地址;通过所述主程序获取所述核心模块的代码段的长度;基于所述核心模块在所述终端设备的内存中的起始地址和所述核心模块的代码段的长度,确定出所述核心模块的哈希值。优选的,所述核心模块是保密级别达到预设保密级别阈值的模块。优选的,所述通过所述核心模块判断所述第一密文是否合法,包括:通过所述核心模块判断所述第一密文和第二密文是否相同,若相同,则表示所述第一密文合法;其中,所述第二密文是所述核心模块基于所述核心函数生成的标准密文。优选的,所述第二密文通过如下步骤获得:获得当前用户的注册唯一ID信息和所述终端设备的ID;将所述当前用户的注册唯一ID信息和所述所述终端设备的ID合并,形成拼接的ID;计算所述拼接的ID的哈希值,将所述哈希值作为所述第二密文的密码值;利用所述核心函数的函数名称做位加密的字符串数据;基于所述第二密文的密码值和所述位加密的字符串数据生成所述核心函数的第二密文。优选的,所述终端设备的ID至少包括以下一种或者几种组合:中央处理器CPU型号、硬盘序列号、MAC地址。通过本专利技术的一个或者多个技术方案,本专利技术具有以下有益效果或者优点:本专利技术公开了一种保护应用程序中的核心函数的方法,为了保护应用程序中的核心函数,需要对核心函数的调用者进行校验,首先通过核心模块接收调用者发送的第一密文;所述第一密文是所述调用者从服务器中获取的验证密文;然后通过所述核心模块判断所述第一密文是否合法;若是,则通过所述核心模块开放调用所述核心函数的权限给所述调用者,以使所述调用者使用所述核心函数。故而,本专利技术对核心函数设置了‘校验’的机制,只有校验通过才可以正常的使用该核心函数,故而能够避免该核心函数被不合法的第三方调用,能够保护到本应用程序的核心函数的安全。附图说明图1为本专利技术实施例中一种保护应用程序中的核心函数的方法的实施过程图。具体实施方式为了使本申请所属
中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。本专利技术公开了一种保护应用程序中的核心函数的方法。为了保护应用程序中的核心函数,需要对核心函数的调用者进行校验,只有校验通过才可以正常的使用该核心函数。调用者包括但不限于是:自身应用程序的主程序,其他应用程序。如果调用者直接使用则会报错,无法正常使用。本专利技术的方法实际包含两个主要过程:第一个主要过程,在应用程序中在核心函数中设置验证的过程。第二个主要过程,核心函数在调用时的实际验证过程。下面,本专利技术会详细介绍上面两个主要的过程。在第一个主要过程中,一方面,本专利技术在核心模块中编写获取当前运行环境的功能,会获取当前用户运行的环境信息,然后服务器依据环境信息和每个核心函数名称生成对应的第一密文。另一方面,本专利技术会在所有核心函数中对应设置第二密文。当调用者在调用核心函数时,需要传入第一密文,并且核心函数会使用第二密文对第一密文进行验证,只有传入正确的密文才能够调用核心函数,否则无法使用核心函数。因为检测逻辑是在核心模块中,所以为了进一步加强核心模块的检测功能的安全性,防止HACK(网络黑客)篡改检测逻辑,则首先需要对该核心模块的代码做完整性校验,本文通过计算核心模块的代码的哈希值上传到服务器,服务器验证通过才能正确进行后续的逻辑验证。下面介绍具体的实施过程。本专利技术的方法主要针对应用程序进行设定,例如视频直播软件、语音聊天软件等等。而对于应用程序来说,分为主程序和模块文件(即:动态链接库文件)。而模块文件又分为核心模块和普通模块。核心模块,是满足某些机制或者条件而成为了核心模块。例如,核心模块是保密级别达到预设保密级别阈值的模块。又或者,核心模块是由开发者规定必须受到保护的模块。另外,在核心模块中,包含有至少一个核心函数和至少一个普通函数。本专利技术的主要目的,就是为了避免核心模块中的核心函数被违法者调用,进而对核心函数设置‘验证’机制,用来保护核心函数的方法。核心函数的个数本专利技术不做限制。核心函数和核心模块类似,也是满足某些机制或者条件而成为了核心函数。例如,核心函数是保密级别达到预设保密级别阈值的函数。又或者,核心函数是由开发者规定必须受到保护的函数。普通函数,是不满足特定机制或者条件的函数。普通模块,和核心模块具有区别,普通模块中包含有至少一个普通函数。而在具体的设置过程中,由于每个核心函数的校验代码是编写在核心模块中,网络黑客通过修改该功能代本文档来自技高网
...
一种保护应用程序中的核心函数的方法

【技术保护点】
一种保护应用程序中的核心函数的方法,其特征在于,所述方法包括:通过核心模块接收调用者发送的第一密文;所述第一密文是所述调用者从服务器中获取的验证密文;其中,所述核心模块中装载了所述核心函数;通过所述核心模块判断所述第一密文是否合法;若是,则通过所述核心模块开放调用所述核心函数的权限给所述调用者,以使所述调用者使用所述核心函数。

【技术特征摘要】
1.一种保护应用程序中的核心函数的方法,其特征在于,所述方法包括:通过核心模块接收调用者发送的第一密文;所述第一密文是所述调用者从服务器中获取的验证密文;其中,所述核心模块中装载了所述核心函数;通过所述核心模块判断所述第一密文是否合法;若是,则通过所述核心模块开放调用所述核心函数的权限给所述调用者,以使所述调用者使用所述核心函数。2.如权利要求1所述的方法,其特征在于,所述应用程序包括:主程序,模块文件;所述模块文件中包含:所述核心模块。3.如权利要求1所述的方法,其特征在于,所述调用者至少包括:所述主程序,其他应用程序。4.如权利要求2所述的方法,其特征在于,所述通过核心模块接收调用者发送的第一密文之前,所述方法还包括:通过所述主程序获取所述应用程序的当前运行环境信息;通过所述主程序将所述当前运行环境信息和所述核心函数的函数名称上报所述服务器,以使所述服务器基于所述运行环境信息以及所述核心函数的函数名称生成所述第一密文。5.如权利要求4所述的方法,其特征在于,所述通过所述主程序获取所述应用程序的运行环境信息之前,所述方法还包括:当所述核心模块加载到终端设备的内存中时,确定所述核心模块的哈希值,所述哈希值用于所述服务器对所述核心模块进行验证,若验证不通过,则拒接所述主程序发送的所述当前运行环境信息和所述核心函数的函数名称。6....

【专利技术属性】
技术研发人员:周志刚陈少杰张文明
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1