之前写过一篇简单的wireshark抓包教程:捣鼓软件之:网络抓包利器-wireshark,其中提到过SYSINTERNALS SOFTWARE的几个经典工具.
对软件行为监控首选SYSINTERNALS SOFTWARE出品的系列工具:
regmon---可以监控系统注册表读写
filemon---用于监控文件读写
procexp---用于监控进程以及进程关系
tcpview---监控进程监听端口,网络连接行为
鉴于以上软件功能上互有交集,SYSINTERNALS SOFTWARE收归微软后,以上工具除了procexp和tcpview,文件和注册表监控工具都已不支持vista以上版本系统,取而代之的是集以上软件功能为一体的procmon.
今天就稍微详细点介绍下以上几个工具中的procexp和procmon,下载地址:
如果下载不了就自己网络搜索,或者到微软官方网站去下载.
1.Procexp
图1.procexp进程浏览器
procexp全称process explorer,这个工具如果经常折腾系统或者做软件调试的人应该接触较多.
相比windows系统自带的任务管理器,其优秀之处在于很方便地查看进程相关信息,如进程路径,参数,线程等,还可以查看tcpip连接,进程关系,占用情况等.
工具虽小,但作用很大,是一款软件爱好者必备利器.
1.1 查看进程相关信息
图2.查看进程详细信息
启动procexp.exe后,我们可以在你需要查看的进程上右键>属性查看,也可以直接双击或点击工具栏上方的手势按钮,打开后我们可以看到程序的路径,参数,线程等等信息,如图2所示:
此处我们可以查看一个进程的文件版本,加载线程,网络连接等各方面信息,其中有个比较有用的功能是校验程序的真伪.
我们知道目前网络上病毒猖狂,伪造的或者被人修改的系统文件比比皆是,在这么多文件里面我们根本难以区分哪些文件真正属于微软原版文件,指不定一个外表看上去微软得不能再微软的程序,实际上跟微软一点关系也没有,甚至是植入了恶意程序.
当一个程序签名是微软的信息,而实际上被注入第三方线程或者干脆非微软时,软件默认会以紫色醒目提示.同时,我们可以查看该进程属性,点击"verify"按钮,程序会自动与微软提供的程序符号表校对,如果确系微软文件,将会在版本信息处标识已校验通过.
反之,如果非微软的文件,则肯定无法与微软提供的符号表相匹配,软件将会提示无法验证.如果签名信息为微软,而又无法在此处通过验证,那么此时你就要多留意此文件的安全性了.
1.2 查看程序调用关系
图3.查看程序调用关系
一个程序往往由很多组件组成,程序通过各种调用关联完成一系列的功能.当然,现在的程序编写多采用标准库,查看到的也包含系统提供的相关模块.
我们可以点击工具栏上的面板按钮,也可以按快捷ctrl+l或者ctrl+d,一般多用ctrl+d,软件将自动展开程序的下级调用查看面板,我们选择一个程序,可以在下方看到相应的调用关系.
比如我要查看浏览器都加载了哪些插件,那么可以启动浏览器,然后选择浏览器进程,查看起调用的所有动态链接库.可能大部分都是微软的公司签名,那么我们可以点击公司名称标签排序,这样就可以快速地筛选出非微软的程序了.当然,纯粹公司名是可以任意伪造的,要验证真伪请参考前文.
在进程调用关系上,我们经常可以用于定位某些弹窗软件.
我们经常会发现右下角多出个小窗,小窗内播放着各种诱惑的东西,这种广告多如牛毛,还不知道是谁弹的,那么此功能就派上用场了.
左键点住工具栏上的雷达图标(一般是最后一个),拖到弹出的小窗上再松开,程序自动定位到窗口程序,其程序间的父子关系一目了然,父进程就是罪魁祸首了,该怎么办您自己看着办.
做了个简单的示范录像,有兴趣的可以查看下,更多使用技巧请自己下载使用中体验.
图4.查找文件占用进程
1.3 查找文件占用
其实是查看程序调用功能的延伸,本身程序能检查到各个文件之间的相互调用关系,那么就很好理解此功能的来源了.
我们平常可能会经常用到unlock这种工具删除被占用的文件,原理也类似,我们可以利用procexp查找占用,然后将占用的程序结束掉再删文件,就不用装unlock了.
有一种程序一启动就会占用的文件,此时我们可以将进程结束,然后点击菜单>file>run/save等功能任意选一个,打开windows的对话框,在此找到要删除的文件,右键能看到explorer下一样的菜单,将文件删除即可.