【导入与导出配置】

一旦您配置了一个筛选器,您能够使用“工具(Tools)”菜单中的“保存筛选器(SaveFilters)”菜单项将其保存。Process Monitor将您所保存的筛选器加入到“读取筛选器(Load Filter)”菜单,便于您能够方便地訪问。您也能够选择“工具(Tools)”菜单中的“管理筛选器(Organize Filters)”来打开管理筛选器对话框,以改变筛选器的显示顺序。您能够使用管理筛选器对话框来重命名已保存的筛选器,也能非常easy地以一定的格式导出筛选器。这样您以后就能够在其他系统中使用管理筛选器对话框来又一次导入。

您也能够使用“文件(File)”菜单中的“导出配置(ExportConfiguration)”菜单项来导出整个Process Monitor的配置信息,包含筛选器、列目选择、列目的顺序和大小。日志文件设置以及调试帮助文件路径配置信息到一个Process Monitor的配置文件里(.PMC)。

使用“文件(File)”菜单中的“导入配置(Export Configuration)”菜单项能够读取一个保存的配置文件或者使用“/LoadConfig”命令行选项。

【命令行选项】

Process Monitor提供了一些命令行选项:

        /Openlog<已保存的PML日志文件>

令Process Monitor打开并读取指定的日志文件。

        /Backingfile<日志文件名称>

令Process Monitor创建并使用指定的文件名称作为日志文件。

        /Pagingfile

将事件保存在分页文件里。

        /Noconnect

当这个标志位出现时,ProcessMonitor就不能自己主动開始日志活动。

        /Nofilter

在启动时清空筛选器。

        /AcceptEula

自己主动绕过许可并绕过EULA对话框。

        /Profiling

打开线程分析事件类。

        /Minimized

使Process Monitor在启动时将其窗体最小化显示在任务栏上。

        /WaitForIdle

等待Process Monitor的一个实例。直至其准备完成。

        /Terminate

终止Process Monitor的全部实例并退出。

        /Quiet

在启动时不使用筛选器选项。

        /Run32

使用这个开关能够在64位版本号的Windows中执行32位版本号的ProcessMonitor。以打开在32位系统中生成的日志。

        /HookRegistry

这个开关仅仅可以在32位的Vista和Server 2008中使用,ProcessMonitor使用系统调用钩子以代替注冊表回调机制来监视注冊表的活动,这就行令其在这些操作系统上查看Softgrig的虚拟注冊表操作。这个选项必须在Process Monitor在系统上第一次执行时使用,而且仅仅能用于SoftGrid应用程序的故障排除。

        /SaveAs,/SaveAs1,/SaveAs2

配合/OpenLog来使用这些开关,可以使ProcessMonitor以CSV、XML或PML格式导出一个日志文件。/SaveAs1选项包含以XML格式导出的栈信息,而/SaveAs2选项加入了符号信息。

        /LoadConfig

读取指定的筛选器和设置文件。

【ProcessMonitor脚本编写】

您可以使用Process Monitor的命令行选项来编写批处理文件。

这里的样例为您展示了怎样编写批处理文件。使其可以捕获“记事本(notepad.exe)”程序的运行:

set PM=C:\sysint\procmon.exe
start %PM% /quiet /minimized /backingfile C:\temp\notepad.pml
%PM% /waitforidle
start /wait notepad.exe
%PM% /terminate

Process Monitor的第一个调用使用的是start命令。来确保进程与控制台窗体相脱离,这可以使其与最新的命令同一时候执行。第二个调用使用的是/WaitForIdle命令,它可以令批处理文件暂停。直至第一个实例出现、执行而且捕捉事件活动。最后的调用使用的是/Terminate命令,它告诉第一个实例停止捕捉。将重要的数据保存到备份文件再顺利地退出。

【注入应用程序的调试信息】

假设您是一位应用程序开发者,那么将您自己的调试输出包括在Process Monitor的事件流中会很实用。这样您就能够更好地将应用程序的操作与其他的事件相关联。Process Monitor同意未经授权的应用程序注入长达2048个字符长度的宽字符串中。以下演示样例代码展示了怎样打开Process Monitor的调试界面并在事件流中写入信息。您在实际编程中无需以空字符作为结尾,虽然演示样例中是以空字符结尾的。以下的代码演示样例描写叙述了怎样生成Process Monitor的调试输出。John Robbins也编写了帮助类。您能够在您本地或管理应用中方便地加入这些支持,您能够在此下载

        注意:您必须显示分析事件(它被默认的过滤配置所过滤)。以查看这些事件。

