博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC变通实现屏蔽任务管理器
阅读量:5924 次
发布时间:2019-06-19

本文共 1538 字,大约阅读时间需要 5 分钟。

查找了网上的资料,发现无非就是几种:

1、用低级钩子,但是这种方法试下发现根本就是假的,钩子根本拦截不到Ctrl+Alt+Del的消息,只能屏蔽类似于Alt+F4,之类的按键消息。

而且第一次安装安全软件会提示用户。

2、用注册表禁用,即程序向注册表的CurrentVersion\System分支添加EnableTaskmgr的值为0的REG_Z?(是这样写的吗)的键值,但是涉及到注册表操作,只要开启了杀毒软件,防木马等安全工具,就会被提前拦截,而且在按下快捷键时会跳出任务管理器已被管理员禁用的错误提示框。

3、先写好屏蔽Ctrl+Alt+Del的动态链接库,再用程序在Winlogon中动态开辟内存空间并装载,即远程注入。这种方法是最正确的了,但是程序涉及很复杂的代码(网上找的好多都是汇编实现的),对于我这种菜鸟来说简直就是天书。

4、下面这就是我要说的变通实现的方法了。

1)新建一个MFC的程序工程,在类的声明中公有成员中加入

            CFile hookTaskmgr;

2)在需要屏蔽的地方加入如下代码:

            hookTaskmgr.Open("C:\\Windows\\system32\\taskmgr.exe",           //任务管理器的文件地址

                                             CFile::shareDenyRead|CFile::shareDenyWrite, NULL);        //不可被其他程序访问

3)在解除屏蔽的地方加入如下代码:

            hookTaskmgr.Close();

//代码写地比较简便,其实还应该加入获取系统目录等代码,在屏蔽前还要加入FindWindow和PostMessage来结束任务管理器(如已打开)。

 

程序完成了。屏蔽后试试吧,是不是什么都不弹出来了?

 

更新:由于任务管理器的位置具有不确定性,可能存在映像劫持,所以可以加入如下代码预先判断:

 

HKEY hKEY;

HKEY  hKeyRoot = HKEY_LOCAL_MACHINE;

long ret = ::RegOpenKeyEx(hKeyRoot,

"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\taskmgr.exe",

0, KEY_READ, &hKEY);

if(ret != ERROR_SUCCESS)//如果无法打开hKEY,则中止程序的执行

{

AfxMessageBox("taskmgr.exe not found");

}

 

_TCHAR getValue[255] = “”;

DWORD keyType = REG_SZ;//定义数据类型

DWORD DataLen = 80;//定义数据长度

CString strUser = _T("Debugger");//要查询的键名称

long ret1=::RegQueryValueEx(hKEY, strUser, NULL, &keyType, (LPBYTE)getValue, &DataLen);

if(ret1!=ERROR_SUCCESS)

{

AfxMessageBox("错误:无法查询有关的注册表信息");

return;

}

CString a;

a.Format("%s", getValue);

AfxMessageBox(a);

//所得到的getValue即为任务管理器地址。如果不存在,则进行获取系统目录的操作,再获取taskmgr.exe的地址,即可屏蔽了。

转载于:https://www.cnblogs.com/ZzzZzz/archive/2011/12/30/2307408.html

你可能感兴趣的文章
SQL SELECT INTO 语句
查看>>
我的友情链接
查看>>
Tomcat 系统架构与设计模式
查看>>
JAVA类的生命周期
查看>>
Linux服务器部署系列之七—OpenLDAP篇
查看>>
Python 在Ubuntu下的开发环境搭建
查看>>
沃通WoSign:关于微信公告“iOS11不再信赖WoSign证书”的说明
查看>>
CENTOS客户端加载ISCSI配置方法。
查看>>
11月全球操作系统版本份额混战:XP仅为13.57%
查看>>
10月8日“.我爱你”域名总量:耐思尼克升至十一名
查看>>
12月第3周网络安全报告:发现放马站点域名131个
查看>>
k8s集群之kubernetes-dashboard和kube-dns组件部署安装
查看>>
sed命令使用
查看>>
LAMP架构(Apache访问日志不记录静态文件、访问日志切割、静态元素过期时间)...
查看>>
设置trunk不行需要设置access才可以互通
查看>>
Zimbra 8.7.1GA更新
查看>>
how to install subversion(svn) with eclipse on windows
查看>>
linux下vi命令大全
查看>>
Node.js 应用故障排查手册 —— 利用 CPU 分析调优吞吐量
查看>>
链表笔试题汇编(二)
查看>>