2014
DOI: 10.1007/978-3-642-54807-9_4
|View full text |Cite
|
Sign up to set email alerts
|

Recovery of Class Hierarchies and Composition Relationships from Machine Code

Abstract: Abstract. 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 tha… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
4
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
3
2

Relationship

0
5

Authors

Journals

citations
Cited by 13 publications
(4 citation statements)
references
References 15 publications
0
4
0
Order By: Relevance
“…After that, Lee et al [29] proposed a new method on the basis of REWARDS, they transformed the assembly language into the intermediate language BIL and completed the type inference by combining dynamic and static analysis. Srinivasan et al [30] presented a reverse-engineering tool (called Lego), which utilized information obtained from dynamic analysis and relationship about inheritance, to recover class hierarchies and composition relationships from stripped binaries.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…After that, Lee et al [29] proposed a new method on the basis of REWARDS, they transformed the assembly language into the intermediate language BIL and completed the type inference by combining dynamic and static analysis. Srinivasan et al [30] presented a reverse-engineering tool (called Lego), which utilized information obtained from dynamic analysis and relationship about inheritance, to recover class hierarchies and composition relationships from stripped binaries.…”
Section: Related Workmentioning
confidence: 99%
“…The purpose of the data type recognition is to determine the data type (e.g., string or pointer) to which each byte of the data segment belongs. Some researchers have conducted research on type recognition [26]- [30]. Current type recognition tools usually depend on code segment heuristics or dynamic analysis whereas firmware analysis often lacks the dynamic analysis environment.…”
Section: Introductionmentioning
confidence: 99%
“…We define the helper function voterIndex (lines 19-26), which returns the index of the voter in the poll table. We also created the function isRegistered (lines [15][16][17] to determine whether the user was registered to vote by using the voterIndex function. Since array indexes in Solidity are unsigned integers (uint), we need to explicitly convert it to a regular integer (line 22 The rest of the contract defines the following functions:…”
Section: A Poll Smart Contractmentioning
confidence: 99%
“…Srinivasan and Reps [15] developed a reverse engineering tool to recover class hierarchical information from a binary program file. Their tool also extracts composition relationships as well.…”
Section: B Reverse Engineeringmentioning
confidence: 99%