Loading...

LDMBL: An architecture for reducing code duplication in heavyweight binary instrumentations

Momeni, B ; Sharif University of Technology | 2018

841 Viewed
  1. Type of Document: Article
  2. DOI: 10.1002/spe.2602
  3. Publisher: John Wiley and Sons Ltd , 2018
  4. Abstract:
  5. Emergence of instrumentation frameworks has vastly contributed to the software engineering practices. As the instrumentation use cases become more complex, complexity of instrumenting programs also increases, leading to a higher risk of software defects, increased development time, and decreased maintainability. In security applications such as symbolic execution and taint analysis, which need to instrument a large number of instruction types, this complexity is prominent. This paper presents an architecture based on the Pin binary instrumentation framework to abstract the low-level OS and hardware-dependent implementation details, facilitate code reuse in heavyweight instrumentation use cases, and improve instrumenting program development time. Instructions of x86 and x86-64 hardware architectures are formally categorized using the Z language based on the Pin framework API. This categorization is used to automate the instrumentation phase on the basis of a configuration list. Furthermore, instrumentation context data such as register data are modeled in an object-oriented scheme. This makes it possible to focus the instrumenting program development time on writing the essential analysis logics while access to low-level OS and hardware dependencies are streamlined. The proposed architecture is evaluated by instrumenting 135 instruction types in a concrete symbolic execution engine, resulting in a reduction of the instrumenting program size by 59.7%. Furthermore, performance overhead measure against the SPEC CINT2006 programs is limited to 8.7%. © 2018 John Wiley & Sons, Ltd
  6. Keywords:
  7. Pin-based architecture ; Z language specification ; Hardware ; Model checking ; Object oriented programming ; Binary instrumentations ; Dynamic binary instrumentation ; Hardware architecture ; Heavyweight instrumentation ; Proposed architectures ; Security application ; Software engineering practices ; Z language ; Computer software reusability
  8. Source: Software - Practice and Experience ; Volume 48, Issue 9 , 2018 , Pages 1642-1659 ; 00380644 (ISSN)
  9. URL: https://onlinelibrary.wiley.com/doi/abs/10.1002/spe.2602