Actually he IS changing the user's code to effect debugging. As I understand it he is effectively inserting a command to copy the hash into the code he is debugging. So in fact a custom implementation of each is still one way to stop the real one breaking.