Hide metadata

dc.contributor.authorEriksen, Atle Nærum
dc.date.accessioned2017-12-08T22:28:34Z
dc.date.available2017-12-08T22:28:34Z
dc.date.issued2017
dc.identifier.citationEriksen, Atle Nærum. Pure User Mode Deterministic Replay on Windows. Master thesis, University of Oslo, 2017
dc.identifier.urihttp://hdl.handle.net/10852/59287
dc.description.abstractThe ability to record and replay program executions has many interesting applications such as debugging in the backwards direction, discovering and fixing the source of non-deterministic bugs and data races and retracing the steps of a system intrusion. Unfortunately, the power of deterministic replay tools is underutilized by the general public as the tools are either too difficult to deploy or unable to fulfill the performance and log size requirements of the user. As it happens, the majority of the research has been aimed at implementing such tools for Linux, and other platforms, including Windows, have mostly been neglected. In this thesis we look at whether it is possible to implement a deterministic replay tool for the Windows platform that is easily deployable (user mode only without operating system support – this entails no OS modifi- cations or drivers), can record all system calls and their side-effects (even if unknown), works on large programs (1 GB+ RAM), and has a high recording performance (≈2x slowdown). We found that the challenges deterministic replay tools are facing in user mode are exacerbated on Windows due to a lack of documentation and a more restrictive API. Despite this we came up with a design proposal that solves all the problems necessary to implement a deterministic replay tool that satisfies all our requirements for the Windows platform. We present novel techniques to record thread scheduling and non-deterministic instructions. We also describe in detail how to recreate the address space of a recorded program in which code can be executed and access resources directly without instrumentation or modifications just like in the original program. An alternative novel approach to this technique is also suggested. None of the methods rely on operating system support. Although the design proposal remains theoretical we have implemented two partial prototypes that were used to experiment on a small dummy program. Our findings show that it is reasonable to expect a recording slowdown on real programs in the range of 1-5x that will stay consistent even on programs with high memory usage. Regardless, the results are not conclusive and should be taken with a grain of salt.eng
dc.language.isoeng
dc.subjectpure user mode
dc.subjectrecord and replay
dc.subjectrecord & replay
dc.subjectperformance
dc.subjectwithout operating system support
dc.subjectreverse execution
dc.subjectuser mode
dc.subjectreverse engineering
dc.subjectdeterministic replay
dc.subjectreverse debugging
dc.subjectwindows
dc.titlePure User Mode Deterministic Replay on Windowseng
dc.typeMaster thesis
dc.date.updated2017-12-08T22:28:33Z
dc.creator.authorEriksen, Atle Nærum
dc.identifier.urnURN:NBN:no-61976
dc.type.documentMasteroppgave
dc.identifier.fulltextFulltext https://www.duo.uio.no/bitstream/handle/10852/59287/1/master_atlene.pdf


Files in this item

Appears in the following Collection

Hide metadata