软件双重授权检查方法、系统、终端及介质与流程

未命名 08-29 阅读:112 评论:0


1.本发明属于计算机技术领域,具体涉及软件双重授权检查方法、系统、终端及介质。


背景技术:

2.软件授权保护一直是软件行业头疼的问题。为了保护软件权人的权益,软件权人通常通过软件授权方式保护自身权益。软件授权通常通过加密狗、授权码、激活码、授权文件等方式来保护软件权人的权益。加密狗授权需要软件权人制作硬件加密狗交付给使用方,不便于大规模推广与维护。通过授权码、激活码、授权文件方式进行软授权,不法分子能够通过逆向工程找到并篡改授权检查通过状态节点来跳过授权状态检查进行破解,例如参见图1,常规的软授权检查方法为:程序启动时,调用授权检查(节点

)和授权检查结果判断(节点

),如果授权检查通过执行程序功能,如果授权检查不通过,进行授权提示,不法分子通常通过篡改节点



来进行破解。


技术实现要素:

3.针对现有技术中的缺陷,本发明提供软件双重授权检查方法、系统、终端及介质,克服了现有软授权方法中存在的不法分子能够通过逆向工程找到并篡改授权检查通过状态节点来跳过授权状态检查的问题。
4.第一方面,一种软件双重授权检查方法,在软件中运行,包括:
5.不定时对软件进行授权检查;
6.当不定时的授权检查失败时,清空软件运行内存中的核心对象;
7.当收调用软件中核心功能的调用指令、且核心功能对应的核心对象为空时,再次对软件进行授权检查;
8.当再次的授权检查失败时,退出软件。
9.进一步地,在不定时对软件进行授权检查之前,还包括:
10.创建第一授权检查函数以及第二授权检查函数;第一授权检查函数和第二授权检查函数均用于完成软件的授权检查;第一授权检查函数被不定时执行,第二授权检查函数在收到调用指令、且核心对象为空时执行。
11.进一步地,核心对象包括软件中实现核心功能的模块或函数。
12.进一步地,第一授权检查函数、第二授权检查函数、以及核心对象均将代码编译成二进制文件后得到。
13.第二方面,一种软件双重授权检查系统,在软件中运行,包括:
14.授权检查单元:用于不定时对软件进行授权检查;当不定时的授权检查失败时,清空软件运行内存中的核心对象;
15.授权失败处理单元:当收到软件中核心功能的调用指令、且核心功能对应的核心对象为空时,再次对软件进行授权检查;当再次的授权检查失败时,退出软件。
16.进一步地,还包括:
17.创建单元:用于创建第一授权检查函数以及第二授权检查函数;第一授权检查函数和第二授权检查函数均用于完成软件的授权检查;第一授权检查函数被不定时执行,第二授权检查函数在收到调用指令、且核心对象为空时执行。
18.进一步地,核心对象包括软件中实现核心功能的模块或函数。
19.进一步地,第一授权检查函数、第二授权检查函数、以及核心对象均将代码编译成二进制文件后得到。
20.第三方面,一种终端,包括处理器、输入设备、输出设备和存储器,处理器、输入设备、输出设备和存储器相互连接,其中,存储器用于存储计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行第一方面的方法。
21.第四方面,一种计算机可读存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时使处理器执行第一方面的方法。
22.由上述技术方案可知,本发明提供的软件双重授权检查方法、系统、终端及介质,包括授权失败提示和授权检查两个节点,即使不法分子能够通过逆向工程篡改授权失败提示节点,也不能篡改授权检查节点,增强保护软件权人的权益,增大了盗版和破解的难度,克服现有软授权方法中存在的不法分子能够通过逆向工程找到并篡改授权检查通过状态节点来跳过授权状态检查的问题。
附图说明
23.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
24.图1为现有技术中软授权的方法流程图。
25.图2为实施例提供的软件双重授权检查方法的流程图。
26.图3为实施例提供的软件双重授权检查系统的模块框图。
27.图4为实施例提供的终端的模块框图。
具体实施方式
28.下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
29.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
30.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
31.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被
解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0032]
实施例:
[0033]
一种软件双重授权检查方法,在软件中运行,包括:
[0034]
不定时对软件进行授权检查;
[0035]
当不定时的授权检查失败时,清空软件运行内存中的核心对象;
[0036]
当收到软件中核心功能的调用指令、且核心功能对应的核心对象为空时,再次对软件进行授权检查;
[0037]
当再次的授权检查失败时,退出软件。
[0038]
在本实施例中,该方法在某个软件上运行,用于对该软件进行授权检查。该方法在软件启动时不需要进行授权检查,而是在软件运行过程中不定时地进行授权检查。例如参见图2,当程序启动时,启动授权检查任务后执行程序功能。授权检查任务为不定时调用第一授权检查函数,当检查没通过时,清空核心对象。程序功能执行时,当收到调用指令,查询核心对象是否为空,如果核心对象为空,说明该软件没有通过不定时的授权检查,调用第二授权检查函数,如果核心对象不为空,正常执行软件的核心功能。如果第二授权检查函数的授权检查不通过,说明该用户不能获得该软件的授权,此时退出该软件的使用。如果第二授权检查函数的授权检查通过,正常执行软件的核心功能。其中该方法的授权检查可以采用传统方法实现,例如通过检查mac地址、设备地址等方式实现。
[0039]
该软件双重授权检查方法,包括授权失败提示和授权检查两个节点,即使不法分子能够通过逆向工程篡改授权失败提示节点,也不能篡改授权检查节点,增强保护软件权人的权益,增大了盗版和破解的难度,克服现有软授权方法中存在的不法分子能够通过逆向工程找到并篡改授权检查通过状态节点来跳过授权状态检查的问题。
[0040]
进一步地,在一些实施例中,在不定时对软件进行授权检查之前,还包括:
[0041]
创建第一授权检查函数以及第二授权检查函数;第一授权检查函数和第二授权检查函数均用于完成软件的授权检查;第一授权检查函数被不定时执行,第二授权检查函数在收到调用指令、且核心对象为空时执行。
[0042]
在本实施例中,该方法分别创建执行逻辑相同的第一授权检查函数以及第二授权检查函数。该方法在运行过程中通过不定时执行第一授权检查函数,进行软件的不定时授权检查,当接收到调用指令、且核心对象为空时,执行第二授权检查函数进行不定时检查。
[0043]
该方法通过第一授权检查函数实现软件的授权检查逻辑,通过第二授权检查函数实现软件的授权失败提示逻辑,该方法将授权失败提示和授权检查分离,即使不法分子通过逆向工程篡改了授权失败提示逻辑中的第二授权检查函数,也不能篡改第一授权检查函数,该方法依然可以通过第一授权检查函数进行软件的授权检查,即当软件依然存在授权问题时,该方法还是可以通过第一授权检查函数清空软件运行内存中的核心对象,导致用户不能正常使用该软件,不法分子难以通过单节点篡改跳过软件的授权状态检查,增大了授权检查破解篡改难度。
[0044]
进一步地,在一些实施例中,核心对象包括软件中实现核心功能的模块或函数。
[0045]
例如:对于ocr识别软件而言,其核心功能为ocr识别功能,其核心对象为ocr识别
模块。ocr识别软件厂商(即软件权人)为了保护其权益,通过第一授权检查函数不定时检查授权是否合法;若授权检查不通过,则将软件运行内存中ocr识别模块清空。当用户使用ocr识别功能时,ocr识别软件检测到ocr识别模块为空,再调用第二授权检查函数进行再次授权检查,如果再次授权检查失败后,提示用户软件授权检查失败,退出该软件,这样该用户就不能继续使用该ocr识别软件。
[0046]
还例如:对于条码扫码识别软件而言,其核心功能为条码扫码识别功能,其核心对象为条码识别函数。条码扫码识别软件厂商为了保护其权益,通过第一授权检查函数不定时检查授权是否合法;若授权检查不通过,则将软件运行内存中的条码识别函数清空。当用户使用条码扫码识别功能时,条码扫码识别软件检测到条码识别函数为空,再调用第二授权检查函数进行再次授权检查,如果再次授权检查失败后,提示用户软件授权检查失败,退出该软件,这样该用户就不能继续使用条码扫码识别软件。
[0047]
进一步地,在一些实施例中,第一授权检查函数、第二授权检查函数、以及核心对象均将代码编译成二进制文件后得到。
[0048]
在本实施例中,第一授权检查函数、第二授权检查函数、以及核心对象都可以通过c/c++或c/c++加解密加载实现。例如将c/c++代码编译成二进制文件,增加逆向破解难度。
[0049]
一种软件双重授权检查系统,在软件中运行,参见图3,包括:
[0050]
授权检查单元1:用于不定时对软件进行授权检查;当不定时的授权检查失败时,清空软件运行内存中的核心对象;
[0051]
授权失败处理单元2:当收到软件中核心功能的调用指令、且核心功能对应的核心对象为空时,再次对软件进行授权检查;当再次的授权检查失败时,退出软件。
[0052]
进一步地,在一些实施例中,还包括:
[0053]
创建单元3:用于创建第一授权检查函数以及第二授权检查函数;第一授权检查函数和第二授权检查函数均用于完成软件的授权检查;第一授权检查函数被不定时执行,第二授权检查函数在收到调用指令、且核心对象为空时执行。
[0054]
进一步地,在一些实施例中,核心对象包括软件中实现核心功能的模块或函数。
[0055]
进一步地,在一些实施例中,第一授权检查函数、第二授权检查函数、以及核心对象均将代码编译成二进制文件后得到。
[0056]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0057]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0058]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的
单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0059]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0060]
本发明实施例所提供的系统,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
[0061]
一种终端,参见图4,包括处理器、输入设备、输出设备和存储器,处理器、输入设备、输出设备和存储器相互连接,其中,存储器用于存储计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行上述方法。
[0062]
具体实现中,本发明实施例中描述的终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
[0063]
在接下来的讨论中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
[0064]
终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
[0065]
可以在终端上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
[0066]
应当理解,在本发明实施例中,所称处理器可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0067]
输入设备可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备可以包括显示器(lcd等)、扬声器等。
[0068]
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型
的信息。
[0069]
本发明实施例所提供的终端,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
[0070]
一种计算机可读存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时使处理器执行上述方法。
[0071]
所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
[0072]
本发明实施例所提供的介质,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
[0073]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

