一种数据处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:18895176 阅读:27 留言:0更新日期:2018-09-08 11:17
本发明专利技术涉及一种数据处理方法、装置、电子设备及存储介质,属于数据处理技术领域。该数据处理方法包括:将源代码进行标记编译,以获得带标记的标记代码;基于所述标记代码,以获得有关表征所述源代码性能的性能数据,其中,所述性能数据包括:每个目标函数的运行时长;基于所述性能数据和预设的与所述性能数据相对应的配置文件对所述源代码进行保护编译,以获得带保护的保护代码。该方法通过对源代码进行分析,以得出各个目标函数的执行时长,进而确定出各个目标函数所使用的混淆方案,避免了大量的人力成本,以及改善了依靠经验配置所存在的缺陷,进而达到了最佳的保护效果。

Data processing method, device, electronic device and storage medium

The invention relates to a data processing method, a device, an electronic device and a storage medium, belonging to the technical field of data processing. The data processing method includes: compiling the source code with tags to obtain tagged tagged code; obtaining performance data representing the performance of the source code based on the tagged code, wherein the performance data includes: the running time of each objective function; based on the performance data and the preset and The configuration file corresponding to the performance data protects and compiles the source code to obtain the protected code. By analyzing the source code, the method gets the execution time of each objective function, and then determines the confusion scheme used by each objective function, avoids a large number of labor costs, and improves the defects of relying on experience configuration, thus achieving the best protection effect.

