APP下载

JavaScript代码分析技术探究

2020-12-08吕晓芳

数码设计 2020年15期
关键词:程序开发调用代码

摘要:

JavaScript代码属于程序开发代码的一种,此种代码应用可以对事件真假等进行判定,并完成相应的程序设计,进一步优化操作程序,满足用户需求,提高程序体验感,增强程序实用性。随着网络技术、程序设计与开发等技术的不断发展,近些年对JavaScript代码要求越来越高,本文将综述近年来JavaScript代码的检测、性能、语义等方面的研究进展,以探究未来JavaScript代码技术发展趋势,适应实际程序开发需求。

关键词:

代码分析;JavaScript;框架;技术进展

中图分类号:

TP311.52;TP312.2

文献标识码:

A

文章编号:

1672-9129(2020)15-0064-02

JavaScript代码作为一种程序代码,此种代码具有很强的灵活性,可以穿插在许多程序开发之中,充分满足不同程序对此种代码地调用。例如,此代码可以应用在CSS、HTML、浏览器事件、DOM等程序开发语言之中,充分满足不同程序对此代码地调用,提高程序本身品质。近年来,随着网络技术、机器人技术、人工智能技术等全面发展,JavaScript代码被调用越来愈多。以网络上多种多样的广告为例,为了对网络广告追踪、识别,并充分将某些网页广告过滤掉,就可以添加JavaScript代码,后通过代码调用,实现对广告的过滤等操作[1]。

1研究目的及方法

本文主要研究目的探究近年来JavaScript代码技术主要研究进展,从中分析该技术近年来发展的主流趋势,以为未来该代码技术的全面发展提供支持。本文研究方法为文献法,参考分析近年来关于JavaScript代码分析相关课题研究,总结JavaScript代码技术发展特征及趋势。例如,《使用程序分析和特征识别方法过滤网页广告》[2]一文研究中分析了JavaScript代码特征识别、程序分析等方法,以有效过滤网页广告,为用户提供一个良好的网页环境,提高用户程序使用满意度,寻找网络程序发展新出路。同时通过在计算机相关程序中,调用JavaScript代码加强对网页广告过滤质量,便于第一时间锁定存在病毒广告,进行追踪,提高网络与电脑安全性,满足用户实际网络与计算机使用需求。

2近年来JavaScript代码分析技术的研究进展

