首页
社区
课程
招聘
[原创]1分钟解救 run 不出来的 Autoruns
发表于: 2020-3-26 22:09 2898

[原创]1分钟解救 run 不出来的 Autoruns

2020-3-26 22:09
2898

缘起

今天,被某些开机自动运行的程序“惹毛”了。打算使用Autoruns查看这个进程为什么会开机启动。没想到打开Autoruns后,只能在任务栏看到图标,怎么点都点出不来。Autoruns已经启动了,不然任务栏不会看到图标,到底是什么原因导致的呢?继续阅读前,请回忆下是否遇到过类似的情况,有什么思路吗?

说明:很早就写了初稿,一直没来得及编辑完善,直到周末才编辑完。

捕获事件

照例请出我们的老朋友 ——process monitor。开始捕获,然后打开Autoruns,当任务栏出现Autoruns的图标后,停止捕获。通过Tools->Process Tree...(或者按Ctrl + T)查找到Autoruns,在其上面右键,Add Process to Include Filter,只显示Autoruns相关的事件,准备进一步分析。

没想到!?居然一篇空白,什么都没有了!

小意外

process monitor肯定捕获了对应的事件,但是为什么什么都没有了呢?先检查下过滤条件。

原来,process monitor默认会过滤掉Autoruns相关的事件。关闭这条过滤规则,点击OK,关于Autoruns的事件都出来了。

分析

捕获的事件有了,我们就可以继续分析了。我猜测,Autoruns应该把配置保存到了注册表中,所以排除其它几类事件,只保留注册表相关事件。应该是成功的读取到了某些错误的设置,所以只保留Reuslt是Success而且Operation是RegQueryValue的事件。(当然,这是我的猜测。还有可能是没读取到某些关键设置,如果是没读取到,我们应该把Result列是Success的排除掉。)

一般情况下,很多程序会把对应的设置保存到HKCU下,而不是HKLM。因为写入HKLM需要管理员权限,读取不用。所以我们还可以排除Path以HKLM开头的记录。

做好过滤后,往下浏览下,发现了四个跟位置有关的参数。

发现,其中的ypos的值很奇怪,删除后重新启动Autoruns即可正常显示了。整个过程请参考下面的屏幕录像。

友情提示:

Autoruns在关闭的时候会保存相关配置到注册表,所以需要先关闭Autoruns,再做修改操作。

回顾

在公司的时候,接过外接显示器。应该是Autoruns上次退出的时候的位置正在外接显示器,保存的位置是相对于外接显示器的位置。本次启动后,依然想在外接显示器中显示。但是,外接显示器已经没有了,所以不能正常显示出来。make sense!

总结

Autoruns会保存相关设置到注册表中,对应的注册表位置是HKCU\Software\Sysinternals\AutoRuns。

猜想其它Sysinternals工具也会把设置保存到HKCU\Software\Sysinternals\下面。

process monitor默认会过滤一些事件,其中就包括Autoruns相关的事件。

process monitor真的是排错的神兵利器。但是一定要用好过滤才行。否则就是大海捞针!


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 2
支持
分享
最新回复 (3)
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个工具对搞运维的非常有帮助,谢谢。
2020-3-27 10:46
0
雪    币: 8519
活跃值: (9122)
能力值: ( LV12,RANK:360 )
在线值:
发帖
回帖
粉丝
3
limee 这个工具对搞运维的非常有帮助,谢谢。
嗯,超级有用的。搞开发的也有挺有用的
2020-3-27 21:40
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
系统老是有垃圾弹窗,可以用这个工具搞吗?
2020-3-30 13:15
0
游客
登录 | 注册 方可回帖
返回
//