Publicação:
Context-sensitive analysis without calling-context

dc.contributor.authorLakhotia, Arun
dc.contributor.authorBoccardo, Davidson R.
dc.contributor.authorSingh, Anshuman
dc.contributor.authorManacero Jr., Aleardo [UNESP]
dc.contributor.institutionUniversity of Louisiana at Lafayette
dc.contributor.institutionInmetro - National Institute of Metrology, Quality and Technology
dc.contributor.institutionUniversidade Estadual Paulista (Unesp)
dc.date.accessioned2014-05-27T11:24:47Z
dc.date.available2014-05-27T11:24:47Z
dc.date.issued2010-09-01
dc.description.abstractSince Sharir and Pnueli, algorithms for context-sensitivity have been defined in terms of 'valid' paths in an interprocedural flow graph. The definition of valid paths requires atomic call and ret statements, and encapsulated procedures. Thus, the resulting algorithms are not directly applicable when behavior similar to call and ret instructions may be realized using non-atomic statements, or when procedures do not have rigid boundaries, such as with programs in low level languages like assembly or RTL. We present a framework for context-sensitive analysis that requires neither atomic call and ret instructions, nor encapsulated procedures. The framework presented decouples the transfer of control semantics and the context manipulation semantics of statements. A new definition of context-sensitivity, called stack contexts, is developed. A stack context, which is defined using trace semantics, is more general than Sharir and Pnueli's interprocedural path based calling-context. An abstract interpretation based framework is developed to reason about stack-contexts and to derive analogues of calling-context based algorithms using stack-context. The framework presented is suitable for deriving algorithms for analyzing binary programs, such as malware, that employ obfuscations with the deliberate intent of defeating automated analysis. The framework is used to create a context-sensitive version of Venable et al.'s algorithm for analyzing x86 binaries without requiring that a binary conforms to a standard compilation model for maintaining procedures, calls, and returns. Experimental results show that a context-sensitive analysis using stack-context performs just as well for programs where the use of Sharir and Pnueli's calling-context produces correct approximations. However, if those programs are transformed to use call obfuscations, a contextsensitive analysis using stack-context still provides the same, correct results and without any additional overhead. © Springer Science+Business Media, LLC 2011.en
dc.description.affiliationUniversity of Louisiana at Lafayette, P.O. Box 44330, Lafayette, LA 70504
dc.description.affiliationInmetro - National Institute of Metrology, Quality and Technology, Rio de Janeiro
dc.description.affiliationPaulista State University (UNESP), São Paulo
dc.description.affiliationUnespPaulista State University (UNESP), São Paulo
dc.format.extent275-313
dc.identifierhttp://dx.doi.org/10.1007/s10990-011-9080-1
dc.identifier.citationHigher-Order and Symbolic Computation, v. 23, n. 3, p. 275-313, 2010.
dc.identifier.doi10.1007/s10990-011-9080-1
dc.identifier.issn1388-3690
dc.identifier.scopus2-s2.0-84855665553
dc.identifier.urihttp://hdl.handle.net/11449/71846
dc.language.isoeng
dc.relation.ispartofHigher-Order and Symbolic Computation
dc.rights.accessRightsAcesso aberto
dc.sourceScopus
dc.subjectAnalysis of binaries
dc.subjectContext-sensitive analysis
dc.subjectDeobfuscation
dc.subjectObfuscation
dc.subjectAbstract interpretations
dc.subjectAutomated analysis
dc.subjectBinary programs
dc.subjectContext sensitivity
dc.subjectContext-sensitive
dc.subjectFlow graph
dc.subjectInter-procedural
dc.subjectMalwares
dc.subjectPath-based
dc.subjectRigid boundaries
dc.subjectTrace semantics
dc.subjectAbstracting
dc.subjectAlgorithms
dc.subjectAtoms
dc.subjectSemantics
dc.subjectJava programming language
dc.titleContext-sensitive analysis without calling-contexten
dc.typeTrabalho apresentado em evento
dcterms.licensehttp://www.springer.com/open+access/authors+rights
dspace.entity.typePublication

Arquivos

Coleções