Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2788959.2788964guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
research-article

Automatic reverse engineering of data structures from binary execution

Published: 30 March 2010 Publication History

Abstract

With only the binary executable of a program, it is useful to discover the program's data structures and infer their syntactic and semantic definitions. Such knowledge is highly valuable in a variety of security and forensic applications. Although there exist efforts in program data structure inference, the existing solutions are not suitable for our targeted application scenarios. In this paper, we propose a reverse engineering technique to automatically reveal program data structures from binaries. Our technique, called REWARDS, is based on dynamic analysis. More specifically, each memory location accessed by the program is tagged with a timestamped type attribute. Following the program's runtime data flow, this attribute is propagated to other memory locations and registers that share the same type. During the propagation, a variable's type gets resolved if it is involved in a type-revealing execution point or type sink. More importantly, besides the forward type propagation, REWARDS involves a backward type resolution procedure where the types of some previously accessed variables get recursively resolved starting from a type sink. This procedure is constrained by the timestamps of relevant memory locations to disambiguate variables re-using the same memory location. In addition, REWARDS is able to reconstruct in-memory data structure layout based on the type information derived. We demonstrate that REWARDS provides unique benefits to two applications: memory image forensics and binary fuzzing for vulnerability discovery.

Cited By

View all
  • (2024)Evaluating the Effectiveness of DecompilersProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652144(491-502)Online publication date: 11-Sep-2024
  • (2024)CodeArt: Better Code Models by Attention Regularization When Symbols Are LackingProceedings of the ACM on Software Engineering10.1145/36437521:FSE(562-585)Online publication date: 12-Jul-2024
  • (2023)Binary Sight-Seeing: Accelerating Reverse Engineering via Point-of-Interest-BeaconsProceedings of the 39th Annual Computer Security Applications Conference10.1145/3627106.3627139(594-608)Online publication date: 4-Dec-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
CERIAS '10: Proceedings of the 11th Annual Information Security Symposium
March 2010
33 pages

Publisher

CERIAS - Purdue University

West Lafayette, IN

Publication History

Published: 30 March 2010

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Evaluating the Effectiveness of DecompilersProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652144(491-502)Online publication date: 11-Sep-2024
  • (2024)CodeArt: Better Code Models by Attention Regularization When Symbols Are LackingProceedings of the ACM on Software Engineering10.1145/36437521:FSE(562-585)Online publication date: 12-Jul-2024
  • (2023)Binary Sight-Seeing: Accelerating Reverse Engineering via Point-of-Interest-BeaconsProceedings of the 39th Annual Computer Security Applications Conference10.1145/3627106.3627139(594-608)Online publication date: 4-Dec-2023
  • (2023)Accurate Disassembly of Complex Binaries Without Use of Compiler MetadataProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 410.1145/3623278.3624766(1-18)Online publication date: 25-Mar-2023
  • (2023)NestFuzz: Enhancing Fuzzing with Comprehensive Understanding of Input Processing LogicProceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security10.1145/3576915.3623103(1272-1286)Online publication date: 15-Nov-2023
  • (2022)In the Land of MMUs: Multiarchitecture OS-Agnostic Virtual Memory ForensicsACM Transactions on Privacy and Security10.1145/352810225:4(1-32)Online publication date: 9-Jul-2022
  • (2021)AutoProfile: Towards Automated Profile Generation for Memory AnalysisACM Transactions on Privacy and Security10.1145/348547125:1(1-26)Online publication date: 23-Nov-2021
  • (2021)Architecture-agnostic dynamic type recoveryProceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3475738.3480719(54-60)Online publication date: 29-Sep-2021
  • (2021)SyzGen: Automated Generation of Syscall Specification of Closed-Source macOS DriversProceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security10.1145/3460120.3484564(749-763)Online publication date: 12-Nov-2021
  • (2019)Active learning for software engineeringProceedings of the 2019 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3359591.3359732(62-78)Online publication date: 23-Oct-2019
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media