怎样用c语言编一个程序,使其只要运行即获得管理员权限。(在win7系统下)
即用户双击等于(单击右键,然后点以管理员身份运行)这个操作!给个例子,比如说用c语言删除win7(一定要是win7)系统下c盘windows文件下的某个文件.(注:在wi...
即用户双击等于 (单击右键,然后点以管理员身份运行)这个操作!
给个例子,比如说用c语言删除win7(一定要是win7)系统下c盘windows文件下的某个文件.(注:在win7系统下,如果直接双击程序而不点以管理员身份运行,那么这个程序是不能访问c盘的)
这个可以用栈内存溢出实现啊,用栈内存溢出代码去占领已经获得管理员权限的程序,关键是怎样找到有管理员权限的内存地址(再弱弱的问一句,是不是没那个权限的程序无法访问这些内存空间呢)。百度知道的大牛们,难道都没人知道吗?如果实现不了的话,让我死个心也好啊(以前看到过一个实现的想发,不过忘记在哪了...)!!! 展开
给个例子,比如说用c语言删除win7(一定要是win7)系统下c盘windows文件下的某个文件.(注:在win7系统下,如果直接双击程序而不点以管理员身份运行,那么这个程序是不能访问c盘的)
这个可以用栈内存溢出实现啊,用栈内存溢出代码去占领已经获得管理员权限的程序,关键是怎样找到有管理员权限的内存地址(再弱弱的问一句,是不是没那个权限的程序无法访问这些内存空间呢)。百度知道的大牛们,难道都没人知道吗?如果实现不了的话,让我死个心也好啊(以前看到过一个实现的想发,不过忘记在哪了...)!!! 展开
4个回答
展开全部
新建“记事本”,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管理员权限了。
在文件夹上单击右键就会出现 “管理员取得所有权”
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中的一般程序,右键点击会有一个 以管理员身份运行 即可。。。
如果是想长期一管理员身份运行,就右键点击 - 属性 - 兼容性里 - 勾选以管理员身份运行此程序,即可。。。
展开全部
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;
}
给一个从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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
hi我,我教你
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个要问黑客们
系统漏洞可不是那么好找的
系统漏洞可不是那么好找的
追问
这不等于没说吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询