本发明专利技术涉及计算机技术领域,具体涉及一种代码处理方法及装置,其中一种代码处理方法,包括:于应用程序被执行的状态下获取与所述应用程序匹配的字节码文件和字节源文件和字节源文件;对所述字节码文件做变换处理以形成一字节码变换数据文件;根据所述字节码变换数据文件形成一加固数据输出。在实际交付过程中,交付物为字节码及相应的变换处理信息,在运行过程中将字节码直接注入V8引擎执行,从而绕过对于源代码的依赖,同时对于写入磁盘的字节码进行了加固,进一步提升了其安全性。进一步提升了其安全性。进一步提升了其安全性。
【技术实现步骤摘要】
一种代码处理方法及装置
[0001]本专利技术涉及计算机
,具体涉及一种代码处理方法及装置。
技术介绍
[0002]目前,Node.js是一个基于ChromeV8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言,Node.js是一种解释型脚本语言,不同于编译型语言,其在执行之前不需要编译流程,而是直接将源代码读入Node.js解释器执行。这个特性使得开发运行Node.js变得灵活简单,但是同时带来了一个问题:应用交付给客户时需要交付源代码。一方面难以保护产品内部实现,进一步威胁到创造者或者开发者的智力成果;另一方面也使得产品可以被任意逆向、修改,破坏产品的完整性。
技术实现思路
[0003]针对现有技术的不足,本专利技术提供一种代码处理方法及装置,具体地:
[0004]一方面,本申请公开一种代码处理方法,其中,包括:
[0005]于应用程序被执行的状态下获取与所述应用程序匹配的字节码文件和字节源文件和字节源文件;
[0006]对所述字节码文件做变换处理以形成一字节码变换数据文件;
[0007]根据所述字节码变换数据文件形成一加固数据输出。
[0008]优选地,上述的一种代码处理方法,其中,包括:
[0009]读取所述加固数据及与所述加固数据匹配的标识信息;
[0010]根据所述标识信息对所述加固数据做变换处理以形成与所述加固信息匹配的字节码运行数据文件;
[0011]根据所述字节码运行数据文件、所述字节源文件做加载处理以形成一加载文件输出至引擎。
[0012]优选地,上述的一种代码处理方法,其中,获取待加固的原始代码数据,根据所述原始代码数据形成字节码文件具体包括:
[0013]获取待加固的原始代码数据,读取所述待加固的原始代码数据类型;
[0014]根据原始代码数据类型形成与所述原始代码数据类型匹配的字节码文件。
[0015]优选地,上述的一种代码处理方法,其中,根据原始代码数据类型形成与所述原始代码数据类型匹配的字节码文件包括:
[0016]选择与所述原始代码数据类型不同的编译语言对所述代码数据类型匹配的字节码文件;或者,
[0017]选择与所述原始代码数据类型相同的编译语言,对编译工具做自举处理,并于自举处理完成后形成与所述代码数据类型匹配的字节码文件。
[0018]优选地,上述的一种代码处理方法,其中,对所述字节码文件做变换处理以形成一
字节码变换数据文件具体包括:
[0019]于一变换处理集中选择一变换处理信息,根据所述变换处理信息形成所述标识信息;
[0020]读取所述字节码文件,根据所述变换处理信息对所述字节码文件做变换处理结合所述标识信息形成所述字节码变换数据文件。
[0021]优选地,上述的一种代码处理方法,其中,获取待加固的原始代码数据,根据所述原始代码数据形成字节码文件,其中,
[0022]所述字节码文件中包含有与所述原始代码数据匹配的全部字节码文件。
[0023]优选地,上述的一种代码处理方法,其中,根据所述标识信息对所述加固数据做变换处理以形成与所述加固信息匹配的字节码运行数据文件具体包括:
[0024]读取原始代码数据的长度,加载加固数据状态下写入预定的数据以形成写入加固数据,其中写入加固数据的长度匹配所述原始代码数据的长度;
[0025]编译所述写入加固数据以获取标识数据对所述加固数据做比对操作以使得所述加固数据被引擎认证通过。
[0026]另一方面,本申请再公开一种代码处理装置,其中,包括:
[0027]字节码编译模块,于应用程序被执行的状态下获取与所述应用程序匹配的字节码文件和字节源文件;
[0028]输出变换单元,于一变换处理集中选择一变换处理信息,根据所述变换处理信息形成一变换标识;读取所述字节码文件,根据所述变换处理信息对所述字节码文件做变换处理结合所述标识信息形成所述字节码变换数据文件;根据所述字节码变换数据文件形成一加固数据输出。
[0029]再一方面,本申请再公开一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
[0030]所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述任一项所述的代码处理方法对应的操作。
[0031]最后,本申请再公开一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行上述任一项所述的代码处理方法对应的操作。
[0032]与现有技术相比,本专利技术的有益效果是:
[0033]通过上述方法,在实际交付过程中,交付物为字节码及相应的变换处理信息,在运行过程中将字节码直接注入V8引擎执行,从而绕过对于源代码的依赖,同时对于写入磁盘的字节码进行了加固,进一步提升了其安全性。
[0034]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。
附图说明
[0035]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0036]图1为本专利技术实施例提供的一种代码处理方法的流程示意图;
[0037]图2为本专利技术实施例提供的一种代码处理系统的结构示意图;
[0038]图3是本专利技术实施例提供的一种电子设备的结构示意图。
具体实施方式
[0039]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0040]一方面,本专利技术提供一种代码处理方法,其中,包括:
[0041]如图1所示,步骤S110、于应用程序被执行的状态下获取与所述应用程序匹配的字节码文件和字节源文件;
[0042]以Node.js为例,Node.js提供VM库,VM库提供了操作V8编译能力和V8虚拟机一组API。待加固的原始代码数据由.js脚本文件形成,在.js脚本运行过程中,读取一个.js脚本文件,通过createCachedataAPI来获取其字节码,并写入.bytecode文件(即形成字节码文件)。
[0043]需要说明的是:所述字节码文件为与所述应用程序匹配的完成正的字节码文件,例本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种代码处理方法,其特征在于,包括:于应用程序被执行的状态下获取与所述应用程序匹配的字节码文件和字节源文件和字节源文件;对所述字节码文件做变换处理以形成一字节码变换数据文件;根据所述字节码变换数据文件形成一加固数据输出。2.根据权利要求1所述的一种代码处理方法,其特征在于,包括:读取所述加固数据及与所述加固数据匹配的标识信息;根据所述标识信息对所述加固数据做变换处理以形成与所述加固信息匹配的字节码运行数据文件;根据所述字节码运行数据文件、所述字节源文件做加载处理以形成一加载文件输出至引擎。3.根据权利要求1所述的代码处理方法,其特征在于,获取待加固的原始代码数据,根据所述原始代码数据形成字节码文件具体包括:获取待加固的原始代码数据,读取所述待加固的原始代码数据类型;根据原始代码数据类型形成与所述原始代码数据类型匹配的字节码文件。4.根据权利要求3所述的代码处理方法,其特征在于,根据原始代码数据类型形成与所述原始代码数据类型匹配的字节码文件包括:选择与所述原始代码数据类型不同的编译语言对所述代码数据类型匹配的字节码文件;或者,选择与所述原始代码数据类型相同的编译语言,对编译工具做自举处理,并于自举处理完成后形成与所述代码数据类型匹配的字节码文件。5.根据权利要求1所述的代码处理方法,其特征在于,对所述字节码文件做变换处理以形成一字节码变换数据文件具体包括:于一变换处理集中选择一变换处理信息,根据所述变换处理信息形成所述标识信息;读取所述字节码文件,根据所述变换处理信息对所述字节码文件做变换处理结合所述标识信息形成所述字节码变换数据文件。6.根据权利要...
【专利技术属性】
技术研发人员:王磊,蒋仕龙,
申请(专利权)人:上海和今信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。