Recovery of Class Hierarchies and Composition Relationships from Machine Code

نویسندگان

  • Venkatesh Srinivasan
  • Thomas W. Reps
چکیده

We present a reverse-engineering tool, called Lego, which recovers class hierarchies and composition relationships from stripped binaries. Lego takes a stripped binary as input, and uses information obtained from dynamic analysis to (i) group the functions in the binary into classes, and (ii) identify inheritance and composition relationships between the inferred classes. The software artifacts recovered by Lego can be subsequently used to understand the object-oriented design of software systems that lack documentation and source code, e.g., to enable interoperability. Our experiments show that the class hierarchies recovered by Lego have a high degree of agreement—measured in terms of precision and recall—with the hierarchy defined in the source code.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Software-Architecture Recovery from Machine Code

In this paper, we present a tool, called Lego, which recovers object-oriented software architecture from stripped binaries. Lego takes a stripped binary as input, and uses information obtained from dynamic analysis to (i) group the functions in the binary into classes, and (ii) identify inheritance and composition relationships between the inferred classes. The information obtained by Lego can ...

متن کامل

The Effects of Constant Touch on Consumer Behavior: The Case of Iranian Mobile Phone Users

The main objective of this paper is to argue how the mobile phones have transformed the Iranian lifestyle and how the arrival of mobiles has been a catalyst for revolting behavior, and has launched a new consumer behavior and has changed our relationships. The paper explains how the people's behavior has developed a whole new social code in Iran. It is argued that the social value of being able...

متن کامل

Java Native Interface idioms for C++ class hierarchies

SUMMARY The Java™ Native Interface (JNI) provides a set of mechanisms for implementing Java methods in C or C++. JNI is useful for reusing C and C++ code repositories within Java frameworks. JNI is also useful for real-time systems, where compiled C/C++ code executes performance-critical tasks, while Java code executes system control and feature tasks. Available JNI literature concentrates on c...

متن کامل

A Type Safe Design to Allow the Separation of Different Responsibilities into Parallel Hierarchies

Template class of the Parallel Hierarchies structure. public abstract class VisitorCG extends Visitor { protected T codeGenerator; public VisitorCG(T codeGenerator) { this.codeGenerator=codeGenerator; } @Override public void visitClassNode(ClassNode node) { this.codeGenerator.generateClassHeader(node); for(FieldNode field : node.getFields()) this.codeGenerator.generate...

متن کامل

Visual Component Composition Using Composition Patterns

We improve current visual component composition environments by introducing composition patterns as first class objects that can be defined, stored and reused independently of the components. We document both components and composition patterns using an extended sequence diagram notation. For a component, typical usage protocols are specified while a composition pattern specifies how a set of r...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014