如何提高当前进程的权限
来源:互联网 发布:mac版java在什么地方 编辑:程序博客网 时间:2024/04/28 02:10
限肯定是做不到的。
BOOL EnablePrivilege(LPCTSTR lpszPrivilegeName,BOOL bEnable)
{
HANDLE hToken;
TOKEN_PRIVILEGES tp;
LUID luid;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES |
TOKEN_QUERY | TOKEN_READ,&hToken))
return FALSE;
if(!LookupPrivilegeValue(NULL, lpszPrivilegeName, &luid))
return TRUE;
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = (bEnable) ? SE_PRIVILEGE_ENABLED : 0;
AdjustTokenPrivileges(hToken,FALSE,&tp,NULL,NULL,NULL);
CloseHandle(hToken);
return (GetLastError() == ERROR_SUCCESS);
}
EnablePrivilege就可以使调用进程提高或取消某个权限, lpszPrivilegeName是要操作的权限,可以传入的值有(winnt.h定义):
#define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege")
#define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege")
#define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege")
#define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege")
#define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege")
#define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege")
#define SE_TCB_NAME TEXT("SeTcbPrivilege")
#define SE_SECURITY_NAME TEXT("SeSecurityPrivilege")
#define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege")
#define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege")
#define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege")
#define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege")
#define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege")
#define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege")
#define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege")
#define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege")
#define SE_BACKUP_NAME TEXT("SeBackupPrivilege")
#define SE_RESTORE_NAME TEXT("SeRestorePrivilege")
#define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege")
#define SE_DEBUG_NAME TEXT("SeDebugPrivilege")
#define SE_AUDIT_NAME TEXT("SeAuditPrivilege")
#define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege")
#define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege")
#define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege")
#define SE_UNDOCK_NAME TEXT("SeUndockPrivilege")
#define SE_SYNC_AGENT_NAME TEXT("SeSyncAgentPrivilege")
#define SE_ENABLE_DELEGATION_NAME TEXT("SeEnableDelegationPrivilege")
#define SE_MANAGE_VOLUME_NAME TEXT("SeManageVolumePrivilege")
参数bEnable=TRUE表示要提高第一个参数指定的权限。
- 如何提高当前进程的权限
- 如何提高当前进程的权限
- 提高自己进程的权限
- 提高进程的使用权限代码
- VC如何判断当前进程处在Administrator权限下
- VC如何判断当前进程处在Administrator权限下
- VC如何判断当前进程处在Administrator权限下
- 如何提升进程的权限
- 如何提升进程的权限
- Delphi 提高进程自身权限
- 如何查询当前进程的TOKEN
- 如何计算当前进程的CPU占用率
- 如何得到当前进程的句柄
- 如何获取当前进程的执行用户名?
- Linux如何查看当前进程的ID
- Linux如何知道当前进程的ID
- Linux如何查看当前进程的ID
- windows 上启用当前进程的用户调试权限
- C++最简单的四舍五入!!(setprecision(n)方法)
- 第八周作业任务三
- C/C++ 常见误区
- Log4j 的使用以及简单介绍
- WTL中CListViewCtrl的使用
- 如何提高当前进程的权限
- sql 建库、建表
- 组合查询总结
- 借Gearman简要说明系统可用性问题
- PHP过滤XSS攻击的函数
- 同一台机器部署多个Tomcat
- 在线flash文本的抓取方法
- 零高度 iframe对页面布局的影响
- powerdesigner,建立好模型后,怎么导出sql脚本。