脚本代码的解混淆方法、装置、脚本解释器及存储介质制造方法及图纸

技术编号:35329171 阅读:20 留言:0更新日期:2022-10-26 11:45
本申请公开一种脚本代码的解混淆方法、装置、脚本解释器及存储介质,应用于脚本解释器,该方法包括:若确定出脚本代码存在函数调用,确定脚本代码中调用的函数是否为高危函数;若确定出脚本代码中调用的函数为高危函数,则在函数调用之前插入拦截函数;调用拦截函数,获取高危函数的第一调用参数。如此,确定出脚本代码中调用的函数为高危函数时,在函数调用之前插入动态拦截函数,调用拦截函数获取该函数的第一调用参数,根据第一调用参数确定脚本解释器是否执行对该函数的调用功能,进而达到对网络和主机的保护。网络和主机的保护。网络和主机的保护。

【技术实现步骤摘要】
脚本代码的解混淆方法、装置、脚本解释器及存储介质


[0001]本申请涉及通信安全技术,尤其涉及一种脚本代码的解混淆方法、装置、脚本解释器及存储介质。

技术介绍

[0002]JavaScript是互联网时代广泛使用的脚本语言。网络上存在大量JavaScript脚本代码,为用户日常访问网站提供很大便利。在此背景下,恶意JavaScript脚本代码混杂在大量正常程序中,对网络和主机造成侵害。
[0003]混淆技术作为一种成熟技术,常被JavaScript恶意脚本代码用于绕过反病毒系统。同时,正常JavaScript脚本代码出于保护知识产权或增加网络传输速度的目的,也使用混淆技术对正常JavaScript脚本代码进行混淆。为了准确区分混淆后的正常JavaScript脚本代码和恶意JavaScript脚本代码,必须对混淆JavaScript脚本代码做解混淆。
[0004]目前有一种JavaScript脚本代码的解混淆方法,预先模拟JavaScript脚本代码的运行,对每条JavaScript脚本代码按照脚本代码的控制流做模拟,这样使得只有部分混淆JavaScript脚本代码可以进行解混淆过程,得到解混淆结果。然而,对于没有经过模拟运行操作或者增加了复杂指令的恶意JavaScript脚本代码,存在不能进行解混淆的情况,导致对网络和主机造成侵害。

技术实现思路

