记一次 .NET某工控WPF程序被人恶搞的 卡死分析

💡 原文中文,约5800字,阅读约需14分钟。
📝

内容提要

本文讲述了作者分析程序故障的过程,通过WinDbg分析发现主线程被卡在WaitSuspendEventsHelper函数中,进一步分析发现是因为调试器阻塞了该线程。作者怀疑程序被恶意注入,但后来发现程序是通过Visual Studio直接运行的。作者介绍了生成dump文件的方法,并通过一个小例子验证了分析结果。最后,作者总结了这次故障分析的经历,并呼吁读者不要滥用他的免费分析服务。

Q&A

程序故障的主要原因是什么?

程序主线程被卡在WaitSuspendEventsHelper函数中,原因是调试器阻塞了该线程。

如何使用WinDbg分析程序故障?

可以使用WinDbg的k命令查看调用栈,分析主线程的状态。

作者最初怀疑程序被恶意注入的原因是什么?

作者发现PEB.BeingDebugged状态为Yes,认为可能是恶意注入导致的卡死。

如何生成dump文件进行分析?

在Visual Studio中,可以通过Debug -> Save Dump As...来生成dump文件。

作者对滥用免费分析服务的看法是什么?

作者呼吁读者不要滥用他的免费分析服务,认为这浪费了他的时间。

调试器如何影响程序的运行?

调试器会在coreclr层面设置全局变量,导致线程进入调试挂起状态。

🏷️

标签

➡️

继续阅读