VC++结束进程,干掉杀毒软件或者其他令人不爽的进程
2013-08-21 17:22
369 查看
void pslist(void) { HANDLE hProcessSnap = NULL; PROCESSENTRY32 pe32= {0}; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProcessSnap == (HANDLE)-1) { printf("/nCreateToolhelp32Snapshot() failed:%d",GetLastError()); return ; } pe32.dwSize = sizeof(PROCESSENTRY32); printf("/nProcessName ProcessID"); if (Process32First(hProcessSnap, &pe32)) { char a[5]; do { itoa(pe32.th32ProcessID,a,10); printf("/n%-20s%d",pe32.szExeFile,pe32.th32ProcessID); } while (Process32Next(hProcessSnap, &pe32)); } else { printf("/nProcess32Firstt() failed:%d",GetLastError()); } CloseHandle (hProcessSnap); return; } BOOL killps(DWORD id)//杀进程函数 { HANDLE hProcess=NULL,hProcessToken=NULL; BOOL IsKilled=FALSE,bRet=FALSE; __try { if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS,&hProcessToken)) { printf("/nOpen Current Process Token failed:%d",GetLastError()); __leave; } //printf("/nOpen Current Process Token ok!"); if(!SetPrivilege(hProcessToken,SE_DEBUG_NAME,TRUE)) { __leave; } printf("/nSetPrivilege ok!"); if((hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,id))==NULL) { printf("/nOpen Process %d failed:%d",id,GetLastError()); __leave; } //printf("/nOpen Process %d ok!",id); if(!TerminateProcess(hProcess,1)) { printf("/nTerminateProcess failed:%d",GetLastError()); __leave; } IsKilled=TRUE; } __finally { if(hProcessToken!=NULL) CloseHandle(hProcessToken); if(hProcess!=NULL) CloseHandle(hProcess); } return(IsKilled); } BOOL SetPrivilege(HANDLE hToken,LPCTSTR lpszPrivilege,BOOL bEnablePrivilege)//提升权限 { TOKEN_PRIVILEGES tp; LUID luid; if(!LookupPrivilegeValue(NULL,lpszPrivilege,&luid)) { printf("/nLookupPrivilegeValue error:%d", GetLastError() ); return FALSE; } tp.PrivilegeCount = 1; tp.Privileges[0].Luid = luid; if (bEnablePrivilege) tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; else tp.Privileges[0].Attributes = 0; AdjustTokenPrivileges( hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES) NULL, (PDWORD) NULL); if (GetLastError() != ERROR_SUCCESS) { printf("AdjustTokenPrivileges failed: %u/n", GetLastError() ); return FALSE; } return TRUE; }
需要加上#include <Tlhelp32.h>
相关文章推荐
- VC++结束进程,干掉杀毒软件或者其他令人不爽的进程
- VC++结束进程,干掉杀毒软件或者其他令人不爽的进程
- VC++结束进程,干掉杀毒软件或者其他令人不爽的进程
- VC程序中如何结束系统正在运行的其他进程 以及本程序自身
- VC程序中如何结束系统正在运行的其他进程
- VC获取其他进程ListCtrl内容
- 如何用RE或者其他软件修改手机CPU的信息
- Hook或者API高手请进-跨进程获取其他程序的DBGrid内容(其它人做的程序)
- [VC]查找当前系统进程及其他常用代码
- VC++创建和结束进程
- 【VC版】如何获取其他进程中ListView控件中的内容
- 升级Win10系统后使用其杀软defender还有必要使用360安全卫士等其他杀毒软件吗?
- VC获取其他进程ListCtrl内容
- VC++结束程序进程
- VC++结束进程
- Android后台强制结束进程,Application入口或者activity回调的是哪个方法?
- ole automation vc结束Excel进程
- VC获取进程启动和结束时间
- 杀毒软件的查杀病毒的原理以及木马、病毒的免杀伎俩(论杀或者不杀 )
- vc 结束进程