JavaScript has become one of the most widely used programming languages for web development, server-side programming, and even micro-controllers for IoT. However, its extremely functional and dynamic features degrade the performance and precision of static analysis. Moreover, the variety of built-in functions and host environments requires excessive manual modeling of their behaviors. To alleviate these problems, researchers have proposed various ways to leverage dynamic analysis during JavaScript static analysis. However, they do not fully utilize the high performance of dynamic analysis and often sacrifice the soundness of static analysis. In this paper, we present dynamic shortcuts, a new technique to flexibly switch between abstract and concrete execution during JavaScript static analysis in a sound way. It can significantly improve the analysis performance and precision by using highly-optimized commercial JavaScript engines and lessen the modeling efforts for opaque code. We actualize the technique via $\text{SAFE}_\textsf{DS}$, an extended combination of $\text{SAFE}$ and Jalangi, a static analyzer and a dynamic analyzer, respectively. We evaluated $\text{SAFE}_\textsf{DS}$ using 269 official tests of Lodash 4 library. Our experiment shows that $\text{SAFE}_\textsf{DS}$ is 7.81x faster than the baseline static analyzer, and it improves the precision to reduce failed assertions by 12.31% on average for 22 opaque functions.


翻译:JavaScript 已经成为互联网开发、服务器侧编程和甚至IoT 最广泛使用的微控制程序语言之一。 然而,它的功能和动态特性极强,降低了静态分析的性能和精确度。 此外,内建功能和主机环境的种类要求对其行为进行过度的手工模型。为了缓解这些问题,研究人员提出了在 JavaScript 静态分析中利用动态分析的各种办法。然而,他们并没有充分利用动态分析的高性能,往往牺牲静态分析的正确性能。在本文中,我们提出了动态捷径,这是一种在 JavaScript 静态分析期间,在抽象和具体执行之间灵活转换的新技术。通过使用高度优化的商用 JavaScarpit 引擎和减少不透明代码的建模工作,可以大大提高分析的性能和精确性。 我们通过 $@text{SA_textf{DSA} 和 Jalangi, 一种静态分析器和动态分析器,在Javascrial $ salticlex} 中,我们用$\\\\x deviews sal deal deals surals supal supald supald supals supald.

0
下载
关闭预览

相关内容

专知会员服务
61+阅读 · 2020年3月19日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
31+阅读 · 2019年10月17日
强化学习最新教程,17页pdf
专知会员服务
181+阅读 · 2019年10月11日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
40+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
41+阅读 · 2019年10月9日
已删除
将门创投
6+阅读 · 2019年6月10日
2018机器学习开源资源盘点
专知
6+阅读 · 2019年2月2日
Unsupervised Learning via Meta-Learning
CreateAMind
43+阅读 · 2019年1月3日
二值多视角聚类:Binary Multi-View Clustering
我爱读PAMI
4+阅读 · 2018年6月24日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
【推荐】卷积神经网络类间不平衡问题系统研究
机器学习研究会
6+阅读 · 2017年10月18日
【推荐】免费书(草稿):数据科学的数学基础
机器学习研究会
20+阅读 · 2017年10月1日
【推荐】RNN/LSTM时序预测
机器学习研究会
25+阅读 · 2017年9月8日
Arxiv
7+阅读 · 2018年3月21日
VIP会员
相关VIP内容
专知会员服务
61+阅读 · 2020年3月19日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
31+阅读 · 2019年10月17日
强化学习最新教程,17页pdf
专知会员服务
181+阅读 · 2019年10月11日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
40+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
41+阅读 · 2019年10月9日
相关资讯
已删除
将门创投
6+阅读 · 2019年6月10日
2018机器学习开源资源盘点
专知
6+阅读 · 2019年2月2日
Unsupervised Learning via Meta-Learning
CreateAMind
43+阅读 · 2019年1月3日
二值多视角聚类:Binary Multi-View Clustering
我爱读PAMI
4+阅读 · 2018年6月24日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
【推荐】卷积神经网络类间不平衡问题系统研究
机器学习研究会
6+阅读 · 2017年10月18日
【推荐】免费书(草稿):数据科学的数学基础
机器学习研究会
20+阅读 · 2017年10月1日
【推荐】RNN/LSTM时序预测
机器学习研究会
25+阅读 · 2017年9月8日
Top
微信扫码咨询专知VIP会员