如何找出调试我的.NET应用程序的调试器?

时间:2012-08-09 17:16:01

标签: .net debugging windbg visual-studio-debugging

我已经知道Debugger.IsAttached用于确定我的应用程序当前是否正在运行时进行调试。如何确定调试器本身的更多信息?

例如,如何区分从Visual Studio调试的应用程序和WinDbg调试的应用程序?

在我的方案中,应用程序不是从Visual Studio启动的。调试器可以附加到已经运行的进程。

1 个答案:

答案 0 :(得分:1)

我能想到的一种方法是枚举机器上的现有进程,然后枚举每个进程的句柄。因此,如果您发现WinDbg.exe的一个实例正在运行并且它具有您的进程的句柄,那么您最有可能被WinDbg.exe调试。

请记住,虽然调试器可能已经“非侵入性地”附加,但实际上您可能连接了多个调试器。或者您可以远程调试,也可以通过串口或USB连接内核调试器。

有关调试器的大量有用信息,您可以查看anti-debuggig techniques