#include <windows.h>
#include <tchar.h>
#include <stdio.h> #define FILE_DEVICE_PROCMON_LOG 0x00009535
#define IOCTL_EXTERNAL_LOG_DEBUGOUT (ULONG) CTL_CODE( FILE_DEVICE_PROCMON_LOG, 0x81, METHOD_BUFFERED, FILE_WRITE_ACCESS ) int main()
{ HANDLE hDevice = CreateFile( L"\\\\.\\Global\\ProcmonDebugLogger", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if ( hDevice != INVALID_HANDLE_VALUE ) { WCHAR text[] = L"Debug out"; DWORD textlen = (wcslen(text)+1) *sizeof(WCHAR);
DWORD nb = 0; BOOL ok = DeviceIoControl( hDevice, IOCTL_EXTERNAL_LOG_DEBUGOUT, text, textlen, NULL, 0, &nb, NULL ); if ( ok ) { printf( "wrote debug output message\n" ); } else { printf( "error 0x%x\n", GetLastError() ); } CloseHandle( hDevice ); } else { printf( "error %d opening Process Monitor\n", GetLastError() ); } return 0; }

【附:ProcessMonitor的简单演示】

为了简单演示一下本软件的功能。我将《反病毒攻防研究第001篇:自我复制与自删除》《反病毒攻防研究第002篇:利用注冊表实现自启动》这两篇文章中的程序相结合,然后用ProcessMonitor对其行为进行监測。

这里先来总结一下我所编写的“恶意程序”的行为,以便与ProcessMonitor的监測结果相比較:

(1)将自身拷贝到system32与windows文件夹下。

(2)将自身加入到注冊表HKCU\Software\Microsoft\Windows\CurrentVersion\Run中。

(3)映像劫持cmd.exe程序。

(4)删除自身。

接下来,先在计算机中执行Process Monitor v3.10(注:真实病毒应当在虚拟机下执行并监控),此时会弹出“ProcessMonitor Filter”对话框,让我们对筛选条件进行设置。

这里我们要监控的程序名称为“Hacked.exe”,将进程名称包括在筛选器中,然后单击“Add”。此时“Hacked.exe”已包括在筛选器中。我们单击“OK”。


图1 筛选器设置

        执行“Hacked.exe”程序,此时ProcessMonitor已监控到该程序对应的操作,例如以下图所看到的:

图2 查看监控结果

图中完整地监控到了整个程序的运行流程。首先能够打开进程树查看一下相关进程的启动情况:

图3 查看进程树

可见“Hacked.exe”自身还启动了cmd.exe程序。那么假设有必要的话,还应当对其进行监控。

这里我是将全部项目的监控都打开了。为了简单起见,我们能够逐个分析。首先令ProcessMonitor仅仅显示文件监控。然后进行查看:

图4 查看“Hacked.exe”的自我复制

由监控结果可见。程序将自身拷贝到了windows以及system32文件夹下。

继续观察:

图5 “Hacked.exe”创建自删除文件

这里创建了DelSelf.cmd文件,而且对其进行了写入操作。至此。我们并未发现“Hacked.exe”有删除自身的行为,那么有必要对cmd.exe进行监控。结果例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaW9pb19qeQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

图6 查看“Hacked.exe”的自删除行为

可见cmd.exe触发调用了SetDispositionInformationFile。用于删除“Hacked.exe”与“DelSelf.cmd”。

到这里为止。我们已经分析清楚了“Hacked.exe”的文件行为,接下来分析注冊表行为。关闭文件行为button,打开注冊表监控。进行分析:

图7 注冊表项监控

ProcessMonitor已经将对应的注冊表项监控到了。在Detail列目中也给出了对应的细节信息,这里不再赘述。

至此,“Hacked.exe”已经分析完成。能够根据上述分析结果来编写专杀工具。

专杀工具的编写已在我的文章中论述过了。这里不再叙述。

以上简介了Process Monitor的用法。这款软件很多其它的功能有待于大家去发掘。

希望读者朋友可以将我的文章作为起点。不断学习,从而成为反病毒领域的专家。

文档翻译第003篇:Process Monitor帮助文档(Part 3,附Process Monitor的简单演示)的更多相关文章

  1. 文档翻译第001篇:Process Monitor帮助文档(Part 1)

    [译者注] Process Monitor是一款非常著名的系统进程监视软件.总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统中所有文件的 ...

  2. Postman----基础使用篇(没有接口文档的情况下如何着手做接口测试)

    [备注说明]内文中的图片由于页面的限制,图片显示不清晰,为了能更加的看清图片,请点击"图片",点击"右键"选择"在新标签页中打开图片",可查 ...

  3. python基础-第十一篇-11.2DOM为文档操作

    文档对象模型(DOM)是一种用于HTML和XML文档的编程接口 节点类型 12种节点类型都有NodeType属性来表明节点类型 节点关系 <div id="t"> &l ...

  4. FlexPaper实现文档在线浏览(附源码)

    园子里也有关于FlexPaper的文章,但都不怎么详细. 没有较全的参数说明.就连官方网站都没有.没法,最后只得将swf文件反编译后查看了源码才将里面的参数全部弄出来. 好了,废话不多说,开始正题. ...

  5. 如何教你在NIPS会议上批量下载历年的pdf文档(另附04~14年NIPS论文下载链接)

    如何获得NIPS会议上批量下载的链接? NIPS会议下载网址:http://papers.nips.cc/ a.点击打开上述网站,进入某一年的所有会议,例如2014年,如下图 b.然后对着当前网页点击 ...

  6. 文档翻译第002篇:Process Monitor帮助文档(Part 2)

    [筛选与高亮显示] Process Monitor提供了一些方式来配置筛选器和高亮显示.         筛选器的包含与排除 您可以在筛选器中指定事件的属性,这样就可以令Process Monitor ...

  7. 文件翻译002片:Process Monitor帮助文档(Part 2)

    [筛选亮点] Process Monitor提供了一些方式来配置筛选器和高亮显示.         筛选器的包括与排除 您能够在筛选器中指定事件的属性,这样就能够令Process Monitor仅显示 ...

  8. 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 :  -- 官方文档 : https://develope ...

  9. 如何写一篇好的技术博客or技术文档(转链接)

    如何写一篇好的技术文档http://yunli.blog.51cto.com/831344/168352 程序员怎样才能写出一篇好的博客或者技术文章?http://www.zhihu.com/ques ...

随机推荐

  1. .Net 断点调试

    设置断点,F11逐句查看,F10逐过程查看. 通过断点,可以查看程序走的过程,可以更清晰程序的流程. 通过断点,可以查看属性的值情况,判断哪里出了问题. 不过,只适用于pc端调试,浏览器访问才会触发. ...

  2. springMVC的一些配置解析

    <mvc:annotation-driven /> <!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射--> 是一种简写形式,完全可以手 ...

  3. Spring Security 4 Method security using @PreAuthorize,@PostAuthorize, @Secured, EL--转

    原文地址:http://websystique.com/spring-security/spring-security-4-method-security-using-preauthorize-pos ...

  4. MVC ValidateInput(false)页面验证失效的解决方案

    毫无疑问这是一个bug,很多用户升级到rc时都遇到了这个问题,以前很正常的提交只要带有html标签就被报"...从客户端中检测到有潜在危险的 request.form 值."即使在 ...

  5. 联想 U410 超极本启用加速硬盘方法

    安装步骤: 方法一: 使用raid1方法 (此方法未安装过) 方法二:  普通安装后,使用RST加速 1.改BIOS , 为AHCI启动    , 2.安装好系统后,下载RST软件并安装 3.改BIO ...

  6. AOP 动态添加函数

    Function.prototype.before = function(beforefn) { // 保存原函数的引用 var self = this; // 返回包含了原函数和新函数的代理函数 r ...

  7. mysql 5.7 双主+主从配置

    mysql5.7安装及赋权 wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm rpm -ivh mysql57 ...

  8. Git 远程仓库默认权限问题的解决

    多人共同开发维护一个项目时,对整个项目文件互有拉取.推送等行为.为防止操作时文件权限出现冲突,可有以下2种方法解决: 1. 本地git的远端设置中,连接远程仓库时多人使用同一个用户名,该用户名为git ...

  9. WP8 学习笔记(002_应用程序结构)

    下图是微软官方给出的WP8应用程序执行顺序: 在App.XAML.CS中,有程序主要步骤的函数 // 应用程序启动(例如,从“开始”菜单启动)时执行的代码 // 此代码在重新激活应用程序时不执行 pr ...

  10. 数据库SQL Server2012笔记(四)——多表查询、子查询、分页查询、用查询结果创建新表和外连接

    1.多表查询 1)笛卡尔集: select  *  from  表名1,表名2 select  *  from  表名1.表名2  where   表名1.字段名=表名2.字段名 注: 若有两张表有同 ...