gpt4 book ai didi

c++ 使用 OpenProcess() 提升 .exe 的权限

转载 作者:行者123 更新时间:2023-11-30 02:12:12 27 4
gpt4 key购买 nike

我一直在阅读 Hoglund 的一些书,我想我会在他的“简单调试器”上“开始”...

反正我一直在尝试用线

hProcess = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_OPERATION, 0, aPID);

每次我在运行的进程上使用它时,hProcess 都会返回 NULL,这是为什么 - 我使用的目标是 notepad.exe 的一个实例。

我可以毫无问题地终止进程:

hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ | PROCESS_TERMINATE, FALSE, aPID );

我想知道如何提升权限,以及为什么它不起作用。

谢谢,R。

最佳答案

MSDN中给出了一种可能:

Windows Server 2003 and Windows XP/2000: The size of the PROCESS_ALL_ACCESS flag increased on Windows Server 2008 and Windows Vista. If an application compiled for Windows Server 2008 and Windows Vista is run on Windows Server 2003 or Windows XP/2000, the PROCESS_ALL_ACCESS flag is too large and the function specifying this flag fails with ERROR_ACCESS_DENIED. To avoid this problem, specify the minimum set of access rights required for the operation. If PROCESS_ALL_ACCESS must be used, set _WIN32_WINNT to the minimum operating system targeted by your application (for example, #define _WIN32_WINNT _WIN32_WINNT_WINXP). For more information, see Using the Windows Headers.

您的目标操作系统是什么,PROCESS_ALL_ACCESS 使用的是什么值?如果它是 Vista 之前的操作系统,并且您传递的值是 0xFFFF,则这可能是问题的原因。

关于c++ 使用 OpenProcess() 提升 .exe 的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2285878/

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