怎样用c语言编一个程序,使其只要运行即获得管理员权限。(在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;
}
ubuntu c语言 权限不够
fp没有赋值。
把:
FILE *fp;
fopen(“./a.txt”, “w+”);
改为:
FILE *fp = fopen(“./a.txt”, “w+”);
就可以了。
Linux下面完全可以用man命令查C函数用法的(需要先知道函数名,man也会给出一组相关函数供参考)。
怎样用c语言编一个程序,使其只要运行即获得管理员权限。(win7及以上系统)
如果不使用系统级漏洞,这个是不可能操作。所谓栈内存溢出攻击是使用了系统漏洞,而且在不同电脑上效果也大相径庭,
所谓管理员权限地址是不存在的,没有这个说法,只有虚拟地址和实地址
就算你获得了管理员权限,也无法随便删除系统文件,要删除系统文件需要做很多工作,没有一个高权限驱动或服务也是没办法的
在c语言中修改文件权限,C语言高手来!
删掉jj.c
设置umask, open时指定权限:
#include unistd.h
#include sys/types.h
#include sys/stat.h
#include fcntl.h
#include stdio.h
int main(int argc,char* argv[]){
int r = open(argv[1],O_RDWR );
printf(“open %s success!r = %d\n”,argv[1],r);
char buf[1000000]={0};
int readlen = read(r,buf,sizeof(buf)-1);
umask(0);
int w = open(argv[2],O_RDWR | O_CREAT | O_TRUNC, S_IRWXO|S_IRWXG|S_IRWXU);
printf(“create %s success!,r=%d\n”,argv[2],r);
int writelen = write(w, buf,readlen);
close(r);
close(w);
}
c语言如何调用命令行并且是以管理员身份运行的命令行
如果你的命令要求以管理员身份运行,那么你自己的C语言程序也得是以管理员身份运行的,这可以通过在程序上点击 右键 -》以管理员权限运行 ,或者通过添加一个 manifest 文件的形式来提升权限。参见 jingyan.baidu.com/article/f0e83a25c2e78a22e5910137.html 中的步骤1,以外置文件的形式来提升权限。
c语言文件的权限怎么设置?
0666:
第一个 0 表示这个数是 八进制
第一个 6 表示文件拥有者有读写权限,但没有执行权限
第二个 6 表示文件拥有者同组用户有读写权限,但没有执行权限
第三个 6 表示其它用户有读写权限,但没有执行权限
6 的 二进制就是 0110
第 1 位在权限中总是为 0
第 2 位为 0 表示文件不可以被读, 为 1 表示可以被读
第 3 位为 0 表示文件不可以被写, 为 1 表示可以被写
第 4 位为 0 表示文件不可以被执行, 为 1 表示可以被执行