#endif
return FALSE;
}
if (hProc!=NULL)
CloseHandle(hProc);
return TRUE;
}
BOOL EnablePrivilege(LPTSTR PrivilegeName)
{
HANDLE hProc=NULL,hToken=NULL;
TOKEN_PRIVILEGES TP;
hProc=GetCurrentProcess(); //打开当前进程的一个伪句柄
//打开进程访问令牌,hToken表示新打开的访问令牌标识
if(!OpenProcessToken(hProc,TOKEN_ADJUST_PRIVILEGES,&hToken))
{
#ifdef DEBUGMSG
printf("OpenProcessToken() GetLastError reports %d\n",erron);
#endif
goto Close;
}
//提升权限
if(!LookupPrivilegeValue(NULL,PrivilegeName,&TP.Privileges[0].Luid))
{
#ifdef DEBUGMSG
printf("LookupPrivilegeValue() GetLastError reports %d\n",erron);
#endif
goto Close;
}
TP.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
TP.PrivilegeCount=1;
//允许权限,主要根据TP这个结构
if(!AdjustTokenPrivileges(hToken,FALSE,&TP,sizeof(TP),0,0))
{
#ifdef DEBUGMSG
printf("AdjustTokenPrivileges() GetLastError reports %d\n",erron);
#endif
goto Close;
}
Close:
if (hProc!=NULL)
CloseHandle(hProc);
if (hToken!=NULL)
CloseHandle(hToken);
return FALSE;
if (hProc!=NULL)
CloseHandle(hProc);
if (hToken!=NULL)
CloseHandle(hToken);
return TRUE;
}
BOOL RegDelVXER (void)
{
HKEY hkey;
DWORD ret=0;
//打开注册表的Run项
ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\",
0,
KEY_ALL_ACCESS,
&hkey);
if (!(ret==ERROR_SUCCESS))
{
#ifdef DEBUGMSG
printf("RegOpenKeyEx() GetLastError reports %d\n",erron);
#endif
return FALSE;
}
//删除键值windows auto update。
ret=RegDeleteValue(hkey,"windows auto update");
if (ret==ERROR_SUCCESS)
{
#ifdef DEBUGMSG
printf("Success Delete\n");
#endif
}
else
{
#ifdef DEBUGMSG
printf("RegDeleteValue() GetLastError reports %d\n",erron);
#endif
RegCloseKey(hkey);
//exit(0);
}
RegCloseKey(hkey); //关闭打开的注册表项
return TRUE;
}
void Usage (LPCTSTR Parameter)
{
LPCTSTR Path="%SystemRoot%\\system32\\";
fprintf(stderr,"============================================================================\n"
" 杀毒软件的简单实现\n"
"环境:Win2K Adv Server + Visual C++ 6.0\n"
"作者:laoxie\n"
"主页:www.vipshell.net\n"
"OICQ:77199033\n"
"邮件:dtzj@avl.com.cn\n"
"使用方法:\n"
"%s 文件名。例如:%s msblast.exe or %s *.exe \n\n"
"注意事项:\n"
"本程序只是简单介绍杀毒软件的编写方法,所以有很多不完善的地方,包括:\n"
"1,本程序是以冲击波蠕虫做的例子\n"
"2,文件遍历只搜索了%s目录下的文件\n"
"3,本程序不能查杀冲击波变种\n\n"
"本程序只是用做代码交流,如有错误,还请多多包含!\n"
"============================================================================"
,Parameter,Parameter,Parameter,Path);
}
杀毒软件的简单实现
0
相关文章