10.2.6 行为检测

10.2.6 行为检测

行为检测是指在程序中通过代码感知程序处于调试时与未处于调试时的各种差异来判断程序是否处于调试状态。例如,我们调试程序时步过两条指令所花费的时间会远远超过CPU连续执行这两条指令所花费的时间。可以通过rdtsc指令构建如图10.40所示指令,当我们单步到00401006处且有所停留时,0040100A处会有感知。

图10.40 rdtsc构建的指令

有些程序会检测程序运行时到达入口的是否只有一个线程,有些程序会从驱动层判断是否有来自保护程序的中断等。行为检测方式多种多样,无法在这里尽述了。