[0005]为解决上述技术问题,本申请提供一种脚本代码的解混淆方法、装置、脚本解释器及存储介质。
[0006]本申请的技术方案是这样实现的:
[0007]第一方面,提供了一种脚本代码的解混淆方法,应用于脚本解释器,该方法包括:
[0008]若确定出脚本代码存在函数调用,确定所述脚本代码中调用的函数是否为高危函数;
[0009]若确定出所述脚本代码中调用的函数为高危函数,则在所述函数调用之前插入拦截函数;
[0010]调用所述拦截函数,获取所述高危函数的第一调用参数。
[0011]上述方案中,所述调用所述拦截函数,获取所述高危函数的第一调用参数,包括:所述拦截函数为打印函数,打印出所述高危函数的第一调用参数。
[0012]上述方案中,所述方法还包括:在语法分析器中预先定位函数调用的语法规则;所述确定出脚本代码存在函数调用,包括:基于所述语法分析器对所述脚本代码进行语法分析,得到语法分析结果;若所述语法分析结果指示所述脚本代码包括函数调用的语法规则,则确定所述脚本代码存在函数调用。
[0013]上述方案中,所述确定所述脚本代码中调用的函数是否为高危函数,包括:查询高危函数列表,判断所述高危函数列表中是否包括所述脚本代码中调用的函数;若包括,确定
所述脚本代码中调用的函数为高危函数。
[0014]上述方案中,所述方法还包括:若不包括,确定所述脚本代码中调用的函数为正常函数,对所述脚本代码进行正常调用。
[0015]上述方案中,所述方法还包括:将所述第一调用参数发送至反病毒引擎,以使得所述反病毒引擎对所述第一调用参数进行病毒检测得到检测结果。
[0016]上述方案中,所述方法还包括:获取所述检测结果;基于所述检测结果,确定所述混淆脚本代码为恶意脚本代码时,将对应的告警信息显示在所述代码编辑器的显示界面。
[0017]第二方面,提供了一种脚本代码的解混淆装置,应用于脚本解释器,该装置包括:
[0018]确定单元,用于若确定出脚本代码存在函数调用,确定所述脚本代码中调用的函数是否为高危函数;
[0019]插入单元,用于若确定出所述函数为高危函数,则在所述函数调用之前插入拦截函数;
[0020]获取单元,用于调用所述拦截函数,获取所述高危函数的第一调用参数。
[0021]第三方面,提供了一种脚本解释器,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器配置为运行所述计算机程序时,执行前述方法的步骤。
[0022]第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。
[0023]本申请提供一种脚本代码的解混淆方法,应用于脚本解释器,该方法包括:若确定出脚本代码存在函数调用,确定所述脚本代码中调用的函数是否为高危函数;若确定出所述脚本代码中调用的函数为高危函数,则在所述函数调用之前插入拦截函数;调用所述拦截函数,获取所述高危函数的第一调用参数。如此,确定出脚本代码中调用的函数为高危函数时,在函数调用之前插入动态拦截函数,调用拦截函数获取该函数的第一调用参数,根据第一调用参数确定脚本解释器是否执行对该函数的调用功能,进而达到对网络和主机的保护。
附图说明
[0024]图1为本申请实施例中脚本代码的解混淆方法的第一流程示意图;
[0025]图2为本申请实施例中脚本代码的解混淆方法的第二流程示意图;
[0026]图3为本申请实施例中脚本解释器组成的第一结构示意图;
[0027]图4为本申请实施例中脚本代码的解混淆方法的第三流程示意图;
[0028]图5为本申请实施例中脚本代码的解混淆装置组成的结构示意图;
[0029]图6为本申请实施例中脚本解释器的组成第二结构示意图。
具体实施方式
[0030]为了能够更加详尽地了解本申请实施例的特点与
技术实现思路
,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
[0031]实施例一
[0032]本申请实施例提供了一种脚本代码的解混淆方法,应用于脚本解释器,脚本解释
器由词法分析器、语法分析器和语义分析器组成。本申请中脚本解释器与现有脚本解释器的区别在于,本申请的脚本解释器在语法分析器中定位对混淆函数调用的语法规则,在语义分析器中插入对高危函数调用的拦截函数,故本申请的脚本解释器可称为插桩后的解释器。
[0033]图1为本申请实施例中脚本代码的解混淆方法的第一流程示意图,如图1所示,脚本代码的解混淆方法具体可以包括:
[0034]步骤101:若确定出脚本代码存在函数调用,确定所述脚本代码中调用的函数是否为高危函数;
[0035]需要说明的是,高危函数为计算机病毒分析专家给出的对脚本代码进行恶意混淆时常用的函数。
[0036]这里,若确定脚本代码存在函数调用且调用的函数为高危函数,说明该脚本代码可能为恶意混淆脚本代码,即进行解混淆操作时可能对网络和主机造成侵害。若确定脚本代码存在函数调用且调用的函数为非高危函数,说明该脚本代码不是恶意混淆脚本代码,也就不需要担心解混淆操作时可能对网络和主机造成侵害。
[0037]也就是说,该步骤主要是通过确定脚本代码中调用的函数是否为高危函数,来确定脚本代码的解混淆操作时是否可能对网络和主机造成侵害。
[0038]这里,脚本代码可以是JavaScript脚本代码。
[0039]在一些实施例中,所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种脚本代码的解混淆方法,应用于脚本解释器,其特征在于,所述方法包括:若确定出脚本代码存在函数调用,确定所述脚本代码中调用的函数是否为高危函数;若确定出所述脚本代码中调用的函数为高危函数,则在所述函数调用之前插入拦截函数;调用所述拦截函数,获取所述高危函数的第一调用参数。2.根据权利要求1所述的方法,其特征在于,所述调用所述拦截函数,获取所述高危函数的第一调用参数,包括:所述拦截函数为打印函数,打印出所述高危函数的第一调用参数。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在语法分析器中预先定位函数调用的语法规则;所述确定出脚本代码存在函数调用,包括:基于所述语法分析器对所述脚本代码进行语法分析,得到语法分析结果;若所述语法分析结果指示所述脚本代码包括函数调用的语法规则,则确定所述脚本代码存在函数调用。4.根据权利要求1所述的方法,其特征在于,所述确定所述脚本代码中调用的函数是否为高危函数,包括:查询高危函数列表,判断所述高危函数列表中是否包括所述脚本代码中调用的函数;若包括,确定所述脚本代码中调用的函数为高危函数。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若不包括,确定所述脚本...

【专利技术属性】
技术研发人员:闫华位凯志古亮
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:

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

1