[原创]一个简单的windows HOOK - 隐藏进程管理器中特定的进程

一个简单的windows HOOK - 隐藏进程管理器中特定的进程 

(适用平台:windows 2000 sp4,windows XP sp2)

 

        屏蔽任务管理器中的进程名称有很多种方法,可以在ring0级做文章:

修改内核进程链表,拦截内核API等。我这里只给出win32下的实现,原

理是最普通的 windows 钩子机制。实现语言 win32 汇编 (masm32):

 

0 在DllEntry中处理资源取得和产生"工作"线程:

mov eax,_hinstance
 mov hinstance,eax

 .if _dwreason == DLL_PROCESS_ATTACH
  
  .if cutme == 0
   mov cutme,1
  .else
   invoke CreateThread,NULL,0,addr CTProcEx,0,0,/
    addr tid
  .endif
 .elseif _dwreason == DLL_PROCESS_DETACH
  .if oldLVProc == 0
   jmp quit
  .endif
  invoke SetWindowLong,hlv,GWL_WNDPROC,/
   oldLVProc
  
 .endif

1 钩住WH_CALLWNDPROC后,改变list控件默认消息处理过

程,从而监视任何list插入消息:

;*********************************************************************
NewLVProc proc uses esi edi ebx hwnd,umsg,wparam,lparam
 local retbyte:dword

 mov eax,umsg
 .if eax == LVM_INSERTITEMW
  assume esi:ptr LV_ITEM
  mov esi,lparam
  mov ebx,[esi].pszText

  invoke WideCharToMultiByte,CP_ACP,0,/
   ebx,-1,addr buf,/
   sizeof buf,NULL,NULL
  assume esi:nothing
  invoke lstrcmp,addr buf,addr stxt
  .if eax == 0

  .else
   invoke CallWindowProc,oldLVProc,/
    hwnd,umsg,wparam,lparam
   ret
  .endif
 .elseif eax == LVM_SETITEMW
  assume esi:ptr LV_ITEM
  mov esi,lparam
  mov ebx,[esi].pszText

  invoke WideCharToMultiByte,CP_ACP,0,/
   ebx,-1,addr buf,/
   sizeof buf,NULL,NULL
  assume esi:nothing
  invoke lstrcmp,addr buf,addr stxt
  .if eax == 0

  .else
   invoke CallWindowProc,oldLVProc,/
    hwnd,umsg,wparam,lparam
   
   ret
  .endif
 .else
  invoke CallWindowProc,oldLVProc,hwnd,umsg,/
   wparam,lparam
  ret
 .endif

 xor eax,eax
 ret

NewLVProc endp
;*********************************************************************
CTProcEx proc uses esi edi ebx _pm
 local ii:dword
 local lvfi:LV_FINDINFO
 
 mov lvfi.flags,LVFI_STRING
 lea eax,stxt
 mov lvfi.psz,eax
 
 invoke SendMessage,hlv,LVM_FINDITEM,-1,addr lvfi
 .if eax != 0ffffffffh
  mov ii,eax
  invoke SendMessage,hlv,LVM_DELETEITEM,ii,0
 .endif

 mov lvfi.flags,LVFI_STRING
 lea eax,stxt2
 mov lvfi.psz,eax
 
 invoke SendMessage,hlv,LVM_FINDITEM,-1,addr lvfi
 .if eax != 0ffffffffh
  mov ii,eax
  invoke SendMessage,hlv,LVM_DELETEITEM,ii,0
 .endif

 invoke SetWindowLong,hlv,GWL_WNDPROC,addr NewLVProc
 mov oldLVProc,eax
quit:
 ret

CTProcEx endp
;*********************************************************************

(注意:在windows xp sp2 可执行文件保护打开时,退出时可能会有异常)

时间: 2024-07-29 23:28:14

[原创]一个简单的windows HOOK - 隐藏进程管理器中特定的进程的相关文章

WinXP下如何删除进程管理器中的GoogleUpdate进程

  使用WinXP系统的朋友经常都会用到进程管理器,进程管理器可以帮你监控到每一个悄悄在后台运行的程序.有不少细心的WinXP用户会发现,进程管理器中总是出现GoogleUpdate.exe进程,看名字我们就知道用户一定是安装了Google相关程序,虽然可以将该进程强行终止,不过每次开机后又会出现,而且无论你怎么查找启动项,禁止Google Update Service它都一直会出现,这确实是一个棘手的问题,难道真没有解决方法了吗?为了解决这个问题我们还应当了解它的运行方式. 既然GoogleU

