Pav*_*vel 3 c# windows uac file
如何检测可执行文件是否需要 UAC 提升?到目前为止,我想到了两个想法:可执行文件图标的图片识别以检查 UAC 盾牌图标是否在其上以及来自维基百科的信息: http: //en.wikipedia.org/wiki/User_Account_Control
通过使用 CreateProcess() 并将 dwCreationFlags 参数设置为 CREATE_SUSPENDED,可以以编程方式检测可执行文件是否需要提升。如果需要海拔,则将返回 ERROR_ELEVATION_REQUIRED。[16] 如果不需要提升,将返回成功返回代码,此时您可以在新创建的挂起进程上使用 TerminateProcess()。如果您已经在提升的进程中执行,这将不允许您检测到可执行文件需要提升。
谢谢
尝试使用kernel32.dll导出的CheckElevation函数。这是一个完全没有文档记录的函数,但这是我能够进行逆向工程的:
ULONG CheckElevation(
__in PWSTR FileName,
__inout PULONG Flags, // Have a ULONG set to 0, and pass a pointer to it
__in_opt HANDLE TokenHandle, // Use NULL
__out_opt PULONG Output1, // On output, is 2 or less.
__out_opt PULONG Output2
);
Run Code Online (Sandbox Code Playgroud)
您必须做一些实验才能找出如何正确调用该函数。到目前为止我已经能够解决的是,如果 Output1 不为 0,则需要海拔。
| 归档时间: |
|
| 查看次数: |
2822 次 |
| 最近记录: |