Instrumenting Self-Modifying Code
Title: Instrumenting Self-Modifying Code
Research Question: How can we effectively instrument self-modifying code to detect modifications and adapt the instrumentation accordingly, without incurring a high penalty in terms of speed?
Methodology: The authors propose an innovative technique that uses the hardware page protection mechanism of modern processors to detect modifications in the code. They call this technique "Dynamic Instrumentation." They also discuss how the instrumentor can adapt the instrumented version depending on the type of modification and provide an experimental evaluation of their techniques.
Results: The authors show that their technique can effectively detect modifications in self-modifying code. They also demonstrate that their approach can adapt the instrumentation based on the type of modification, which allows for more accurate and efficient debugging. Their experimental results show that their technique does not significantly slow down the execution of the code, which is a crucial aspect of instrumenting self-modifying code.
Implications: The authors' technique provides a novel solution to the challenge of instrumenting self-modifying code. This can have significant implications for the field of debugging, as it allows for more effective and efficient debugging of complex code that is prone to modifications during execution. This can lead to improved software reliability and performance. Furthermore, their technique can potentially be applied to other areas of computer science and engineering that involve instrumenting code or monitoring execution, such as performance profiling or security analysis.
Link to Article: https://arxiv.org/abs/0309029v1 Authors: arXiv ID: 0309029v1