gpt4 book ai didi

c# - 是否有可能劫持标准输出

转载 作者:可可西里 更新时间:2023-11-01 14:16:10 26 4
gpt4 key购买 nike

我正在尝试使用 C# 重定向已在 Windows XP 上运行的进程的标准输出。我知道如果我自己生成进程我可以做到这一点,但对于这个应用程序我更喜欢一个“监听器”我可以附加到另一个进程。

这在纯 .Net 中是否可行?如果不行,在 Win32 中是否可行?

谢谢

更新:我正在尝试监视多个进程,它们都是由“看门人”进程启动的,如果它们崩溃,这些进程将重新启动。这让我很难预先进行任何重定向。

最佳答案

使用 Detours Library 在 Win32 中相当做到这一点.您将查看对 WriteFile 的所有调用,并检查它们是否转到标准输出。您可能还想查看控制台输出函数(例如 WriteConsoleOutput),但它们很少使用,因此您可能不需要为大多数程序使用而费心。

我不记得 detours 是否直接支持使用 .NET 语言。如果没有,我想您仍然可以通过 P/Invoke 使用它,但我认为它一点也不漂亮...

编辑:周围有各种类似的(免费)图书馆。例如,Jeffrey Richter 的书 Advanced Windows 曾经包括一个应该用于此目的的工具。快速浏览一下就会发现,他目前的 Windows via C/C++ 仍然包含一个关于“DLL 注入(inject)和 API Hook ”的部分。这可能包括(和更新版本)相同的代码,这些代码应该足以完成此类工作。

关于c# - 是否有可能劫持标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1574773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com