技术特征:
1.一种软件双重授权检查方法,其特征在于,在软件中运行,包括:不定时对所述软件进行授权检查;当不定时的授权检查失败时,清空所述软件运行内存中的核心对象;当收到所述软件中核心功能的调用指令、且所述核心功能对应的核心对象为空时,再次对所述软件进行授权检查;当再次的授权检查失败时,退出所述软件。2.根据权利要求1所述软件双重授权检查方法,其特征在于,在不定时对所述软件进行授权检查之前,还包括:创建第一授权检查函数以及第二授权检查函数;所述第一授权检查函数和所述第二授权检查函数均用于完成所述软件的授权检查;所述第一授权检查函数被不定时执行,所述第二授权检查函数在收到所述调用指令、且所述核心对象为空时执行。3.根据权利要求1所述软件双重授权检查方法,其特征在于,所述核心对象包括所述软件中实现所述核心功能的模块或函数。4.根据权利要求2所述软件双重授权检查方法,其特征在于,所述第一授权检查函数、所述第二授权检查函数、以及所述核心对象均将代码编译成二进制文件后得到。5.一种软件双重授权检查系统,其特征在于,在软件中运行,包括:授权检查单元:用于不定时对所述软件进行授权检查;当不定时的授权检查失败时,清空所述软件运行内存中的核心对象;授权失败处理单元:当收到所述软件中核心功能的调用指令、且所述核心功能对应的核心对象为空时,再次对所述软件进行授权检查;当再次的授权检查失败时,退出所述软件。6.根据权利要求5所述软件双重授权检查系统,其特征在于,还包括:创建单元:用于创建第一授权检查函数以及第二授权检查函数;所述第一授权检查函数和所述第二授权检查函数均用于完成所述软件的授权检查;所述第一授权检查函数被不定时执行,所述第二授权检查函数在收到所述调用指令、且所述核心对象为空时执行。7.根据权利要求5所述软件双重授权检查系统,其特征在于,所述核核心对象容包括所述软件中实现所述核心功能的模块或函数。8.根据权利要求6所述软件双重授权检查系统,其特征在于,所述第一授权检查函数、所述第二授权检查函数、以及所述核心对象均将代码编译成二进制文件后得到。9.一种终端,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-4任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-4任一项所述的方法。

技术总结
本发明提供的一种软件双重授权检查方法、系统、终端及介质,方法在软件中运行,包括:不定时对软件进行授权检查;当不定时的授权检查失败时,清空软件运行内存中的核心对象;当收到软件中核心功能的调用指令、且核心功能对应的核心对象为空时,再次对软件进行授权检查;当再次的授权检查失败时,退出软件。该方法包括授权失败提示和授权检查两个节点,即使不法分子能够通过逆向工程篡改授权失败提示节点,也不能篡改授权检查节点,增强保护软件权人的权益,增大了盗版和破解的难度,克服现有软授权方法中存在的不法分子能够通过逆向工程找到并篡改授权检查通过状态节点来跳过授权状态检查的问题。态检查的问题。态检查的问题。


技术研发人员:喻洪乾 李家菁 程祝国 韩雨 胡强
受保护的技术使用者:深圳市雁联计算系统有限公司
技术研发日:2023.06.07
技术公布日:2023/8/28
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