如何在Windows中挂钩应用程序和进程启动?
发布时间:2020-09-02 02:53:53 所属栏目:Windows 来源:互联网
导读:我正在尝试编写一个程序,它将挂钩到应用程序启动并捕获命令行.不知道从哪里开始,因为我在 Windows编程中非常环保. 非常感谢任何帮助 谢谢 你没有提到你喜欢的编程语言,所以我将使用C#作为代码片段. 您可以启动进程并捕获/写入其标准IO流. 以下代码段打开一个
|
我正在尝试编写一个程序,它将挂钩到应用程序启动并捕获命令行.不知道从哪里开始,因为我在
Windows编程中非常环保.
您可以启动进程并捕获/写入其标准IO流. 以下代码段打开一个进程并捕获其StdOut流: using (var process = Process.Start(new ProcessStartInfo(FileName = @"yourExecutablePath",UseShellExecute = false,RedirectStandardOutput = true)))
using (var stdout = process.StandardOutput)
Console.WriteLine(stdout.ReadToEnd());
编辑1 看起来你想挂钩像CreateProcess这样的Windows API. 一种方法是编写内核驱动程序并使用诸如SSTD修补之类的挂钩技术.但编写内核驱动程序IMO非常麻烦. 在某些情况下,您可以使用用户级挂钩.有一些图书馆可以帮助您,包括:EasyHook,Deviare和MS Detour. 编辑2 您也可以使用WMI作为 using System.Management;
// Run this in another thread and make sure the event watcher gets disposed before exit
var start = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"));
start.EventArrived += new EventArrivedEventHandler(delegate (object sender,EventArrivedEventArgs e) {
console.WriteLine("Name: {0},Command Line: {1}",e.NewEvent.Properties["ProcessName"].Value,e.NewEvent.Properties["Commandline"].Value);
});
start.Start() (编辑:南阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- WIN10家庭中文版远程提示要求的函数不支持 win10家庭版提示
- .net – 在Win32/COM方法上调用PInvoke时,通常有一个明显的
- winapi – Windows XP与Vista的SetThreadUILanguage?
- ssms – 使用Windows身份验证时,如何在SQL Server Manageme
- adodb – Windows脚本宿主(jscript):我如何下载二进制文件
- 使用dll和java jni4net时出现UnsatisfiedLinkError异常
- .net – 加载Azure Storage 2.0时出错 – 无法加载Microsof
- api – Windows Phone应用程序中的捐赠
- Windows Azure表存储行大小限制小于规定的1MB
- 值为NULL的列是否会影响Microsoft SQL Server的性能?
推荐文章
站长推荐
- .net – 在Windows应用程序中格式化标签内的文本
- wpf – xaml Scrollviewer – 禁用整个窗口的过度
- node-ffi模块的安装以及基于electron生成windows
- Windows Azure SDK for C
- .net – Windows Azure上的AspPDF和AspJPEG
- windows-phone-8 – Windows Phone 8.1应用程序无
- Windows Mobile 6.5手势和C#2.0应用程序
- Windows – Win7 Virtualbox在尝试启动虚拟机时出
- window下强制杀死某个进程用taskkill /pid 进程号
- windows – 以MONO Runtime为目标导致Xamarin Bu
热点阅读