2.1JavaScript代码检测研究。关于JavaScript代码混淆这一概念理解,普遍认为在现有程序及其程序所有的算法,使程序出现了混淆,并形成一个类似的“镜像程序”。“镜像程序”在功能等方面与原程序并没有任何差异,但是“镜像程序”在分析与理解上难度远超于原程序。而JavaScript代码存在的本质,是对程序相关结构进行调整与识别,以对程序识别到无法调节为最终目的。这样可以对程序相关代码进行加密处理,同时并不影响程序本身运行性能。而由于JavaScript代码具有很强的灵活性,因此在程序开发过程中往往会使用混淆算法来对JavaScript代码进行保护,使得代码失去可读性,来起到保护代码的作用。例如,加密后代码显示为var.0x7037-+["x65yx8x07x696x272656x737"Wx6EWx756D......无法获取原程序代码。从混淆技术出现后关于反混淆技术(与混淆技术完全相反)与混淆技术的研究一直持续至今,一些使用较早的类似于JAVA代码语言,在混淆与反混淆技术研究中已经十分全面与深入,但JavaScript代码混淆技术与反混淆技术研究并不多,尽管当前网络上可提供一定在线相关反混淆应用,但均较单一,在加强型、复合型、混合型混淆技术研究上并不够深入。

在文献[3]研究中根据JavaScript代码检测混淆与反混淆技术研究不深入等现状,提出了检测混淆改进策略,提出在该代码反混淆与混淆技术研究中,研究重点侧重于反混淆成功率方面,以及如何才能更好将反混淆技术应用于程序代码设计之中,以更好地分析存在恶意的脚本。JavaScript代码混淆技术的发展,一方面提高了代码的安全性,但另一方面使得恶意代码的反混淆越来艰难,即使通过一定的反混淆技术处理也难以保证获得的JavaScript代码同原代码一模一样,比如一些程序代码中存在死代码,有效识别这些死代码对于进一步避免程序逻辑冗余具有重要意义。针对这种情况,文献[3]中提出两种解决办法,一种为不断扩充混淆代码脚本,使得再次出现此种代码时可以第一时间识别,另一种为将JavaScript代码脚本看做为NLP(自然语言),之后利用N-gram模型应用于代码混淆检测之中,实现代码分词,后通过不同维度输入信息,判定结果,在语义研究方面下文再行详细叙述。

2.2JavaScript代码性能研究。JavaScript代码作为程序可以调用的主要代码语言,其对于程序本身性能影响很大,程序开发人员可以通过对JavaScript代码性能的研究与改进,使得所用或者调用此代码的程序更加流畅,减少程序延迟时间,提高用户满意度,为程序本身优化提供支持。近年来在JavaScript代码性能研究上发展较为迅速,越来越多程序开发与研究人员关注到该代码在网页加载、网页翻屏等方面的应用与研究,以借助JavaScript代码实现网页性能地提升。在文献[4]中对网页加载时JavaScript代码效率提高机制进行了研究,研究中分析了JavaScript代码加载的过程,无论是采用直接或者内嵌此代码设计方式,由于浏览器相关程序并不知道此代码是否会对当前文件结构产生影响,因此浏览器会用很大时间去将JavaScript代码文件下载下来,之后对文件进行解析与执行,这个下载、分析、执行过程很长,很大程度上会影响原本页面交互设计效果地实现,或者影响页面渲染效果地实现,因此提高JavaScript代码性能显得尤为重要。文献[4]中提出两种解决方式,一种使用DOM访问机制优化办法,另一种通过加快JavaScript代码数据读取、存储速度达到加快网页加载速度目的。文献[5]中則主要研究了网页翻屏借助JavaScript代码与JQuery代码实现,JQuery代码设计中具备自身独特之初,可以使得事件的处理更加灵活,进一步完善了Ajax,且此代码与浏览器兼容性强,之后结合JavaScript代码设计,实现了网页翻屏设计。

2.3JavaScript代码语义研究。上文在JavaScript代码混淆检测研究进展中,已经分析到通过使用反混淆改进策略,使得对JavaScript代码的检测更加简单,有效判断程序中出现的恶意脚本,进一步优化程序,提高程序本身质量。在文献[6]中则是以语义分析为切入点,分析基于语义分析恶意JavaScript代码检测方法,进一步深度探讨代码语义反混淆检测技术。在该文献中构建一个以语义为基础的恶意脚本检测程序,该程序检测流程主要分为训练过程、检测过程、判定过程。训练过程主要流程为训练样本—词法单元序列提取—词向量模型—词向量生成;检测过程可与训练过程一同进行,主要流程为待检样本—词法单元序列提取—词向量生成—LSTM分类模型;判定过程则会对代码脚本进行判定,以准确判定是否为恶意脚本。

结语:进入21世纪之后JavaScript代码技术有了新的发展,在技术的诸多方面均取得了相当不错的成果,JavaScript代码技术的进一步发展提供了无限可能,同时在技术发展中也面临着一定的问题,未来技术发展还需要进一步探索,以有效探究技术持续性发展之道,使得JavaScript代码技术可以更好适应实际程序开发需要。本文研究中从代码检测、代码性能、代码语义等方面研究进展进行分析,发现JavaScript代码技术朝着更加精细化、人性化方向发展,反混淆检测技术、性能提升技术、语义分析技术等均有所发展,但依旧还有很大发展空间,相关技术研究人员可从此方面入手,深入研究JavaScript代码技术,完善在程序开发中此代码调用存在的不足,进一步提高程序品质,促进程序开发技术的进步与发展。

参考文献:

[1]許蕾,LeiXU,刘蕊成,etal.基于Jalangi的广告代码调用路径追踪[J].软件学报,2019,Vol.30Issue(7):2124-2138.

[2]何欣程,查春柳,许蕾.使用程序分析和特征识别方法过滤网页广告[J].小型微型计算机系统,2018(9):1998-2002.

[3]崔莹.JavaScript代码混淆的检测和反混淆应用研究[J].集宁师范学院学报,2020(3),7-11.

[4]庞双玉.网页加载时JavaScript代码效率提高机制探讨[J].数字技术与应用,2017(7):232-232.

[5]邓绯.使用JavaScript+JQuery实现网页翻屏[J].福建电脑.2020(6):134-135.

[6]邱瑶瑶,方勇,黄诚.基于语义分析的恶意JavaScript代码检测方法[J].四川大学学报:自然科学版,2019(2),273-278.

作者简介:吕晓芳(1983-),女,河南郑州,郑州电力职业技术学院,讲师,主要从事网站开发方向研究。

猜你喜欢

程序开发调用代码
浅析大学生在兼职小程序开发中遇到的问题
基于Android Broadcast的短信安全监听系统的设计和实现
VBA在Excel中的应用一例
神秘的代码
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
利用OpenGL技术实现网格波动效果界面
近期连续上涨7天以上的股
利用RFC技术实现SAP系统接口通信
C++语言中函数参数传递方式剖析