【技术实现步骤摘要】
一种数据处理方法、装置、电子设备及存储介质
本专利技术属于数据处理
,具体涉及一种数据处理方法、装置、电子设备及存储介质。
技术介绍
代码混淆是一种有效保护软件的执行逻辑和自身知识产权的方法,同时,也能起到对攻击者进行干扰,拖延攻击时间,以及增加攻击难度的一种方法。代码混淆是指通过在源代码中添加额外的无用代码。目前,代码混淆主要有以下几种方法:第一种,保护控制流,例如,虚假控制流,即在控制流中添加永远都不会执行到的块;又例如,控制流平坦化,即将指令的结构调整为平坦,使得所有指令块的前置节点和后置节点都相同。第二种,保护数据流,例如,等价替换,即通过添计算使结果保持不变,如,将a+b变换为a+1+b-1。第三种,同时保护数据流与控制流,例如,指令虚拟化,即将指令转换为字节码,运行在虚拟机中。上述的这些混淆方法普遍以一个函数为单位进行保护,不同的方法所消耗的时间代价不同,所以要兼顾混淆的强度与整体性能,就需要进行不同的配置,因此,如何保证配置的合理性是兼顾混淆的强度与整体性能的关键因素。申请人在研究本申请的过程中发现,目前大多配置都是基于人工或者某种规则进行,而该种规则也是由人工设置,但是由于程序中函数数量庞大,配置文件冗余且难以维护,需要消耗大量的时间进行调教。且人工的方法非常依赖配置人员的经验水平,往往不能达到最佳的混淆强度与性能的平衡。
技术实现思路
鉴于此,本专利技术的目的在于提供一种数据处理方法、装置、电子设备及存储介质,以有效地改善上述问题。本专利技术的实施例是这样实现的:第一方面,本专利技术实施例提供了一种数据处理方法,包括:将源代码进行标记编译,以获得带标记的标记代码;基于所述标记代码,以获得有关表征所述源代码性能的性能数据,其中,所述性能数据包括:每个目标函数的运行时长;基于所述性能数据和预设的与所述性能数据相对应的配置文件对所述源代码进行保护编译,以获得带保护的保护代码。第二方面,本专利技术实施例还提供了一种数据处理装置,包括:第一获得模块、第二获得模块和第三获得模块。第一获得模块,用于将源代码进行标记编译,以获得带标记的标记代码;第二获得模块,用于基于所述标记代码,以获得有关表征所述源代码性能的性能数据,其中,所述性能数据包括:每个目标函数的运行时长;第三获得模块,用于基于所述性能数据和预设的与所述性能数据相对应的配置文件对所述源代码进行保护编译,以获得带保护的保护代码。第三方面,本专利技术实施例还提供了一种电子设备,包括:处理器和存储器,所述存储器与所述处理器连接;所述存储器用于存储程序;所述处理器用于调用存储于所述存储器中的程序,以执行第一方面实施例提供的方法。第四方面,本专利技术实施例还提供了一种存储介质,所述存储介质存储有处理器可执行的程序代码于计算机内,所述存储介质包括多条指令,所述多条指令被配置成使所述处理器执行第一方面实施例提供的方法。本专利技术实施例提供的数据处理方法,与现有技术相比,该方法在依据配置文件将源代码直接进行保护编译的基础上,新增了先将源代码进行标记编译,以获得带标记的标记代码,以及基于所述标记代码,以获得有关表征所述源代码性能的性能数据的步骤,此外,在对源代码进行保护编译时,是基于获得的性能数据以及预设的与性能数据相对应的配置文件进行的。该方法通过对源代码进行分析,以得出各个目标函数的执行时长,进而确定出各个目标函数所使用的混淆方案,避免了大量的人力成本,以及改善了依靠经验配置所存在的缺陷,进而达到了最佳的保护效果。本专利技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术实施例而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本专利技术的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本专利技术的主旨。图1示出了本专利技术实施例提供的一种电子设备的结构示意图。图2示出了本专利技术实例提供的一种数据处理方法的方法流程图。图3示出了本专利技术实施例提供的图2中的步骤S101的方法流程图。图4示出了本专利技术实施例提供的图2中的步骤S103的方法流程图。图5示出了本专利技术实施例提供的一种数据处理装置的模块示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。在本专利技术的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。在正式介绍本申请的专利技术之前,需要简单的讲述一下现有技术下的程序混淆流程:基于配置文件对源代码进行保护处理,以获得带保护的二级制代码。其中,该配置文件由人工或者基于某种规则进行配置,而该种规则也是由人工设置,但是由于程序中函数数量庞大,配置文件冗余且难以维护,需要消耗大量的时间进行调教。且人工的方法非常依赖配置人员的经验水平,往往不能达到最佳的混淆强度与性能的平衡。针对以上方案所存在的缺陷,均是专利技术人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本专利技术实施例针对上述问题所提出的解决方案,都应该是专利技术人在本专利技术过程中对本专利技术做出的贡献。如图1所示,图1示出了本专利技术实施例提供的一种电子设备100的结构框图。所述电子设备100包括:数据处理装置110、存储器120、存储控制器130和处理器140。所述存储器120、存储控制器130、处理器140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述数据处理装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述电子设备100的操作系统(operatingsystem,OS)中的软件功能模块。所述处理器140用于执行存储器120中存储的可执行模块,例如所述数据处理装置110包括的软件功能模块或计算机程序。其中,存储器120可以是,但不限于,随机存取存储器(RandomAccessMemory,RAM),只读存储器(ReadOnlyMemory,ROM),可编程只读存储器(ProgrammableRead-OnlyMemory,PRO本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:将源代码进行标记编译,以获得带标记的标记代码;基于所述标记代码,以获得有关表征所述源代码性能的性能数据,其中,所述性能数据包括:每个目标函数的运行时长;基于所述性能数据和预设的与所述性能数据相对应的配置文件对所述源代码进行保护编译,以获得带保护的保护代码。

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:将源代码进行标记编译,以获得带标记的标记代码;基于所述标记代码,以获得有关表征所述源代码性能的性能数据,其中,所述性能数据包括:每个目标函数的运行时长;基于所述性能数据和预设的与所述性能数据相对应的配置文件对所述源代码进行保护编译,以获得带保护的保护代码。2.根据权利要求1所述的方法,其特征在于,将源代码进行标记编译,以获得带标记的标记代码,包括:解析出所述源代码中的抽象语法树结构和/或中间表达式结构;在所述抽象语法树结构和/或所述中间表达式结构中添加标记,以获得带标记的所述标记代码,其中,所述标记用作每个目标函数运行时长的统计。3.根据权利要求2所述的方法,其特征在于,在所述抽象语法树结构和/或所述中间表达式结构中添加标记,包括:在所述抽象语法树结构和/或所述中间表达式结构的每个目标函数的入口和出口处均添加函数调用。4.根据权利要求2所述的方法,其特征在于,在所述抽象语法树结构和/或所述中间表达式结构中添加标记,包括:在所述抽象语法树结构和/或所述中间表达式结构的每个目标函数中添加包装函数。5.根据权利要求1-4任意一项所述的方法,其特征在于,基于所述性能数据和预设的与所述性能数据相对应的配置文件对所述源代码进行保护编译,包括:基于所述性能数据中每个目标函数的运行时长获得每个目标函数的运行时间占比;判断所述运行时间占比是否满足第一预设条件;在所述运行时间占比满足第一预...

【专利技术属性】
技术研发人员:泮晓波
申请(专利权)人:北京顶象技术有限公司
类型:发明
国别省市:北京,11

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

1