Filters








615 Hits in 4.0 sec

Automatically Tracing Imprecision Causes in JavaScript Static Analysis

Hongki Lee, Changhee Park, Sukyoung Ryu
2019 The Art, Science, and Engineering of Programming  
In this paper, we present an automatic technique that can trace analysis imprecision causes of JavaScript applications starting from user-selected variables.  ...  In order to detect major causes of analysis imprecision automatically, we present four node/edge patterns in tracing graphs for common imprecision causes.  ...  We found that the technique traced about 26 2:19 Automatically Tracing Imprecision Causes in JavaScript Static Analysis Answer to RQ3.  ... 
doi:10.22152/programming-journal.org/2020/4/2 fatcat:lynnmzarmjcutj7l4yau6jnpea

Revamping JavaScript static analysis via localization and remediation of root causes of imprecision

Shiyi Wei, Omer Tripp, Barbara G. Ryder, Julian Dolby
2016 Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering - FSE 2016  
The approach first identifies program constructs which are sources of imprecision (i.e., root causes) through monitoring the static analysis process.  ...  Our technique is able to to find that the root causes comprise less than 2% of the functions in JavaScript library applications.  ...  The automatic root-cause localization relieves a static analysis designer from the chores of manually inspecting the program and the analysis implementation to understand the sources of imprecision.  ... 
doi:10.1145/2950290.2950338 dblp:conf/sigsoft/WeiTRD16 fatcat:axxnizdgrfhpbir57kphfinzze

Automatic Root Cause Quantification for Missing Edges in JavaScript Call Graphs (Extended Version) [article]

Madhurima Chakraborty, Renzo Olivares, Manu Sridharan, Behnaz Hassanshahi
2022 arXiv   pre-print
In this paper, we present a technique to automatically quantify the relative importance of different root causes of call graph unsoundness for a set of target applications.  ...  Building sound and precise static call graphs for real-world JavaScript applications poses an enormous challenge, due to many hard-to-analyze language features.  ...  Other work [20, 59] used dynamic analysis to generate traces and find root causes of imprecision in JavaScript static analyses, and Wei et al.  ... 
arXiv:2205.06780v1 fatcat:evz3lan365c7xf4dlzoybjlipu

Practical blended taint analysis for JavaScript

Shiyi Wei, Barbara G. Ryder
2013 Proceedings of the 2013 International Symposium on Software Testing and Analysis - ISSTA 2013  
Case studies demonstrate the quality of the blended taint analysis solution in comparison to that of pure static analysis.  ...  In empirical comparisons with two pure static taint analyses, we show blended taint analysis to be both more scalable and precise on JavaScript benchmark codes extracted from 12 popular websites at alexa  ...  This is mainly caused by the fact that Static Taint − only analyzes JavaScript application code.  ... 
doi:10.1145/2483760.2483788 dblp:conf/issta/WeiR13 fatcat:yxodxt4ofna2lj27sjjwseavja

Dynamic determinacy analysis

Max Schäefer, Manu Sridharan, Julian Dolby, Frank Tip
2013 Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation - PLDI '13  
Finally, we report on two case studies that explored how static analysis for JavaScript could leverage the information gathered by dynamic determinacy analysis.  ...  We found that in some cases scalability of static pointer analysis was improved dramatically, and that many uses of runtime code generation could be eliminated.  ...  Static analysis of JavaScript is very challenging [18, 27, 30] , due to pervasive use of reflective constructs in JavaScript programs and the absence of of static types.  ... 
doi:10.1145/2491956.2462168 dblp:conf/pldi/SchaferSDT13 fatcat:ocicxp34dfgddknmri6cngg3ie

Dynamic determinacy analysis

Max Schäefer, Manu Sridharan, Julian Dolby, Frank Tip
2013 SIGPLAN notices  
Finally, we report on two case studies that explored how static analysis for JavaScript could leverage the information gathered by dynamic determinacy analysis.  ...  We found that in some cases scalability of static pointer analysis was improved dramatically, and that many uses of runtime code generation could be eliminated.  ...  Static analysis of JavaScript is very challenging [18, 27, 30] , due to pervasive use of reflective constructs in JavaScript programs and the absence of of static types.  ... 
doi:10.1145/2499370.2462168 fatcat:xloquysoq5gilfet7s6zs4nem4

Scalable and Precise Static Analysis of JavaScript Applications via Loop-Sensitivity

Changhee Park, Sukyoung Ryu, Marc Herbstritt
2015 European Conference on Object-Oriented Programming  
the state-of-the-art JavaScript static analyzers in terms of analysis scalability.  ...  The numbers and sizes of JavaScript applications are ever growing but static analysis techniques for analyzing large-scale JavaScript applications are not yet ready in a scalable and precise manner.  ...  in a scalable way by improving analysis precision.  ... 
doi:10.4230/lipics.ecoop.2015.735 dblp:conf/ecoop/ParkR15 fatcat:b3js47yqyfcizfttjy527pby5a

Automatic Simplification of Obfuscated JavaScript Code (Extended Abstract) [chapter]

Gen Lu, Kevin Coogan, Saumya Debray
2012 Communications in Computer and Information Science  
Malicious JavaScript code is usually highly obfuscated, making detection a challenge. This paper describes a simple approach to deobfuscation of JavaScript code based on dynamic analysis and slicing.  ...  Javascript is a scripting language that is commonly used to create sophisticated interactive client-side web applications. It can also be used to carry out browser-based attacks on users.  ...  transformations to automatically simplify the trace, then reconstruct source code from the simplified trace.  ... 
doi:10.1007/978-3-642-29166-1_31 fatcat:fimzy6ojxjgnlkympd7oy652ue

