Show simple item record

dc.contributor.advisorKulkarni, Prasad
dc.contributor.authorVaidya, Ruturaj Kiran
dc.date.accessioned2020-05-07T19:07:25Z
dc.date.available2020-05-07T19:07:25Z
dc.date.issued2019-12-31
dc.date.submitted2019
dc.identifier.otherhttp://dissertations.umi.com/ku:16877
dc.identifier.urihttp://hdl.handle.net/1808/30327
dc.description.abstractThough languages like C and C++ are known to be memory unsafe, they are still used widely in industry because of their memory management features, low level nature and performance benefits. Also, as most of the systems software has been written using these languages, replacing them with memory safe languages altogether is currently impossible. Memory safety violations are commonplace, despite the fact that that there have been numerous attempts made to conquer them using source code, compiler and post compilation based approaches. SoftBound is a compiler-based technique that enforces spatial memory safety for C/C++ programs. However, SoftBound needs and depends on program information available in the high-level source code. The goal of our work is to develop a mechanism to efficiently and effectively implement a technique, like SoftBound, to provide spatial memory safety for binary executables. Our approach employs a combination of static-time analysis (using Ghidra) and dynamic-time instrumentation checks (using PIN). Softbound is a pointer based approach, which stores base and bound information per pointer. Our implementation determines the array and pointer access patterns statically using reverse engineering techniques in Ghidra. This static information is used by the Pin dynamic binary instrumentation tool to check the correctness of each load and store instruction at run-time. Our technique works without any source code support and no hardware or compiler alterations are needed. We evaluate the effectiveness, limitations, and performance of our implementation. Our tool detects spatial memory errors in about 57% of the test cases and induces about 6% average overhead over that caused by a minimal Pintool.
dc.format.extent51 pages
dc.language.isoen
dc.publisherUniversity of Kansas
dc.rightsCopyright held by the author.
dc.subjectComputer engineering
dc.subjectComputer science
dc.subjectapplication security
dc.subjectbinary security
dc.subjectdynamic instrumentation
dc.subjectmemory safety
dc.subjectspatial safety
dc.subjectstatic analysis
dc.titleImplementing SoftBound on Binary Executables
dc.typeThesis
dc.contributor.cmtememberDavidson, Drew
dc.contributor.cmtememberBardas, Alex
dc.thesis.degreeDisciplineElectrical Engineering & Computer Science
dc.thesis.degreeLevelM.S.
dc.identifier.orcidhttps://orcid.org/0000-0002-7512-170X
dc.rights.accessrightsopenAccess


Files in this item

Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record