October 2018
Beginner to intermediate
436 pages
9h 36m
English
Normally, the time it takes for a program to execute lines of instructions from address A to address B would only take less than a second. But if these instructions were being debugged, a human would probably take about a second per line. Debugging from address A to address B would at least take a couple of seconds.
Essentially, the concept works just like a stopwatch. If the time it takes for a few lines of code is too long, the trick assumes that the program is being debugged.
Timing tricks can be applied as an anti-debugging method in any programming language. Setting a stopwatch would only require a function that can read time. Here are some examples of how timing tricks can be implemented in x86 assembly:
rdtscmov ebx, ...
Read now
Unlock full access