用WinDbg进行的非侵入式用户模式调试对进程有什么影响?
进程可以检测到它吗?通过与“常规”值进行比较,可以检测到函数的功能。

Microsoft本身并不比挂起线程带来更多影响。是真的吗?

#1 楼

实际上没有任何其他影响。非侵入式调试只是简单地暂停该过程,然后读取寄存器上下文和内存。由于内存没有任何变化,因此无需检测任何物理事物。它引入的时序差异是可以检测到的,但是在重负载下系统也可以产生相同的效果,因此,由于该原因检测不可靠(尽管检测例程的作者可能不在乎)。

但是,可以检测到系统中任何地方都存在活动的调试器,而与调试方法无关。无创调试技术简单地击败了一些更常见的方法。

#2 楼

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

评论


异常不会有任何区别,因为非侵入式调试器不会看到它们。有附加的调试器时,许多应用程序的行为会有所不同。问题是,与非侵入式调试器相比,您拥有的应用程序在没有任何调试器的情况下其行为方式是否相同(应该如此)。如果存在差异,则可能是应用程序检测到了调试器。

–彼得·弗里
2013年12月16日的1:35