使用C#提升进程权限

西门喷血 2011-04-19 11:23:33

/// <summary>
/// 提升进程权限
/// </summary>
/// <param name="Privilege">所需要的权限名称,可以到MSDN查找关于Process Token & Privilege内容可以查到</param>
/// <param name="Enable">如果为True 就是打开相应权限,如果为False 则是关闭相应权限</param>
/// <param name="CurrentThread">如果为True 则仅提升当前线程权限,否则提升整个进程的权限</param>
/// <param name="Enabled">输出原来相应权限的状态(打开 | 关闭)</param>
/// <returns></returns>
[DllImport("ntdll.dll")]
public static extern int RtlAdjustPrivilege(string Privilege, bool Enable, bool CurrentThread, int Enabled);

这个API可以提权

还有
GetCurrentProcessID 得到当前进程的ID
OpenProcessToken 得到进程的令牌句柄
LookupPrivilegue 查询进程的权限
AdjustTokenPrivileges 判断令牌权限

希望来个大神帮忙 用C#提升进程权限


/// <summary>
/// 根据进程名称获取进程
/// </summary>
/// <param name="ProcessName">进程名称</param>
/// <returns></returns>
public Process GetProcessByName(string ProcessName)
{
Process[] pname = Process.GetProcesses(); //取得所有进程
foreach (Process name in pname) //遍历进程
{
if (name.ProcessName.ToLower().IndexOf(ProcessName) != -1) //如果查找到进程名称 返回
return name;
}
return null;
}

Process processName = GetProcessByName("");假设我已经获得了进程 下面如何写呢?
...全文
1415 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shendu74110 2012-11-12
  • 打赏
  • 举报
回复
提升成管理员权限,要么你修改项目下的app.manifest文件,直接以管理员身份运行,这就是1楼说的那种方法,要么自己写一个注册表文件,把这个文件加载到你的项目中去,然后用Process.Start("权限提升.reg文件的路径");//方法运行....这两种都可以
huwei001982 2011-04-19
  • 打赏
  • 举报
回复
uac 要是能自行提升, win7 的安全机制不是变成摆设了吗
gomoku 2011-04-19
  • 打赏
  • 举报
回复
如果是想不靠其他人,自行UAC提升,一定是不可以的(你可以病毒就可以)。

AdjustTokenPrivileges是用来给管理员获取某些特权(很多特权默认是关闭的),比如关机特权SE_SHUTDOWN_NAME。

特权提升和UAC提升是两码事。
Just4life 2011-04-19
  • 打赏
  • 举报
回复
有个配置文件,直接在里面加就可以提升权限了

你在这个上面找找
  • 打赏
  • 举报
回复
GetCurrentProcessID 得到当前进程的ID
OpenProcessToken 得到进程的令牌句柄,在这个方法里头要先查询到进程的LUID,要利用到第三个API函数LookupPrivilegevalue
然后用AdjustTokenPrivileges 调整令牌权限

如果进程权限一开始就是Enable的,可以直接用OpenProcess(PROCESS_ALL_ACCESS,FALSE, dwProcessID)来指定访问权限
参考http://topic.csdn.net/u/20110419/11/19eb4ddc-6f07-42ef-9de5-ce40c65f77b5.html?2294
西门喷血 2011-04-19
  • 打赏
  • 举报
回复
答非所问 哎 CSDN论坛太气人了~~
西门喷血 2011-04-19
  • 打赏
  • 举报
回复
是提升成管理员权限~~汗

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