windows下防止进程被杀掉

飞翔的黄瓜 2017-09-06 03:41:56
我现在做一个后台程序,这个程序是用来杀别的进程,有没有什么方法让我这个后台程序不被杀掉。
...全文
5516 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
幽行 2018-11-12
  • 打赏
  • 举报
回复
引用 8 楼 as14569852 的回复:
楼上的各位我又来了 问完这个问题就可以揭帖给分了
我现在用ATL COm做了一个服务程序 我想在服务程序里杀掉一些进程 比如cmd或者其他程序 现在遇到问题是我写的ATL service在vs2010调试时 是可以杀掉cmd的 而一把程序注册成服务 好像就不会运行我杀程序的这个代码system("taskkill /im cmd.exe");
网上查了可能是调试的时候有管理员权限,才能杀进程。于是我加了提升权限的代码后注册成服务还是杀不掉,所以过来请教各位 下面是我提升权限的代码

HRESULT CPayServiceModule::PreMessageLoop( int nShowCmd ) throw()
{
//让服务允许暂停和继续操作
//MessageBox(NULL,TEXT("Running!"),TEXT("lll"),MB_SERVICE_NOTIFICATION);
m_status.dwControlsAccepted = m_status.dwControlsAccepted|SERVICE_ACCEPT_PAUSE_CONTINUE;
HRESULT hr = __super::PreMessageLoop(nShowCmd);
if (hr == S_FALSE)
{
hr = S_OK;//这里有Bug,必须这样写,后面才能继续
}

//将服务状态设置为启动
SetServiceStatus(SERVICE_RUNNING);

//写入系统日志
LogEvent(L"ATLDemo Service Start Successfully~!");
//
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
bool ret;
ret=OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
if(!ret)
LogEvent(L"获取令牌句柄失败!!");
LUID Luid;
ret= LookupPrivilegeValue(NULL,SE_DEBUG_NAME ,&Luid);
if(!ret)
LogEvent(L"获取Luid失败");
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
tkp.Privileges[0].Luid=Luid;
AdjustTokenPrivileges(hToken, FALSE, &tkp,sizeof(TOKEN_PRIVILEGES),NULL, NULL);
if(GetLastError()== ERROR_SUCCESS) //修改权限成功
{
LogEvent(L"修改特权成功");
system("taskkill /im cmd.exe");
//WinExec("tskill cmd", SW_HIDE);
}
return hr;
}

window服务使用的时系统帐户,而你的cmd一般是本地帐户,两个不在同一个队列中,如果需要操作的话,应该用服务调用普通账户的权限去操作
zara 2017-09-18
  • 打赏
  • 举报
回复
没做过服务程序。这样的问题,首先确定是没有运行 taskkill 还是运行了没有实现功能;另外,给 taskkill 加上 /f 选项试试?
飞翔的黄瓜 2017-09-16
  • 打赏
  • 举报
回复
引用 6 楼 zara 的回复:
比较简单的可能是你的程序用管理员级的甚至系统级的账号运行,用户只给用户级的权限
麻烦看下8楼的问题 谢谢
飞翔的黄瓜 2017-09-16
  • 打赏
  • 举报
回复
楼上的各位我又来了 问完这个问题就可以揭帖给分了 我现在用ATL COm做了一个服务程序 我想在服务程序里杀掉一些进程 比如cmd或者其他程序 现在遇到问题是我写的ATL service在vs2010调试时 是可以杀掉cmd的 而一把程序注册成服务 好像就不会运行我杀程序的这个代码system("taskkill /im cmd.exe"); 网上查了可能是调试的时候有管理员权限,才能杀进程。于是我加了提升权限的代码后注册成服务还是杀不掉,所以过来请教各位 下面是我提升权限的代码

HRESULT CPayServiceModule::PreMessageLoop( int nShowCmd ) throw()  
{  
   //让服务允许暂停和继续操作  
	//MessageBox(NULL,TEXT("Running!"),TEXT("lll"),MB_SERVICE_NOTIFICATION);
   m_status.dwControlsAccepted = m_status.dwControlsAccepted|SERVICE_ACCEPT_PAUSE_CONTINUE;  
   HRESULT hr = __super::PreMessageLoop(nShowCmd);  
   if (hr == S_FALSE)  
   {  
       hr = S_OK;//这里有Bug,必须这样写,后面才能继续  
   }  
  
   //将服务状态设置为启动  
   SetServiceStatus(SERVICE_RUNNING);  
  
   //写入系统日志  
   LogEvent(L"ATLDemo Service Start Successfully~!");  
   //
      HANDLE hToken;  
    TOKEN_PRIVILEGES tkp;  
	bool ret;
    ret=OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
	if(!ret)
		LogEvent(L"获取令牌句柄失败!!"); 
	LUID Luid;
	ret= LookupPrivilegeValue(NULL,SE_DEBUG_NAME ,&Luid);
	if(!ret)
		LogEvent(L"获取Luid失败"); 
	tkp.PrivilegeCount = 1;
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
	tkp.Privileges[0].Luid=Luid;
    AdjustTokenPrivileges(hToken, FALSE, &tkp,sizeof(TOKEN_PRIVILEGES),NULL, NULL);  
	 if(GetLastError()== ERROR_SUCCESS)  //修改权限成功
        {  
                   LogEvent(L"修改特权成功");  
				system("taskkill /im cmd.exe");
				 //WinExec("tskill cmd", SW_HIDE);
        }  
   return hr;  
} 
飞翔的黄瓜 2017-09-14
  • 打赏
  • 举报
回复
现在想做一个windows下的服务程序,好像进程可以隐藏可是服务能不能隐藏呢 网上关于ATL做服务的资料好少 各位有没有什么资料啊
zara 2017-09-12
  • 打赏
  • 举报
回复
比较简单的可能是你的程序用管理员级的甚至系统级的账号运行,用户只给用户级的权限
wh_ 2017-09-11
  • 打赏
  • 举报
回复
引用 3 楼 as14569852 的回复:
[quote=引用 2 楼 wh_2396 的回复:] 对explorer.exe 进行api hook
hook 资源管理器么?有什么用呀[/quote] 如果你是用资源管理器关闭你的进程的话,就可以防止。 当然这种方法我也承认比较垃圾
飞翔的黄瓜 2017-09-11
  • 打赏
  • 举报
回复
引用 2 楼 wh_2396 的回复:
对explorer.exe 进行api hook
hook 资源管理器么?有什么用呀
飞翔的黄瓜 2017-09-11
  • 打赏
  • 举报
回复
引用 4 楼 wh_2396 的回复:
[quote=引用 3 楼 as14569852 的回复:] [quote=引用 2 楼 wh_2396 的回复:] 对explorer.exe 进行api hook
hook 资源管理器么?有什么用呀[/quote] 如果你是用资源管理器关闭你的进程的话,就可以防止。 当然这种方法我也承认比较垃圾[/quote] 是这样 我在做一个加密软件 运行的时候会把资源管理器杀掉的 但是现在用命令行还是可以关掉我这个加密软件,就想问问有什么办法能防止不被杀
wh_ 2017-09-08
  • 打赏
  • 举报
回复
对explorer.exe 进行api hook

6,868

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