簡體   English   中英

Procmon的命令行版本

[英]Command line version of Procmon

我正在使用Windows 7,我想監視新的Process Create事件。 (即為每個創建的進程獲取一個條目,並提供有關它的完整詳細信息。)我在Procmon中成功完成了此操作,但我想在shell中執行此操作,並在沒有GUI的情況下獲取文本輸出。

是否有CLI命令執行此操作? 例如,我可以告訴它“請列出所有類型的事件,某某路徑是某某某某”並且它將無限期地運行,將這些過程的詳細信息寫入stdout?

您可以使用Microsoft.Diagnostics.Tracing.TraceEvent nuget包構建自己的 它是ETW(Windows事件跟蹤)事件的包裝器,它開發了我的Microsoft。

以下是一些示例C#控制台應用程序代碼,它顯示了所有進程的Start和Stop事件:

using System;
using Microsoft.Diagnostics.Tracing.Parsers;
using Microsoft.Diagnostics.Tracing.Session;

namespace ProcMon
{
    class Program
    {
        static void Main(string[] args)
        {
            if (TraceEventSession.IsElevated() != true)
            {
                Console.WriteLine("To turn on ETW events you need to be Administrator, please run from an Admin process.");
                return;
            }

            using (var session = new TraceEventSession("whatever"))
            {
                // handle console CTRL+C gracefully
                Console.CancelKeyPress += (sender, e) => session.Stop();

                // we filter on events we need
                session.EnableKernelProvider(KernelTraceEventParser.Keywords.Process);

                session.Source.Kernel.ProcessStart += data =>
                {
                    Console.WriteLine("START Id:" + data.ProcessID + " Name:" + data.ProcessName);
                };

                session.Source.Kernel.ProcessStop += data =>
                {
                    // stop has no name
                    Console.WriteLine("STOP Id:" + data.ProcessID);
                };

                // runs forever, press CTRL+C to stop
                session.Source.Process();
            }
        }
    }
}

Wtrace沒關系: https//github.com/lowleveldesign/wtrace/

我能夠使用它來查找新進程的創建並查看命令行參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM