gpt4 book ai didi

java模拟

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

我们有一个在 Windows 上以本地系统用户身份运行的 java 进程,它需要访问系统上另一个用户拥有的文件。据我了解,本地系统用户应该有权模拟该用户。为此,我们传递正在访问该文件的程序的 tid 和 pid,并从中获取用户信息( token )。然后我们在当前线程上设置 token 。像这样的事情:

DuplicateTokenEx(hToken,MAXIMUM_ALLOWED,NULL,SecurityImpersonation,TokenImpersonation,&hTokenDup);
SetThreadToken(NULL, hTokenDup);

其中hToken是通过打开线程获得的,然后通过它们的id进行处理。问题是当我尝试访问一个只能由用户访问而其他人无法读取的文件时。我收到访问被拒绝错误。所以问题是我是否应该能够通过模拟访问这个文件,如果是的话,在给定 threadid 和 pid 的情况下模拟另一个用户是否正确。我想我也会看到 Windows 7 和 Windows XP 之间的不同行为。

最佳答案

对于初学者,您应该始终测试 Windows API 调用的返回值。只有这样,您才能确定 token 确实已被复制并分配给您的进程。

模拟需要一些权限,如果您是一个简单的用户,我不确定您是否拥有这些权限。我怀疑 DuplicateTokenEx 函数失败。使用管理员权限重试(使用“运行方式...”工具),并让我们知道情况如何。

关于java模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7109878/

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