一种脚本加密方法、脚本运行方法及装置的制造方法

文档序号:10512565阅读:161来源:国知局
一种脚本加密方法、脚本运行方法及装置的制造方法
【专利摘要】本发明公开了一种脚本加密方法、脚本运行方法及装置。所述脚本加密方法包括:在原始的操作符及其函数的对应关系表中添加自定义的操作符及其对应的函数;对添加后的对应关系表中的各个操作符和各个函数的对应关系进行调整,获得操作符关系表;根据所述操作符关系表,将脚本中的源代码编译为基于所述操作符的字节码。采用本发明实施例,能够避免源代码被反编译,实现对脚本的保护。
【专利说明】
一种脚本加密方法、脚本运行方法及装置
技术领域
[0001]本发明涉及计算机技术领域,尤其涉及一种脚本加密方法、脚本运行方法及装置。
【背景技术】
[0002]由于脚本语言(如Python,Lua等)具有易学易用,无需编译以及能提高开发效率等特点,得到了广泛的采用。对于使用脚本语言开发的应用程序来说,为了保护源代码的知识产权以及应用程序的安全性,需要对源代码通过加密进行保护。
[0003]在现有技术中,脚本中源代码保护的常用方式是将源代码编译为字节码,或者进一步打包生成可执行文件,然后再进行发布。

【发明内容】

