不需提权进程防杀!全网首创!加强版C++

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

Guest权限下进程防杀加强版!全网首创!C++
老版本请先参考我的上一篇blog(就是老版本),友链
https://blog.csdn.net/Hnnnbhnnnb/article/details/99237053

好了步入正题,既然说好的是不需要提权,那么我们就来换一种思路。原理就是利用了结束进程这个操作获取进程句柄到杀死进程之间的这个时差,没错和老版本的基本原理是一样的,但是这次的加强版可以应付一些简单快速的杀进程手段,比如taskkill。原理很简单,以前是通过换进程句柄,这次连进程名也一起换就完事了。Windows在创建进程的时候,通常情况下可执行文件名就是进程名,但是进程创建后,可执行文件是可以进行重命名操作的,利用这个原理,我们就可以实现加强版防杀,而且这个文件也无法删除,原理也是一样的,让系统找不到文件。好了别的不多说,放代码干货(C++)。

#include <stdio.h>
#include "stdlib.h"
#include "string.h"
#include <windows.h>
#include "process.h"
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//不显示控制台窗口

int main(int argc, char* argv[])
{
TCHAR szFilePath[MAX_PATH + 1]={0};
GetModuleFileName(NULL, szFilePath, MAX_PATH);//获取自身完整路径
char self[20];
itoa(getpid(),self,10);//要改成的名字
strcat(self,".exe");
rename(szFilePath,self);//重命名自身
ShellExecute(NULL, "open",self, NULL, NULL, SW_MINIMIZE);//开启重命名后的新的自身
return 0;
}

尝试编译并执行这个程序,你会发现,无论如何也无法把它结束掉。好吧,当然驱动层还是有挂可开的,如果利用特权对CreateProcess()函数进行Hook的话,不用动手杀这个程序也会自己死掉,因为无法创建新的自身,这个是真的没办法了。相比传统防杀思路,优点在于不需要提权,且Guest下Admin都无法结束(好吧ring0真的是“开挂”)。当然,缺点和老版本一样,因为频繁让系统创建和退出进程需要大量读写磁盘和内存,消耗CPU和磁盘资源较大。至于保护其他进程的方法我写在老版本了,可以参考或者将他们结合起来。
好了感谢倾听,有想法可在评论区留言哈~

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值