-
-
[分享]任务管理器中右键菜单,“UAC虚拟化”菜单的实现
-
发表于:
2024-11-3 06:52
7664
-
[分享]任务管理器中右键菜单,“UAC虚拟化”菜单的实现
抽空分析了任务管理器的“结束进程树”功能,并实现了后(以前不做这个功能,以为是有什么相关的专用 API,后来分析了任务管理器才发现没有,它考虑得很全面,感觉是系统中出现多个相同PID的进程也考虑了,个人感觉不会出现这个情况,先按任务管理器的方法来写吧, 还有,个人感觉WIN 7 任务管理器,当时按理是按兼容XP等旧系统来写的,部份进程访问权限方面,在 WIN 10 上不适用了)。
后来又无聊,看看进程方面有什么功能,任务管理器中有的,我未做过的,后来发现,有一个“UAC虚拟化”菜单。

所以把整个系统所有进程都点了右键菜单来测试,看看有什么进程可以让这个禁用状态的右键菜单可用,结果发现,没有一个进程是能让这个菜单激活的,就是说,这个菜单一直是禁用状态。
后来分析了一下 Win 7 任务管理器相关实现,结果发现,当前进程,UAC虚拟化为“已禁用”时,才激活这个菜单。
type // 虚拟化枚举值
{$Z4}
TVIRTUALIZATION = (
VIRTUALIZATION_UNKNOWN = 0, // 未知
VIRTUALIZATION_NOTALLOWED = 1, // 不允许
VIRTUALIZATION_DISABLED = 2, // 已禁用
VIRTUALIZATION_ENABLED = 3, // 已启用
VIRTUALIZATION_COUNT
);
{$Z1}
//相关功能实现:调用 EnabledProcessVirtualization(进程ID,VIRTUALIZATION_DISABLED);
function EnabledProcessVirtualization(const dwPID : DWORD; const Virt : TVIRTUALIZATION): DWORD;
var
hProcess, hToken : Windows.THandle;
dwVirtualization : DWORD;
begin
hProcess:=MyOpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, dwPID, False);
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
最后于 2025-2-8 11:30
被kagayaki编辑
,原因: