Wednesday, February 9, 2011

Stack Cookie and Encoded pointers

Stack cookie and Embedded pointers are used for protecting from malicious softwares. However they could also be useful debugging tools.

Stack cookies are signature that a compiler put at the start of each frame when expanding. Compiler also puts a special prologue and epilogue around the function definition. It checks the value while winding back the stack frame and if the check fails it calls the exception handler (a standard one provided by the framework or an extended one or an entirely custom made provided by developer).

 Encoded pointers are basically are encrypted pointer values which when accessed needs to be decrypted in order to be used. An invalid value can raise exception. It would be interesting to work out the last validation step.

There would be performance penalty. Couldn't it be possible to design sentinel like objects (independent machineries) which does all these validation and send messages to interested entities.

Tuesday, February 8, 2011