Improving trace-based JIT optimisation using whole-program information

Maarten Vandercammen, Coen De Roover
2016 Proceedings of the 8th International Workshop on Virtual Machines and Intermediate Languages - VMIL 2016  
Trace-based just-in-time compilers use program analyses to optimise execution traces. These analyses are limited in scope to the parts of the program that have been traced.  ...  This by incorporating a static analysis which, however, necessarily over-approximates this set.  ...  Run-Time Static Analysis Performing a static analysis ahead-of-time for a dynamic language may solve this issue in theory, but imprecision in its results might preclude their use for optimisations in nontrivial  ... 
doi:10.1145/2998415.2998418 dblp:conf/oopsla/VandercammenR16 fatcat:kimipaeycjdz5ougp66bewsmaq

Efficient runtime-enforcement techniques for policy weaving

Richard Joiner, Thomas Reps, Somesh Jha, Mohan Dhawan, Vinod Ganapathy
2014 Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering - FSE 2014  
JavaScript programs executing in a browser.  ...  It utilizes (i) static analysis to identify points in the program at which policy violations might occur, and (ii) runtime checks inserted at such points to monitor policy state and prevent violations  ...  Each subexpression that potentially causes a policy transition (as determined by the static analysis) is replaced by a runtime call to Indirect, which is defined in Algorithm 4. tional static verification  ... 
doi:10.1145/2635868.2635907 dblp:conf/sigsoft/JoinerRJDG14 fatcat:akfc4uarjba7talfwksvcedbuq

Systematic approaches for increasing soundness and precision of static analyzers

Esben Sparre Andreasen, Anders Møller, Benjamin Barslev Nielsen
2017 Proceedings of the 6th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis - SOAP 2017  
Formally proving such properties of a complex static analysis implementation is rarely an option in practice, which raises the challenge of how to identify causes and importance of soundness and precision  ...  Through a series of examples, we present our experience with semi-automated methods based on delta debugging and dynamic analysis for increasing soundness and precision of a static analyzer for JavaScript  ...  We find that the resulting number of locations is usually below 5, which supports the claim that few root causes of imprecision can render the analysis result useless [17] .  ... 
doi:10.1145/3088515.3088521 dblp:conf/pldi/AndreasenMN17 fatcat:iabtsxzbwbe4rhwhcsnqgwqdsa

Static analysis with demand-driven value refinement

Benno Stein, Benjamin Barslev Nielsen, Bor-Yuh Evan Chang, Anders Møller
2019 Proceedings of the ACM on Programming Languages (PACMPL)  
Static analysis tools for JavaScript must strike a delicate balance, achieving the level of precision required by the most complex features of target programs without incurring prohibitively high analysis  ...  We demonstrate the feasibility of this approach by extending an existing JavaScript static analysis with a demand-driven value refinement mechanism that relies on backwards abstract interpretation.  ...  This work was supported by the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation program (grant agreement No 647544) and in part by NSF under grants CCF-1619282  ... 
doi:10.1145/3360566 fatcat:poslikybenbghfyxctqrllmhk4

JSAI: a static analysis platform for JavaScript

Vineeth Kashyap, Kyle Dewey, Ethan A. Kuefner, John Wagner, Kevin Gibbons, John Sarracino, Ben Wiedermann, Ben Hardekopf
2014 Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering - FSE 2014  
However, JavaScript's inherently dynamic nature and many unintuitive quirks cause great difficulty for static analysis.  ...  However, the current state of the art in JavaScript static analysis lags far behind that of other languages such as C and Java. Our goal is to help remedy this lack.  ...  ., automatically generated JavaScript code-one form of contextsensitivity could emerge a clear winner.  ... 
doi:10.1145/2635868.2635904 dblp:conf/sigsoft/KashyapDKWGSWH14 fatcat:nvhqwr7nqbg2fkor673vgnv23y

Using static analysis for Ajax intrusion detection

Arjun Guha, Shriram Krishnamurthi, Trevor Jim
2009 Proceedings of the 18th international conference on World wide web - WWW '09  
We present a static control-flow analysis for JavaScript programs running in a web browser.  ...  Finally, we evaluate our technique against several real applications and show that it protects against an attack in a widely-used web application.  ...  ACKNOWLEDGEMENTS We thank Spiridon Eliopoulos and Brendan Hickey, who helped implement the program analysis.  ... 
doi:10.1145/1526709.1526785 dblp:conf/www/GuhaKJ09 fatcat:oezj7uezxnalteu3txg7kor4gq

Enhanced Bug Prediction in JavaScript Programs with Hybrid Call-Graph Based Invocation Metrics

Gábor Antal, Zoltán Tóth, Péter Hegedűs, Rudolf Ferenc
2020 Technologies  
Our motivation for this is that JavaScript is a highly dynamic scripting language for which static code analysis might be very imprecise; therefore, using a purely static source code features for bug prediction  ...  In this paper, we propose a function level JavaScript bug prediction model based on static source code metrics with the addition of a hybrid (static and dynamic) code analysis based metric of the number  ...  JavaScript is a highly dynamic scripting language for which static code analysis might be very imprecise.  ... 
doi:10.3390/technologies9010003 fatcat:fchtokuinjdb3ntoqveu2dgc5u
« Previous Showing results 1 — 15 out of 615 results