[0004]【背景技术】中提及的源代码的保护方式较简单,使得源代码很容易被有经验的开发人员反编译,无法达到保护源代码的目的。
[0005]本发明实施例提出一种脚本加密方法、脚本运行方法及装置,能够避免源代码被反编译,实现对脚本的保护。
[0006]本发明实施例提供一种脚本加密方法,包括:
[0007]在原始的操作符及其函数的对应关系表中添加自定义的操作符及其对应的函数;
[0008]对添加后的对应关系表中的各个操作符和各个函数的对应关系进行调整,获得操作符关系表;
[0009]根据所述操作符关系表,将脚本中的源代码编译为基于所述操作符的字节码。
[0010]进一步地,在所述根据所述操作符关系表,将脚本中的源代码编译为基于所述函数的字节码之后,还包括:
[0011 ]在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码。
[0012]在一个优选地实施方式中,所述在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码,具体包括:
[0013]每编译为一段基于所述操作符的字节码时,产生一个对应的随机数;
[0014]若检测到所述对应的随机数小于预设的阈值,在所述字节码之后插入基于自定义操作符的无效字节码。
[0015]在另一个优选地实施方式中,所述在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码,具体包括:
[0016]对所述基于所述操作符的字节码进行检测;
[0017]每检测到N段相邻的字节码中的操作符符合预设的合并规则时,将所述N段相邻的字节码合并为基于自定义操作符的合并字节码;其中,N>1。
[0018]本发明实施例还提供一种脚本运行方法,包括:
[0019]读取脚本中的上述基于操作符的字节码;
[0020]根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数;
[0021]运行所述基于操作符的字节码。
[0022]在一个优选地实施方式中,所述根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数,具体包括:
[0023]对所述基于操作符的字节码进行检测,判断每段字节码是否为预存的基于自定义操作符的无效字节码;
[0024]若是,则跳过所述无效字节码;
[0025]若否,则根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。
[0026]在另一个优选地实施方式中,所述根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数,具体包括:
[0027]对所述基于操作符的字节码进行检测,判断每段字节码否为预存的基于自定义操作符的合并字节码;
[0028]若是,则根据预存的合并规则,调用所述合并字节码中的自定义操作符所对应的函数;
[0029]若否,则根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。
[0030]相应的,本发明实施例还提供一种脚本加密装置,包括:
[0031]添加模块,用于在原始的操作符及其函数的对应关系表中添加自定义的操作符及其对应的函数;
[0032]操作符关系表获取模块,用于对添加后的对应关系表中的各个操作符和各个函数的对应关系进行调整,获得操作符关系表;以及,
[0033]加密模块,用于根据所述操作符关系表,将脚本中的源代码编译为基于所述操作符的字节码。
[0034]进一步地,所述脚本加密装置还包括:
[0035]混淆模块,用于在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码。
[0036]在一个优选地实施方式中,所述混淆模块具体包括:
[0037]随机数产生单元,用于每编译为一段基于所述操作符的字节码时,产生一个对应的随机数;以及,
[0038]无效字节码插入单元,用于在检测到所述对应的随机数小于预设的阈值时,在所述字节码之后插入基于自定义操作符的无效字节码。
[0039]在另一个优选地实施方式中,所述混淆模块具体包括:
[0040]第二检测单元,用于对所述基于所述操作符的字节码进行检测;以及,
[0041]合并单元,用于每检测到N段相邻的字节码中的操作符符合预设的合并规则时,将所述N段相邻的字节码合并为基于自定义操作符的合并字节码;其中,N>1。
[0042]相应的,本发明实施例还提供一种脚本运行装置,包括:
[0043]读取模块,用于读取脚本中上述基于操作符的字节码;
[0044]操作符识别模块,用于根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数;以及,
[0045]运行模块,用于运行所述基于操作符的字节码。
[0046]在一个优选地实施方式中,所述操作符识别模块具体包括:
[0047]无效字节码判断单元,用于对所述基于操作符的字节码进行检测,判断每段字节码是否为预存的基于自定义操作符的无效字节码;
[0048]跳过单元,用于在所述无效字节码判断单元判定为是时,跳过所述无效字节码;以及,
[0049]第一调用单元,用于在所述无效字节码判断单元判定为否时,根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。
[0050]在另一个优选地实施方式中,所述操作符识别模块具体包括:
[0051]合并字节码判断单元,用于对所述基于操作符的字节码进行检测,判断每段字节码否为预存的基于自定义操作符的合并字节码;
[0052]第二调用单元,用于在所述合并字节码判断单元判定为是时,根据预存的合并规则,调用所述合并字节码中的自定义操作符所对应的函数;以及,
[0053]第三调用单元,用于在所述合并字节码判断单元判定为否时,根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。
[0054]实施本发明实施例,具有如下有益效果:
[0055]本发明实施例提供的脚本加密方法、脚本运行方法及装置,能够在原始的对应关系表中添加自定义的操作符及其对应的函数,并打乱添加后的对应关系表中的操作符与函数的对应关系,以根据打乱后的对应关系来对源代码进行编译,从而避免通过原始的对应关系表对源代码进行反编译,实现对脚本的保护;在将源代码编译为字节码后,在字节码中混淆进基于自定义操作符的字节码,进一步避免源代码的反编译,实现对脚本的进一步的保护。
【附图说明】
[0056]图1是本发明提供的脚本加密方法的一个实施例的流程示意图;
[0057]图2是本发明提供的脚本加密装置的一个实施例的结构示意图;
[0058]图3是本发明提供的脚本运行方法的一个实施例的流程示意图;
[0059]图4是本发明提供的脚本运行装置的一个实施例的结构示意图。
【具体实施方式】
[0060]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0061 ]参见图1,本发明提供的脚本加密方法的一个实施例的流程示意图,包括:
[0062]Sll、在原始的操作符及其函数的对应关系表中添加自定义的操作符及其对应的函数;
[0063]S12、对添加后的对应关系表中的各个操作符和各个函数的对应关系进行调整,获得操作符关系表;
[0064]S13、根据所述操作符关系表,将脚本中的源代码编译为基于所述操作符的字节码。
[0065]需要说明的是,现有的Python虚拟机可根据原始的操作符及其函数的对应关系表反编译出脚本中的源代码。为了避免源代码被反编译,在原始的对应关系表中增加若干个新的宏定义,即在原始的对应关系表中增加若干个自定义的操作符和函数。进而,将所有的函数与所有的操作符进行随机排列,打乱对应关系表中操作符与函数的对应关系。其中,操作符即OpCode。根据打乱后的对应关系来对脚本中的源代码进行编译,使现有的Python虚拟机无法根据原始的对应关系表进行反编译,从而实现对脚本的保护。
[0066]例如,在原始的对应关系表中,定义为:
[0067]#define L0AD_FAST 1#从局部堆栈中弹出首个变量
[0068]#define L0AD_C0NST 2#从常量表中读取第一个常量I
[0069]#define C0MPARE_0P 3#比较指令
[0070]在该对应关系表中添加新的宏定义:
[0071]#define BINARY_ADD 5
[0072]打乱添加后的对应关系表中的对应关系,获得操作符关系表,在操作符关系表中,相应的定义为:
[0073]#define L0AD_FAST 2
[0074]#define L0AD_C0NST 5
[0075]#define C0MPARE_0P I
[0076]#define BINARY_ADD 3
[0077]根据操作符关系表对表达式n>l进行编译后,即可获得基于操作符的字节码:
[0078]2 0(n)#从局部堆栈中弹出首个变量
[0079]5 1(1)#从常量表中读取第一个常量I
[0080]I 4(>)#比较指令
[0081]若现有的Python虚拟机根据原始的对应关系表对该字节码进行反编译,则将该字节码被翻译为:
[0082]L0AD_C0NST 0(n)#从常量表中读取常量O
[0083]L0AD_FAST 4(>)#从局部堆栈中弹出第五个变量
[0084]可见,现有的Python虚拟机无法反编译出表达式n>I,从而实现对脚本的保护。
[0085]进一步地,在所述根据所述操作符关系表,将脚本中的源代码编译为基于所述函数的字节码之后,还包括:
[0086]在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码。
[0087]需要说明的是,在根据操作符关系表对脚本中的源代码进行编译时,还可在编译后的字节码中插入混淆用的基于自定义函数的字节码,从而对源代码进行进一步地保护。
[0088]在一个优选地实施方式中,所述在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码,具体包括:
[0089]每编译为一段基于所述操作符的字节码时,产生一个对应的随机数;
[0090]若检测到所述对应的随机数小于预设的阈值,在所述字节码之后插入基于自定义操作符的无效字节码。
[0091 ]需要说明的是,在将源代码编译为字节码时,在字节码中随机地插入基于自定义函数的字节码。预先设置一个阈值,在每编译一段字节码时,会随机产生一个对应的随机数,该随机数的范围为[O,I)。若该随机数小于阈值,则在其对应的字节码后面接着插入一段基于自定义操作符的无效字节码,例如,NEW_OP_CODE args。现有的Python虚拟机无法对无效字节码进行识别,从而无法实现源代码的反编译。
[0092]在另一个优选地实施方式中,所述在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码,具体包括:
[0093]对所述基于所述操作符的字节码进行检测;
[0094]每检测到N段相邻的字节码中的操作符符合预设的合并规则时,将所述N段相邻的字节码合并为基于自定义操作符的合并字节码;其中,N>1。
[0095]需要说明的是,在将源代码编译为字节码时,对字节码执行合并的操作。预先定义合并规则,其形式可以为正则表达式。然后,根据正则表达式对编译的字节码进行文本替换,将编译的多段字节码合并为一段基于自定义操作符的合并字节码。例如,合并规则定义为将字节码2 O和3 I合并为4 O,编译后的字节码为:
[0096]2 0(n)
[0097]3 1(1)
[0098]I 4(>)
[0099]在对编译后的字节码进行检测时,将20(n)、3 I (I)合并为4 O,使合并后的字节码为:
[0100]4 O
[0101]I 4(>)
[0102]现有的Python虚拟机无法对合并字节码进行识别,从而无法实现源代码的反编译。
[0103]本发明实施例提供的脚本加密方法,能够在原始的对应关系表中添加自定义的操作符及其对应的函数,并打乱添加后的对应关系表中的操作符与函数的对应关系,以根据打乱后的对应关系来对源代码进行编译,从而避免通过原始的对应关系表对源代码进行反编译,实现对脚本的保护;在将源代码编译为字节码后,在字节码中混淆进基于自定义操作符的字节码,进一步避免源代码的反编译,实现对脚本的进一步的保护。
[0104]相应的,本发明还提供一种脚本加密装置,能够实现上述实施例中的脚本加密方法的所有流程。
[0105]参见图2,是本发明提供的脚本加密装置的一个实施例的结构示意图,包括:
[0106]添加模块21,用于在原始的操作符及其函数的对应关系表中添加自定义的操作符及其对应的函数;
[0107]操作符关系表获取模块22,用于对添加后的对应关系表中的各个操作符和各个函数的对应关系进行调整,获得操作符关系表;以及,
[0108]加密模块23,用于根据所述操作符关系表,将脚本中的源代码编译为基于所述操作符的字节码。
[0109]进一步地,所述脚本加密装置还包括:
[0110]混淆模块,用于在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码。
[0111]在一个优选地实施方式中,所述混淆模块具体包括:
[0112]随机数产生单元,用于每编译为一段基于所述操作符的字节码时,产生一个对应的随机数;以及,
[0113]无效字节码插入单元,用于在检测到所述对应的随机数小于预设的阈值时,在所述字节码之后插入基于自定义操作符的无效字节码。
[0114]在另一个优选地实施方式中,所述混淆模块具体包括:
[0115]第二检测单元,用于对所述基于所述操作符的字节码进行检测;以及,
[0116]合并单元,用于每检测到N段相邻的字节码中的操作符符合预设的合并规则时,将所述N段相邻的字节码合并为基于自定义操作符的合并字节码;其中,N>1。
[0117]本发明实施例提供的脚本加密装置,能够在原始的对应关系表中添加自定义的操作符及其对应的函数,并打乱添加后的对应关系表中的操作符与函数的对应关系,以根据打乱后的对应关系来对源代码进行编译,从而避免通过原始的对应关系表对源代码进行反编译,实现对脚本的保护;在将源代码编译为字节码后,在字节码中混淆进基于自定义操作符的字节码,进一步避免源代码的反编译,实现对脚本的进一步的保护。
[0118]参见图3,本发明提供的脚本运行方法的一个实施例的流程示意图,包括:
[0119]S31、读取脚本中的上述基于操作符的字节码;
[0120]S32、根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数;
[0121]S33、运行所述基于操作符的字节码。
[0122]需要说明的是,在采用上述实施例的方法对脚本中的源代码进行编译后,还需采用专用的虚拟机对编译后的字节码进行解析才能使脚本正常运行。其中,专用的虚拟机是根据脚本的加密方法修改虚拟机代码,并对修改后的虚拟机代码进行编译后获得的。在发布应用程序时,将编译后的字节码和专用的虚拟机打包发布,使得编译后的字节码通过专用的虚拟机执行。
[0123]使用专用的虚拟机来运行时,先读取编译后的字节码进行解析,根据操作符关系表解析出字节码中的操作符所对应的函数进行调用,进而运行脚本。例如,在操作符关系表中,定义为:
[0124]#define L0AD_FAST 2
[0125]#define L0AD_C0NST 5
[0126]#define C0MPARE_0P I
[0127]#define BINARY_ADD 3
[0128]编译后的字节码为:
[0129]2 0(n)
[0130]5 1(1)
[0131]I 4(>)
[0132]根据操作符关系表对编译后的字节码进行解析,解析为:
[0133]L0AD_FAST 0(n)#从局部堆栈中弹出首个变量
[0134]L0AD_C0NST I(I)#从常量表中读取第一个常量I
[0135]C0MPARE_0P 4(>)#比较指令
[0136]调用解析出的函数来运行脚本。
[0137]在一个优选地实施方式中,所述根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数,具体包括:
[0138]对所述基于操作符的字节码进行检测,判断每段字节码是否为预存的基于自定义操作符的无效字节码;
[0139]若是,则跳过所述无效字节码;
[0140]若否,则根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。
[0141]需要说明的是,在对字节码进行解析的过程中,读取每段字节码,若该段字节码为预存的基于自定义操作符的无效字节码,例如,NEW_0P_C0DE args,则跳过这段字节码,处理下一段字节码。
[0142]在另一个优选地实施方式中,所述根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数,具体包括:
[0143]对所述基于操作符的字节码进行检测,判断每段字节码否为预存的基于自定义操作符的合并字节码;
[0144]若是,则根据预存的合并规则,调用所述合并字节码中的自定义操作符所对应的函数;
[0145]若否,则根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。
[0146]需要说明的是,在对字节码进行解析的过程中,读取每段字节码,若该段字节码为基于自定义操作符的合并字节码,则根据合并规则,调用合并字节码所对应的函数。例如,在检测到一段字节码为4 O时,根据合并规则识别出4 O所对应的字节码2 O和3 1,进而调用2 O和3 I所对应的函数。
[0147]本发明实施例提供的脚本运行方法,能够在原始的对应关系表中添加自定义的操作符及其对应的函数,并打乱添加后的对应关系表中的操作符与函数的对应关系,以根据打乱后的对应关系来对源代码进行编译,从而避免通过原始的对应关系表对源代码进行反编译,实现对脚本的保护;在将源代码编译为字节码后,在字节码中混淆进基于自定义操作符的字节码,进一步避免源代码的反编译,实现对脚本的进一步的保护。
[0148]相应的,本发明还提供一种脚本运行装置,能够实现上述实施例中的脚本运行方法的所有流程。
[0149]参见图4,是本发明提供的脚本运行装置的一个实施例的结构示意图,包括:
[0150]读取模块41,用于读取脚本中上述基于操作符的字节码;
[0151]操作符识别模块42,用于根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数;以及,
[0152]运行模块43,用于运行所述基于操作符的字节码。
[0153]在一个优选地实施方式中,所述操作符识别模块具体包括:
[0154]无效字节码判断单元,用于对所述基于操作符的字节码进行检测,判断每段字节码是否为预存的基于自定义操作符的无效字节码;
[0155]跳过单元,用于在所述无效字节码判断单元判定为是时,跳过所述无效字节码;以及,
[0156]第一调用单元,用于在所述无效字节码判断单元判定为否时,根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。
[0157]在另一个优选地实施方式中,所述操作符识别模块具体包括:
[0158]合并字节码判断单元,用于对所述基于操作符的字节码进行检测,判断每段字节码否为预存的基于自定义操作符的合并字节码;
[0159]第二调用单元,用于在所述合并字节码判断单元判定为是时,根据预存的合并规则,调用所述合并字节码中的自定义操作符所对应的函数;以及,
[0160]第三调用单元,用于在所述合并字节码判断单元判定为否时,根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。
[0161]本发明实施例提供的脚本运行装置,能够在原始的对应关系表中添加自定义的操作符及其对应的函数,并打乱添加后的对应关系表中的操作符与函数的对应关系,以根据打乱后的对应关系来对源代码进行编译,从而避免通过原始的对应关系表对源代码进行反编译,实现对脚本的保护;在将源代码编译为字节码后,在字节码中混淆进基于自定义操作符的字节码,进一步避免源代码的反编译,实现对脚本的进一步的保护。
[0162]以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
【主权项】
1.一种脚本加密方法,其特征在于,包括: 在原始的操作符及其函数的对应关系表中添加自定义的操作符及其对应的函数; 对添加后的对应关系表中的各个操作符和各个函数的对应关系进行调整,获得操作符关系表; 根据所述操作符关系表,将脚本中的源代码编译为基于所述操作符的字节码。2.如权利要求1所述的脚本加密方法,其特征在于,在所述根据所述操作符关系表,将脚本中的源代码编译为基于所述函数的字节码之后,还包括: 在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码。3.如权利要求2所述的脚本加密方法,其特征在于,所述在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码,具体包括: 每编译为一段基于所述操作符的字节码时,产生一个对应的随机数; 若检测到所述对应的随机数小于预设的阈值,在所述字节码之后插入基于自定义操作符的无效字节码。4.如权利要求2所述的脚本加密方法,其特征在于,所述在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码,具体包括: 对所述基于所述操作符的字节码进行检测; 每检测到N段相邻的字节码中的操作符符合预设的合并规则时,将所述N段相邻的字节码合并为基于自定义操作符的合并字节码;其中,N>1。5.一种脚本运行方法,其特征在于,包括: 读取脚本中的如权利要求1至4任一项所述的基于操作符的字节码; 根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数; 运行所述基于操作符的字节码。6.如权利要求5所述的脚本运行方法,其特征在于,所述根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数,具体包括: 对所述基于操作符的字节码进行检测,判断每段字节码是否为预存的基于自定义操作符的无效字节码; 若是,则跳过所述无效字节码; 若否,则根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。7.如权利要求5所述的脚本运行方法,其特征在于,所述根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数,具体包括: 对所述基于操作符的字节码进行检测,判断每段字节码否为预存的基于自定义操作符的合并字节码; 若是,则根据预存的合并规则,调用所述合并字节码中的自定义操作符所对应的函数; 若否,则根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。8.一种脚本加密装置,其特征在于,包括: 添加模块,用于在原始的操作符及其函数的对应关系表中添加自定义的操作符及其对应的函数; 操作符关系表获取模块,用于对添加后的对应关系表中的各个操作符和各个函数的对应关系进行调整,获得操作符关系表;以及, 加密模块,用于根据所述操作符关系表,将脚本中的源代码编译为基于所述操作符的字节码。9.如权利要求8所述的脚本加密装置,其特征在于,所述脚本加密装置还包括: 混淆模块,用于在所述基于所述操作符的字节码中混淆基于自定义操作符的字节码。10.如权利要求9所述的脚本加密装置,其特征在于,所述混淆模块具体包括: 随机数产生单元,用于每编译为一段基于所述操作符的字节码时,产生一个对应的随机数;以及, 无效字节码插入单元,用于在检测到所述对应的随机数小于预设的阈值时,在所述字节码之后插入基于自定义操作符的无效字节码。11.如权利要求9所述的脚本加密装置,其特征在于,所述混淆模块具体包括: 第二检测单元,用于对所述基于所述操作符的字节码进行检测;以及, 合并单元,用于每检测到N段相邻的字节码中的操作符符合预设的合并规则时,将所述N段相邻的字节码合并为基于自定义操作符的合并字节码;其中,N>1。12.一种脚本运行装置,其特征在于,包括: 读取模块,用于读取脚本中的如权利要求1至4任一项所述的基于操作符的字节码; 操作符识别模块,用于根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数;以及, 运行模块,用于运行所述基于操作符的字节码。13.如权利要求12所述的脚本运行装置,其特征在于,所述操作符识别模块具体包括: 无效字节码判断单元,用于对所述基于操作符的字节码进行检测,判断每段字节码是否为预存的基于自定义操作符的无效字节码; 跳过单元,用于在所述无效字节码判断单元判定为是时,跳过所述无效字节码;以及,第一调用单元,用于在所述无效字节码判断单元判定为否时,根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。14.如权利要求12所述的脚本运行装置,其特征在于,所述操作符识别模块具体包括: 合并字节码判断单元,用于对所述基于操作符的字节码进行检测,判断每段字节码否为预存的基于自定义操作符的合并字节码; 第二调用单元,用于在所述合并字节码判断单元判定为是时,根据预存的合并规则,调用所述合并字节码中的自定义操作符所对应的函数;以及, 第三调用单元,用于在所述合并字节码判断单元判定为否时,根据预存的操作符关系表,调用所述字节码中的操作符所对应的函数。
【文档编号】G06F21/12GK105868589SQ201610191585
【公开日】2016年8月17日
【申请日】2016年3月30日
【发明人】李康, 陈伊力
【申请人】网易(杭州)网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1