Static Program Analysis for String Manipulation Languages

Vincenzo Arceri
(University of Verona, Department of Computer Science, Verona, Italy)
Isabella Mastroeni
(University of Verona, Department of Computer Science, Verona, Italy)

In recent years, dynamic languages, such as JavaScript or Python, have been increasingly used in a wide range of fields and applications. Their tricky and misunderstood behaviors pose a hard challenge for static analysis of these programming languages. A key aspect of any dynamic language program is the multiple usage of strings, since they can be implicitly converted to another type value, transformed by string-to-code primitives or used to access an object-property. Unfortunately, string analyses for dynamic languages still lack precision and do not take into account some important string features. Moreover, string obfuscation is very popular in the context of dynamic language malicious code, for example, to hide code information inside strings and then to dynamically transform strings into executable code. In this scenario, more precise string analyses become a necessity. This paper is placed in the context of static string analysis by abstract interpretation and proposes a new semantics for string analysis, placing a first step for handling dynamic languages string features.

In Alexei Lisitsa and Andrei Nemytykh: Proceedings Seventh International Workshop on Verification and Program Transformation (VPT 2019), Genova, Italy, 2nd April 2019, Electronic Proceedings in Theoretical Computer Science 299, pp. 19–33.
Published: 20th August 2019.

ArXived at: https://dx.doi.org/10.4204/EPTCS.299.5 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org