Runtime monitoring

In order for Signpost to be able to match against the knowledge base description, it has to know about the programs behavior. Its does this by employing a runtime monitoring system. There are several ways that this can be achieved - if you are interested my thesis describes each of the ways I considered (goto downloads) and their performance impact, but to save time I initially used Mutek's BugTraper (both company and product have been renamed to Identify's AppSight). Using a commercial product to gather runtime behavior saved a lot of time in a research area that is very well understood (and thus didn't add anything to the core thesis), however I am plainly aware that some readers are interested about runtime monitoring so I'll outline the general principals used and point people to further information.

There are several ways of achieving runtime monitoring and in my opinion the most usable of these is binary modification for two prime reasons

The general process of binary modification is outlined in the following diagram

There's quite a lot about this particular technique out on the web. Florida Tech has one implementation called HEAT (Hostile Environment for Application Testing), Microsoft has another called Detours, and there are plenty of others.

 

 

[Back to top]