2 ms·
While reversing WMDRM (the older Windows Media DRM), I was beating my head against the wall trying to get around some anti-debugging tricks they had riddled the
by daeken 17y ago
While reversing WMDRM (the older Windows Media DRM), I was beating my head against the wall trying to get around some anti-debugging tricks they had riddled the codebase with. Eventually, I came up with a trick: insert infinite loops where you want to break.
Any time I wanted to break somewhere, I'd inject an infinite loop and watch for the CPU to redline. Then I'd break in, pause the execution, replace the loop with the original instructions, step through it, put the loop back in, and do whatever I wanted to do. This eventually became an automated "nondebugger", which I've since used in various hostile environments.
It's amazing the random things you'll come up with after a few days of way too little sleep and way too much caffeine.