Skip to main navigation Skip to search Skip to main content

Dynamic reconstruction of relocation information for stripped binaries

  • Columbia University

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

2 Scopus citations

Abstract

Address Space Layout Randomization (ASLR) is a widely used technique for the prevention of code reuse attacks. The basic concept of ASLR is to randomize the base address of executable modules at load time. Changing the load address of modules is also often needed for resolving conflicts among shared libraries with the same preferred base address. In Windows, loading a module at an arbitrary address depends on compiler-generated relocation information, which specifies the absolute code or data addresses in the module that must be adjusted due to the module's relocation at a non-preferred base address. Relocation information, however, is often stripped from production builds of legacy software, making it more susceptible to code-reuse attacks, as ASLR is not an option. In this paper, we introduce a technique to enable ASLR for executables with stripped relocation information by incrementally adjusting stale absolute addresses at runtime. The technique relies on runtime monitoring of memory accesses and control flow transfers to the original location of a relocated module using page table manipulation techniques. Depending on the instruction and memory access type, the system identifies stale offsets, reconstructs their relocation information, and adjusts them so that subsequent accesses to the same locations proceed directly, without any intervention. To improve performance further, the reconstructed relocation information is preserved across subsequent runs of the same program. We have implemented a prototype of the proposed technique for Windows XP, which is transparently applicable to third-party stripped binaries, and have experimentally evaluated its performance and effectiveness. Our results demonstrate that incremental runtime relocation patching is practical, incurs modest runtime overhead for initial runs of protected programs, and has negligible overhead on subsequent runs.

Original languageEnglish
Title of host publicationResearch in Attacks, Intrusions, and Defenses - 17th International Symposium, RAID 2014, Proceedings
EditorsAngelos Stavrou, Herbert Bos, Georgios Portokalidis
PublisherSpringer Verlag
Pages68-87
Number of pages20
ISBN (Print)9783319113784
DOIs
StatePublished - 2014
Event17th International Symposium on Research in Attacks, Intrusions, and Defenses, RAID 2014 - Gothenburg, Sweden
Duration: Sep 17 2014Sep 19 2014

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume8688 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference17th International Symposium on Research in Attacks, Intrusions, and Defenses, RAID 2014
Country/TerritorySweden
CityGothenburg
Period09/17/1409/19/14

Fingerprint

Dive into the research topics of 'Dynamic reconstruction of relocation information for stripped binaries'. Together they form a unique fingerprint.

Cite this