诊断三剑客:Process Explorer、Process Monitor、Autoruns
Process Explorer是带X光的任务管理器:它显示进程树、每个进程加载的DLL、藏身于每个svchost里的服务,还有上百列的细节。它的绝招是Find Handle(Find → Find Handle or DLL):输入一个顽固文件的名字,它就点名正占着它的那个进程——“文件正在被另一个程序使用”这类报错的万能答案。它还能把所有运行中的程序送到VirusTotal(Options → VirusTotal.com → Check),把判定结果显示成一列。仅这一个功能,就能平息健康电脑上一半的“这是什么进程”恐慌。把它设为默认任务管理器(Options → Replace Task Manager),大多数疑难就不再是疑难。
Process Monitor记录机器上每一个文件、注册表和网络事件——每秒几千行——所以功夫不在记录,而在过滤。把Include Result设为ACCESS DENIED,或让Path以你关心的文件开头,噪音立刻塌缩成一个答案。它还能记录完整的启动过程(Options → Enable Boot Logging),抓拍你登录之前发生的事。Autoruns是第三条腿:它枚举每一个自启动位置——登录项、服务、计划任务、shell扩展、编解码器——并附带发布者和签名列,所以那些随Windows启动、而任务管理器的启动标签闻所未闻的东西,无处藏身。
- “文件已在另一个程序中打开”——Process Explorer:Find → Find Handle,输入文件名
- “这个陌生进程是什么?”——Process Explorer的VirusTotal列,加上DLLs和Services标签
- “是谁在不停碰这个文件或设置?”——Process Monitor,对准那个确切路径过滤
- “有什么东西随Windows启动,启动列表却从不显示”——Autoruns,隐藏微软条目后一目了然
- “我的电脑此刻在和谁通信?”——TCPView,每条连接看一眼就够
配角阵容:转储、套接字、文件夹、签名
ProcDump盯住一个进程,在它闹毛病的精确瞬间写下内存转储——procdump -c 90 app.exe捕获CPU越过90%的那一刻,全程不用杀进程。TCPView是长了脸的netstat:每条连接和监听端口,按进程分组,实时刷新。Disk Usage(du.exe)在控制台里打印文件夹大小——du -l 2 C:\Users报告两层深度——几秒钟就能了结“空间去哪儿了”的争论。sigcheck校验签名、版本和哈希(sigcheck -h file.exe),不必运行就能回答“这个文件是不是它自称的那个”。Strings从任何二进制文件中提取可读文本——URL、路径、线索——这是窥视可疑文件内部的正派做法。
最后两个解决的是放着不管会吃掉一整个晚上的小疑难。MoveFile把被锁文件的删除安排到下次重启时执行(movefile "C:\path\stubborn.dll" ""),连Process Explorer都无法干净解锁的文件也能除掉。BgInfo把主机名、IP地址、开机时间和内存盖到壁纸上——听起来琐碎,直到你靠电话远程支持家里三台电脑,再也不用问“我现在说的是哪台电脑”。
怎样使用整套工具而不弄坏任何东西
一切都可以从微软的Sysinternals网站免费获取,每个工具都无需安装即可运行——想始终用最新版,也可以直接从 \\live.sysinternals.com\tools 运行。多数工具支持命令行加 /accepteula,让首次使用保持安静。把它们放在同一个文件夹里,把该文件夹加入PATH,当疑难涉及系统进程时以管理员身份运行。黄金法则:这些工具只看不动手——唯一的改动是你明确做出的那些,比如杀掉一个句柄或禁用一条Autoruns条目。先看,理解,再动手,Windows就不再守着秘密了。
常见问题与解答
Sysinternals工具用起来安全吗?
安全——微软发布并维护它们已近三十年。它们有签名、免费,在你故意改动之前只读。
哪个Sysinternals工具能显示所有随Windows启动的内容?
Autoruns。它列出每一个自启动位置——登录项、服务、计划任务、shell扩展——远超任务管理器启动标签的显示范围。
继续阅读
联系我们: [email protected]