首创!用户级权限进程防杀 C++

3 篇文章 1 订阅
2 篇文章 1 订阅

用户级权限实现简单防杀

Guest权限下实现防杀!全网首创思路!

无意中翻出小学时候写的程序,应该是全网首创的无权限防杀手段,拿出来分享下。这个程序运行不需要任何权限,应该是为数不多的能抗住PChunter强制结束的用户级程序(除了双进程)。程序只有一个主程序,主程序通常情况下杀不掉,被保护的程序只要不在运行则创建一个进程。写的比较仓促还有很多不足,分享一下思路而已,利用获取进程句柄和结束进程之间的时差“更换”自己的pid和句柄来让对方只能找到上一个进程的句柄从而无法结束,并不是真正意义上的防杀。因为没有权限,所以同等权限级的taskkill反而可以轻易将其结束(速度快)。如果驱动级防杀程序可以利用这个思路基本上就无敌了,只能利用内核hook阻止创建进程,强制删除主程序等方法将其关闭。如果同样的思路而使用用效率更高的语言来完成(如汇编语言)那么也许taskkill也拿它没办法。缺点就是因为频繁创建销毁进程因此会占用较多系统资源。

新的加强版已写好,可以避免被taskkill这类简单高效的工具杀死,友链https://blog.csdn.net/Hnnnbhnnnb/article/details/104035114

感谢聆听,有想法可在评论区留言哈~

#include "stdafx.h"
#include <string.h>
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <shellapi.h>
#include <tchar.h>  
#include <tlhelp32.h>  

#pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )


int FindProcess(char *name)  
{  
    int i=0;  
    PROCESSENTRY32 pe32;  
    pe32.dwSize = sizeof(pe32);   
    HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  
    if(hProcessSnap == INVALID_HANDLE_VALUE)  
    {  
        i+=0;  
    }  

    int bMore = ::Process32First(hProcessSnap, &pe32);  
    while(bMore)  
    {  
          
        if(stricmp(name,pe32.szExeFile)==0)  //name是进程名
        {  
            
            i+=1;  
        }  
        bMore = ::Process32Next(hProcessSnap, &pe32);  
    }  
    

	return i;

}  

int main(int argc,char* argv[])
{
	TCHAR SelfFilePath[MAX_PATH + 1]={0};
	GetModuleFileName(NULL, SelfFilePath, MAX_PATH);//这里是获取自身完整路径
	fopen(SelfFilePath,"r");//自锁,不然重命名文件的话时差肯能导致程序崩溃(找不到自己的新名字)
	ShellExecute(NULL,NULL,SelfFilePath, NULL, NULL, SW_SHOWNORMAL);//运行自己
	//这里是看一看要保护的其他进程还在不在(这里写的比较仓促,仅根据名称判断并不保险)这里可以根据需要替换成其他的功能,但是时间不宜过长应当立即让程序返回
	if(!FindProcess("cmd.exe"/*要保护的进程名*/))
	{ShellExecute(NULL,NULL,"cmd.exe"/*需要保护的进程名*/, NULL, NULL, SW_SHOWNORMAL);}
	
return 0;
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值