发明内容
本发明主要解决的技术问题是如何应对模糊测试带来的破解风险,提高软件安全程度。
根据第一方面,本发明提供一种基于人工智能的软件保护方法,包括:获取用户不同时间点输入的多个数据;基于所述用户不同时间点输入的多个数据确定模糊测试的概率值;当所述模糊测试的概率值大于风险度阈值时则开启屏幕录制功能;获取开启屏幕录制功能后得到的屏幕录制视频;基于所述屏幕录制视频使用视频处理模型确定用户破解软件的可能程度;基于所述用户破解软件的可能程度确定软件保护措施;基于所述软件保护措施对软件进行保护。
在一种可能的实现方式中,所述基于所述用户不同时间点输入的多个数据确定模糊测试的概率值包括:基于所述用户不同时间点输入的多个数据构建数据图结构,所述数据图结构包括多个节点和多个节点之间的多条边,每个节点表示用户一个时间点输入的数据,节点之间的边的特征表示不同节点之间的时间差值;基于图卷积网络对所述数据图结构进行处理确定模糊测试的概率值。
在一种可能的实现方式中,所述视频处理模型为门控循环单元,所述视频处理模型的输入为所述屏幕录制视频,所述视频处理模型的输出为用户破解软件的可能程度。
在一种可能的实现方式中,所述基于所述用户破解软件的可能程度确定软件保护措施包括:当所述用户破解软件的可能程度高于或等于预设阈值时,则实施预设的严格软件保护策略;当所述用户破解软件的可能程度低于预设阈值时,则维持现状。
根据第二方面,本发明提供一种基于人工智能的软件保护系统,包括:
第一获取模块,用于获取用户不同时间点输入的多个数据;
概率值确定模块,用于基于所述用户不同时间点输入的多个数据确定模糊测试的概率值;
开启模块,用于当所述模糊测试的概率值大于风险度阈值时则开启屏幕录制功能;
第二获取模块,用于获取开启屏幕录制功能后得到的屏幕录制视频;
可能程度确定模块,用于基于所述屏幕录制视频使用视频处理模型确定用户破解软件的可能程度;
保护措施确定模块,用于基于所述用户破解软件的可能程度确定软件保护措施;
保护模块,用于基于所述软件保护措施对软件进行保护。
在一种可能的实现方式中,所述概率值确定模块还用于:
基于所述用户不同时间点输入的多个数据构建数据图结构,所述数据图结构包括多个节点和多个节点之间的多条边,每个节点表示用户一个时间点输入的数据,节点之间的边的特征表示不同节点之间的时间差值;基于图卷积网络对所述数据图结构进行处理确定模糊测试的概率值。
在一种可能的实现方式中,所述视频处理模型为门控循环单元,所述视频处理模型的输入为所述屏幕录制视频,所述视频处理模型的输出为用户破解软件的可能程度。
在一种可能的实现方式中,所述保护措施确定模块还用于:
当所述用户破解软件的可能程度高于或等于预设阈值时,则实施预设的严格软件保护策略;
当所述用户破解软件的可能程度低于预设阈值时,则维持现状。
根据第三方面,本发明的实施例提供了一种电子设备,包括:处理器;存储器;以及计算机程序;其中,所述计算机程序存储在所述存储器中,并配置为由所述处理器执行以实现如前述的方法,所述方法包括:获取用户不同时间点输入的多个数据;基于所述用户不同时间点输入的多个数据确定模糊测试的概率值;当所述模糊测试的概率值大于风险度阈值时则开启屏幕录制功能;获取开启屏幕录制功能后得到的屏幕录制视频;基于所述屏幕录制视频使用视频处理模型确定用户破解软件的可能程度;基于所述用户破解软件的可能程度确定软件保护措施;基于所述软件保护措施对软件进行保护。
根据第四方面,本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述提供的基于人工智能的软件保护方法,所述方法包括:获取用户不同时间点输入的多个数据;基于所述用户不同时间点输入的多个数据确定模糊测试的概率值;当所述模糊测试的概率值大于风险度阈值时则开启屏幕录制功能;获取开启屏幕录制功能后得到的屏幕录制视频;基于所述屏幕录制视频使用视频处理模型确定用户破解软件的可能程度;基于所述用户破解软件的可能程度确定软件保护措施;基于所述软件保护措施对软件进行保护。
本发明提供的一种基于人工智能的软件保护方法和系统,该方法包括获取用户不同时间点输入的多个数据;基于所述用户不同时间点输入的多个数据确定模糊测试的概率值;当所述模糊测试的概率值大于风险度阈值时则开启屏幕录制功能;获取开启屏幕录制功能后得到的屏幕录制视频;基于所述屏幕录制视频使用视频处理模型确定用户破解软件的可能程度;基于所述用户破解软件的可能程度确定软件保护措施;基于所述软件保护措施对软件进行保护,该方法能够应对模糊测试带来的破解风险,提高软件安全程度。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本发明能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本发明相关的一些操作并没有在说明书中显示或者描述,这是为了避免本发明的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
图1为本发明实施例提供的一种基于人工智能的软件保护方法的应用场景示意图。图1中基于人工智能的软件保护方法的应用场景可以包含服务器11、网络12、终端13和存储设备14。
在一些实施例中,服务器11可以是单一服务器或服务器组。服务器11可以通过网络12访问存储在终端13或存储设备14内的信息和/或数据。在一些实施例中,服务器11可以用于执行图2中所示的基于人工智能的软件保护方法。
网络12可以促进信息和/或数据的交换。在一些实施例中,网络12可以是任意形式的有线或者无线网络,或其任意组合。
终端13可以指用户所使用的一个或多个终端设备。在一些实施例中,终端13可以包括移动装置、平板计算机、膝上型计算机等中的一种或多种组合。例如,终端可以存储开启屏幕录制功能后得到的屏幕录制视频。
存储设备14可以存储数据和/或指令,例如存储设备14可以存储基于人工智能的软件保护方法的数据指令。
模糊测试(Fuzz Testing)是一种软件测试方法,主要用于发现软件中的安全漏洞和缺陷。模糊测试的基本原理是通过向软件的输入接口发送大量随机或异常的数据,以触发软件内部未处理的异常情况或错误,从而揭示软件的潜在问题。模糊测试可以被用来发现软件中的漏洞,这些漏洞可能被攻击者利用来破解软件。模糊测试能够发现软件中的安全漏洞,如缓冲区溢出、整数溢出、SQL注入等。攻击者可以利用这些漏洞来获得未经授权的访问权限,或者执行任意代码。模糊测试过程中收集的信息可以帮助攻击者更好地理解软件的工作原理,从而辅助进行逆向工程活动。逆向工程可以用来分析软件的加密算法或其他保护措施,以便进行破解。
本发明实施例中,提供了如图2所示的一种基于人工智能的软件保护方法,可以有效应对模糊测试,所述基于人工智能的软件保护方法包括步骤S1~S7:
步骤S1,获取用户不同时间点输入的多个数据。
用户不同时间点输入的多个数据指的是用户与软件交互过程中提供的任何类型的信息。用户不同时间点输入的多个数据可以包括但不限于文本输入数据、数值输入数据、文件上传数据、选择输入数据等。
文本输入数据包括如用户名、密码、搜索查询等。
数值输入数据包括如年龄、金额、数量等。
文件上传数据包括如照片、文档、音频文件等。
选择输入数据包括如下拉菜单选择、单选按钮等。
步骤S2,基于所述用户不同时间点输入的多个数据确定模糊测试的概率值。
在一些实施例中,图3为本发明实施例提供的一种基于用户不同时间点输入的多个数据确定模糊测试的概率值的流程示意图,所述基于用户不同时间点输入的多个数据确定模糊测试的概率值包括步骤S21~S22:
步骤S21,基于所述用户不同时间点输入的多个数据构建数据图结构,所述数据图结构包括多个节点和多个节点之间的多条边,每个节点表示用户一个时间点输入的数据,节点之间的边的特征表示不同节点之间的时间差值。
图4为本发明实施例提供的一种数据图结构的示意图,如图4所示,数据图结构包括节点A、节点B、节点C、节点D,节点A、节点B、节点C、节点D分别表示不同时间点输入的数据,节点之间的边的特征表示不同节点之间的时间差值,例如节点A、节点B、节点C、节点D是按照时间顺序排列的。
步骤S22,基于图卷积网络对所述数据图结构进行处理确定模糊测试的概率值。
图卷积网络(Graph Convolutional Network,GCN)是一种用于处理图结构数据的深度学习模型。所述图卷积网络的输入为所述数据图结构,所述图卷积网络的输出为模糊测试的概率值。
图卷积网络(Graph Convolutional Network, GCN)是一种用于处理图结构数据的深度学习模型。GCN能够从图结构数据中学习节点之间的关系,并从中提取有用的信息。图卷积网络为人工智能的一种实现方式。
图卷积网络的输出将用于确定用户行为的风险程度。输出可能是一个概率值,模糊测试的概率值表示模糊测试的可能性大小。模糊测试的概率值越大,则越有可能是模糊测试。
通过构建图结构,可以明确地表示用户操作的时间顺序,这对于检测模糊测试尤为重要,因为模糊测试通常涉及一系列精心设计的操作序列。例如,在图4中,节点A、节点B、节点C、节点D按照时间顺序排列,能够清晰地反映出用户行为的时间序列。图结构能够捕捉不同操作之间的关联,这对于识别异常行为模式非常有用。在模糊测试中,攻击者可能会使用特定的操作序列来触发软件中的漏洞,通过图结构可以更容易地发现这些操作之间的联系。图卷积网络能够处理图结构数据,并从中学习到节点之间的复杂关系。这使得模型能够有效地捕捉用户行为中的模式,并用于评估模糊测试的可能性。图结构可以帮助检测异常行为,特别是那些与正常行为模式不符的操作序列。例如,如果用户在短时间内连续执行了一系列非常规操作,这可能提示存在模糊测试的风险。通过节点之间的边表示不同节点之间的时间差值,可以更好地理解用户操作的时间顺序,这对于检测模糊测试尤为重要。例如,在图4中,节点A与节点B之间的时间差值为两秒钟,这反映了用户在这两个操作之间的时间间隔。
步骤S3,当所述模糊测试的概率值大于风险度阈值时则开启屏幕录制功能。
通过图卷积网络处理数据图结构得出的结果,表示用户行为是模糊测试的可能性大小。概率值越高,表示用户行为越有可能是模糊测试。风险度阈值为预先设定的一个数值,用于判断用户行为的风险程度是否达到了需要开启屏幕录制的程度。如果模糊测试的概率值超过了这个阈值,则认为用户行为存在较高的风险。
步骤S4,获取开启屏幕录制功能后得到的屏幕录制视频。
屏幕录制视频为开启屏幕录制功能后得到的视频文件,记录了用户在使用软件过程中的屏幕活动。保存屏幕录制视频作为证据,可以在后续分析中提供帮助。
步骤S5,基于所述屏幕录制视频使用视频处理模型确定用户破解软件的可能程度。
所述视频处理模型为门控循环单元,所述视频处理模型的输入为所述屏幕录制视频,所述视频处理模型的输出为用户破解软件的可能程度。门控循环单元(GRU),通过引入门控机制来控制信息的流动,能够有效处理序列数据。门控循环单元(GRU)模型,包含输入层、隐藏层和输出层。门控循环单元为人工智能的一种实现方式。
屏幕录制视频本质上是一系列按时间顺序排列的图像帧,可以被视为一种序列数据。门控循环单元能够捕捉这些帧之间的时序关系,从而学习到用户行为的特征。门控循环单元通过引入门控机制来控制信息的流动,这意味着它可以记住重要的信息并在后续时刻使用。在处理屏幕录制视频时,这种记忆能力可以帮助模型理解用户行为的连续性,比如用户连续执行的一系列操作。屏幕录制视频中包含了丰富的视觉信息,包括用户操作、窗口切换、文本输入等。门控循环单元能够处理这种复杂性,从视频中提取有意义的特征。
在一些实施例中,视频处理模型包括视频分析层、可能程度确定层。视频分析层、可能程度确定层都包括门控循环单元,视频分析层的输入为所述屏幕录制视频,视频分析层的输出为用户鼠标操作记录序列数据、用户键盘操作记录序列数据、软件界面变化序列数据、软件提示信息序列数据,可能程度确定层的输入为用户鼠标操作记录序列数据、用户键盘操作记录序列数据、软件界面变化序列数据、软件提示信息序列数据,可能程度确定层的输出为用户破解软件的可能程度。
用户鼠标操作记录序列数据包括从屏幕录制视频中提取的用户鼠标操作的序列数据,如点击、拖拽等。例如,用户点击了文件菜单、选择了新建选项、双击了一个文件夹等。
用户键盘操作记录序列数据包括从屏幕录制视频中提取的用户键盘输入的序列数据,如键入的命令、文本等。例如,用户输入了"newfile.txt"、按下回车键等。
软件界面变化序列数据包括从屏幕录制视频中提取的软件界面变化的序列数据,如窗口的打开和关闭、菜单的展开和收起等。例如,用户打开了一个新的窗口、关闭了当前窗口等。
软件提示信息序列数据包括从屏幕录制视频中提取的软件提示信息的序列数据,如错误消息、警告等。例如,用户接收到的错误消息、警告等。
视频分析层主要负责从原始的屏幕录制视频中提取关键的行为特征,如用户鼠标操作、键盘操作、软件界面变化和提示信息等。这一层的目的是将视频转换为更具结构性和可处理的数据形式。可能程度确定层则是在第一层提取的特征基础上进行进一步的处理,以确定用户行为是否存在破解软件的风险。这一层的任务是基于提取到的行为特征来评估风险程度。通过将视频处理模型分为两个层级,可以实现层次化的处理流程,即先进行特征提取,再进行风险评估。这样的层次划分有利于模型的学习和优化,使得模型能够更好地捕捉用户行为中的异常模式。
步骤S6,基于所述用户破解软件的可能程度确定软件保护措施。
在一些实施例中,当所述用户破解软件的可能程度高于或等于预设阈值时,则实施预设的严格软件保护策略;当所述用户破解软件的可能程度低于预设阈值时,则维持现状。预设的严格软件保护策略可以提前人为设定。
预设的严格软件保护策略为提前人为设定的一组保护措施,旨在防止软件被破解。预设的严格软件保护策略可以包括但不限于加强认证机制、限制功能使用、锁定账户等。
步骤S7,基于所述软件保护措施对软件进行保护。
当确定好所述软件保护措施后,则对软件进行保护。
基于同一发明构思,图5为本发明实施例提供的一种基于人工智能的软件保护系统示意图,所述基于人工智能的软件保护系统包括:
第一获取模块51,用于获取测试用户信息、测试用户的待授权软件的测试视频;
预估时间段确定模块52,用于基于所述测试用户的待授权软件的测试视频、所述测试用户信息使用预估时间段确定模型确定测试用户的预估熟悉时间段、测试用户所需的真实体验时间段;
第二获取模块53,用于获取多个历史用户信息、每一个历史用户对应的试用期授权时间段;
相似历史用户确定模块54,用于基于所述多个历史用户信息和所述测试用户信息确定多个相似历史用户、测试用户与每一个相似历史用户的相似度;
构建模块55,用于基于所述测试用户的预估熟悉时间段、所述测试用户所需的真实体验时间段、所述多个相似历史用户、所述测试用户与每一个相似历史用户的相似度构建用户图结构;
授权时间确定模块56,用于基于图自编码器对所述用户图结构进行处理确定待授权软件的目标试用期授权时间;
授权模块57,用于基于所述待授权软件的目标试用期授权时间进行软件授权。
基于同一发明构思,本发明的实施例提供了一种电子设备,如图6所示,包括:
包括:处理器61;存储器62;以及计算机程序;其中,所述计算机程序存储在所述存储器62中,并配置为由所述处理器61执行以实现如前述提供的基于人工智能的软件保护方法,所述方法包括:获取测试用户信息、测试用户的待授权软件的测试视频;基于所述测试用户的待授权软件的测试视频、所述测试用户信息使用预估时间段确定模型确定测试用户的预估熟悉时间段、测试用户所需的真实体验时间段;获取多个历史用户信息、每一个历史用户对应的试用期授权时间段;基于所述多个历史用户信息和所述测试用户信息确定多个相似历史用户、测试用户与每一个相似历史用户的相似度;基于所述测试用户的预估熟悉时间段、所述测试用户所需的真实体验时间段、所述多个相似历史用户、所述测试用户与每一个相似历史用户的相似度构建用户图结构;基于图自编码器对所述用户图结构进行处理确定待授权软件的目标试用期授权时间;基于所述待授权软件的目标试用期授权时间进行软件授权。
基于同一发明构思,本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器61执行时实现前述提供的基于人工智能的软件保护方法,所述方法包括: 获取测试用户信息、测试用户的待授权软件的测试视频;基于所述测试用户的待授权软件的测试视频、所述测试用户信息使用预估时间段确定模型确定测试用户的预估熟悉时间段、测试用户所需的真实体验时间段;获取多个历史用户信息、每一个历史用户对应的试用期授权时间段;基于所述多个历史用户信息和所述测试用户信息确定多个相似历史用户、测试用户与每一个相似历史用户的相似度;基于所述测试用户的预估熟悉时间段、所述测试用户所需的真实体验时间段、所述多个相似历史用户、所述测试用户与每一个相似历史用户的相似度构建用户图结构;基于图自编码器对所述用户图结构进行处理确定待授权软件的目标试用期授权时间;基于所述待授权软件的目标试用期授权时间进行软件授权。
本申请实施例提供的基于人工智能的软件保护方法,可以应用于终端设备(比如手机)、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、手持计算机、上网本、个人数字助理(personal digital assistant,PDA)、可穿戴设备(如智能手表、智能眼镜或者智能头盔等)、增强现实(augmented reality,AR)\虚拟现实(virtualreality,VR)设备、智能家居设备、车载电脑等电子设备中,本申请实施例对此不做任何限制。
以手机100为上述电子设备举例,图7示出了手机100的结构示意图。
如图7所示,手机100可以包括处理模块110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
处理模块110可以包括一个或多个处理单元,例如:处理模块110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphicsprocessingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理模块110可以用于:获取用户不同时间点输入的多个数据;基于所述用户不同时间点输入的多个数据确定模糊测试的概率值;当所述模糊测试的概率值大于风险度阈值时则开启屏幕录制功能;获取开启屏幕录制功能后得到的屏幕录制视频;基于所述屏幕录制视频使用视频处理模型确定用户破解软件的可能程度;基于所述用户破解软件的可能程度确定软件保护措施;基于所述软件保护措施对软件进行保护。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。