Win7系统巧用Windows进程管理器

  Windows进程管理器是一款功能比较强大的进程管理工具,可以进程查询.进程管理,包括结束进程.暂停进程.恢复进程.删除进程等,还可以进行端口访问查询.查看系统性能信息等. 1.进程管理 在win7系统中运行该软件,主界面将所有功能分为了进程管理.端口监听.系统信息三大部分:软件对进程的管理和允许用户对进程的操作等非常全面.对于每一个进程,用户除了可以查看其详细进程信息外,用户还可以随时结束指定进程和删除指定进程. 在对进程操作方面,该软件非常有特色:首先是"暂停进程"功能,这一功

LNMP的并发考虑、资源分配(php-fpm进程管理器的核心配置)

下面总结在最近招聘中常问的一个问题 PHPer当被问到你的程序性能如何?程序的并发可以达到多少?程序的瓶颈在哪儿?为了满足业务需求应该购买多少台服务器?负载均衡中php应用服务器需要多少台? 可能这些问题在面试中会设置一个应用的场景及一些前提条件,让面试的人去设计,并提出看法建议,能够回答得很好的人还是比较少的. 今天我们来谈谈LNMP的并发考虑和资源分配.首先弄清楚几个概念 LNMP中的N是nginx充当Web Server 内容的分发者,会在文件系统找到相应的文件,就返回给浏览器,如:ngi

金山毒霸如何使用进程管理器

  金山毒霸的进程管理器,是利用了"互联网可信认证"技术的进程管理器,能够实时标注出系统中存在的木马.病毒.恶意软件等可疑与威胁进程,同时加入了详尽的进程描述信息,帮助快速定位威胁源.管理进程. 在"安全百宝箱"主界面点击"进程管理器"按钮,在左侧的面板中显示了计算机系统中正在运行的所有进程,右侧面板对应了这些进程的相关信息,包括名称,路径等. 单击"找出风险进程",会进行快速风险进程定位,对于确实有风险的进程,可以选中它并点

Wicd一个独立于network-manager的网络连接管理器

Wicd是一个独立于network-manager的http://www.aliyun.com/zixun/aggregation/18415.html">网络连接管理器(Ubuntu的apt系统中不能共存),包括前端,使用GTK++2图形工具箱.官方网站为 http://wicd.sourceforge.net/ . 特点 图形设置 只需要需要GTK,适合很多窗口管理器构成的桌面环境 管理有线和无线网络连接,特别注重无线网络管理 独立的配置文件,每个网络都有自己的配置文件 支持常见加密方

使用Windows Server 2008服务器管理器配置角色

概览: 角色和功能之间的差别 使用服务器管理器可以做些什么 使用向导 从命令行管理角色和功能 贯穿在 Windows Server 2008 中的主题之一就是"简约".这并不意味着不必要地去除一些功能.相反,这是简化和澄清角色和工具的一种策略,以便于您只安装所需的内容,多余的一概不安装.服务器管理器 是 Windows Server 2008 中这一概念的重要组成部分. 它包含两方面的内容.首先是有关服务器角色和功能的最重要的概念,它们是 Windows Server 2008 的构建

自制进程管理器

系统中运行的进程实际上比我们在任务管理器("Ctrl+Alt+Del"对话框)中看到的要多,有些恶意的程序是无法在任务栏和任务管理器中看到的.本文介绍如何显示系统当前运行的所有进程,及如何终止运行的进程. 运行程序,点按钮"获取进程",则系统当前运行的所有进程名称以及进程对应的ID.涉及的线程数.优先级便显示在列表视图里面了.图一是程序运行效果图. 图一 运行效果图 1.基本原理 系统中有个进程链表,用来保存当前运行的所有进程的信息,程序首先调用函数CreateTo

Windows Server 2008服务器管理器应用之角色配置

在介绍服务器管理器之前,先来了解一下什么是角色.角色是指服务器要做的单一.非常有针对性的事情.比如,DNS功能就是一个单一的角色.Windows server 2008 中包括三种主要类别的角色:标识和访问管理(作为 active Directory一部分的角色).基础结构(包括文件服务器.打印服务器.DNS 等)以及应用程序(如 Web 服务 器角色和终端服务).windows server 2008 随附了大约 17 个服务器角色(例如 active Directory 证书服务.网络策略和

Windows 2008 R2服务管理器刷新失败的解决方法_win服务器

这几天在做实验,一台服务器安装了Windows 2008 R2 X64系统,当我想安装服务器角色的时候,发现无法安装,出现了"服务器刷新失败",点击它弹出对话框提示"刷新服务器管理器时出现意外错误: 异常来自 HRESULT:0x800F0818.有关详细信息,请参阅事件日志: 诊断.事件查看器.应用程序和服务日志.Microsoft.Windows.服务器管理器.操作" 然后我就查看日志,日志内容如下: 无法发现系统的状态.找到一个意外的异常:System.Run