gpt4 book ai didi

c# - 启动进程并将 DLL 注入(inject)其中的 C++/CLR 应用程序仅在未以管理员身份运行时才有效

转载 作者:太空宇宙 更新时间:2023-11-04 13:37:58 24 4
gpt4 key购买 nike

所以,这很奇怪。

我有一个加载 C++/CLR DLL 的 .NET 应用程序,它依次启动一个进程(使用 CreateProcess)并向其中注入(inject)一个 DLL(使用远程线程方法)。但是,当您以管理员身份启动 .NET 应用程序和以普通用户身份调用它时,新创建的进程(这是一个游戏)具有完全不同的结构。它的纹理包含在游戏根目录中的文件中。如果我将它构建为独立程序(不使用 CLR)并运行它,那么我的流程创建代码工作正常,所以它不可能那样。

这可能是什么原因造成的?这与我开始的游戏无关,我敢肯定。游戏从中读取内容的目录仅供管理员使用,因此自然而然地,以管理员身份运行 .NET 应用程序应该可以让我访问。但我得到的恰恰相反——它只有在我没有管理员权限的情况下运行它时才有效。

最佳答案

引用我自己的另一个问题:

一些位置,如“程序文件”,在最新版本的 Windows 上受到保护。如果您的程序未以管理员身份运行并尝试访问 protected 位置,则读/写操作将静默重定向到 C:\Users\MYNAME\AppData\Local\VirtualStore\MY\FOLDER\PATH。以管理员身份运行您的程序应该在任何位置更正此问题。

看看这个位置,你会发现问题是否出自这里。

关于c# - 启动进程并将 DLL 注入(inject)其中的 C++/CLR 应用程序仅在未以管理员身份运行时才有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28877832/

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