  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.
