怎样用c语言编一个程序,使其只要运行即获得管理员权限。(在win7系统下)

即用户双击等于(单击右键,然后点以管理员身份运行)这个操作!给个例子,比如说用c语言删除win7(一定要是win7)系统下c盘windows文件下的某个文件.(注:在wi... 即用户双击等于 (单击右键,然后点以管理员身份运行)这个操作!
给个例子,比如说用c语言删除win7(一定要是win7)系统下c盘windows文件下的某个文件.(注:在win7系统下,如果直接双击程序而不点以管理员身份运行,那么这个程序是不能访问c盘的)
这个可以用栈内存溢出实现啊,用栈内存溢出代码去占领已经获得管理员权限的程序,关键是怎样找到有管理员权限的内存地址(再弱弱的问一句,是不是没那个权限的程序无法访问这些内存空间呢)。百度知道的大牛们,难道都没人知道吗?如果实现不了的话,让我死个心也好啊(以前看到过一个实现的想发,不过忘记在哪了...)!!!
展开
 我来答
柳飘清枫
2011-04-30 · TA获得超过484个赞
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:151万
展开全部
新建“记事本”,copy 如下内容:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
[HKEY_CLASSES_ROOT\exefile\shell\runas2]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"

然后另存为win7获取管理员权限.reg
双击导入注册表,这样就获得了WIN7管理员权限了。
在文件夹上单击右键就会出现 “管理员取得所有权”
更多追问追答
追问
怎样用程序调用这个东西呢?可不可以直接把他和exe文件绑定在一块呢?
追答
怎样用程序调用这个东西呢?右键 - 管理员取得所有权
可不可以直接把他和exe文件绑定在一块呢?这个不清楚,但是在win7中的一般程序,右键点击会有一个 以管理员身份运行 即可。。。

如果是想长期一管理员身份运行,就右键点击 - 属性 - 兼容性里 - 勾选以管理员身份运行此程序,即可。。。
回个话721
2020-06-11
知道答主
回答量:16
采纳率:0%
帮助的人:9286
展开全部
emmm,我记得microsoft三件套就有这个特性
给一个从CSDN找到的代码
#include windows.h//这里自己加上括号

VOID ManagerRun(LPCSTR exe,LPCSTR param,INT nShow=SW_SHOW)
{ //注意:会跳出提示。
SHELLEXECUTEINFO ShExecInfo;
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS ;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "runas";
ShExecInfo.lpFile = exe;
ShExecInfo.lpParameters = param;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = nShow;
ShExecInfo.hInstApp = NULL;
BOOL ret = ShellExecuteEx(&ShExecInfo);
//等不及了,不等了。
CloseHandle(ShExecInfo.hProcess);
return;
}
int main(int argc,char *argv[])
{
if(argc == 1) //初次运行,即双击EXE
{
ShowWindow(GetConsoleWindow(),SW_HIDE);
ManagerRun(argv[0],"2");
return 1;
}else if(argc == 2) //再次运行,即上面那个ManagerRun
{
/*你的程序主代码在此*/
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a002550
2011-05-11 · 超过18用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:49.3万
展开全部
hi我,我教你
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zwhfly
2011-04-29 · TA获得超过123个赞
知道答主
回答量:77
采纳率:0%
帮助的人:49.1万
展开全部
这个要问黑客们
系统漏洞可不是那么好找的
追问
这不等于没说吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式