无创调试有什么影响?

逆向工程 反调试 风袋
2021-06-21 05:45:23

使用 WinDbg 进行非侵入式用户模式调试对进程有什么影响?它会被过程检测到吗?

当然,我可以想象,如果线程被挂起,可以通过与“通常”值进行比较来检测函数执行时间的差异。

Microsoft 本身并未表明比挂起线程的影响更大。真的吗?

2个回答

确实没有额外的影响。非侵入式调试只是简单地暂停进程,然后读取寄存器上下文和内存。由于没有对内存进行更改,因此没有任何可检测的物理事物。它引入的时间差异是可以检测到的,但是在重负载下的系统可能会产生相同的效果,因此检测是不可靠的(尽管检测例程的作者可能并不关心)。

但是,系统上任何位置的活动调试器的存在都是可以检测到的,与用于调试的方法无关。非侵入式调试技术简单地击败了一些更常见的方法。

异常处理也可以有所作为。我目前正在查看一些代码,如果在正确的情况下在调试器之外运行,这些代码会触发导致程序终止的异常。当调试器内部发生同样的情况时,异常处理被拦截并且程序的行为有所不同(它不再崩溃,但也不会像在调试器之外运行一样)。