终止进程的多种方法

来源:未知 责任编辑:责任编辑 发表时间:2014-01-06 18:17 点击:

 1.使用 FindWindow 的方法,然后想窗口发送 WM_CLOSE 的消息

       2.找到进程的线程, PostThreadMessage 发送 WM_QUIT 消息结束主线程

       3.OpenThread ---> TerminateThread

       4.RemoteExitProcess,以 PROCESS_CREATE_THREADVM_OPERATION方式打开进程,然后创建个远程线程,线程开始地址是 ExitProcess 参数0 ,程序自行了断.

       5.首先确保进程能被打开(8和9介绍),然后创建一个线程去 DebugActiveProcess 他,然后什么也不做退出线程,程序无人接管,于是挂掉~

       6.以 VM_OPERATION方式打开进程, 然后调用 NtUnmapViewOfSection 卸载掉他的ntdll.dll 这个时候程序还未崩溃,然后再随意发送个消息给它,它的程序一经调用直接就会异常,但是ntdll已经挂掉,无法用户空间异常处理,自行了断~(我认为这个方法应和往进程空间写垃圾数据属于同一方法)

       7.发送键盘 ESC 单击的消息(这个和发送窗口消息不能算同一个的).

       8.下面是重点要介绍的:-----------------------------
由于CrackMeApp打开了驱动的文件句柄,所以直接不能卸载驱动的.因此需要把这个句柄给关闭.
于是怎么去获取远程的文件句柄呢?首先想到的是 DuplicateHandle ,
BOOL DuplicateHandle(
   HANDLE hSourceProcessHandle,   // handle to source process
   HANDLE hSourceHandle,       // handle to duplicate
   HANDLE hTargetProcessHandle,   // handle to target process
   LPHANDLE lpTargetHandle,    // duplicate handle
   DWORD dwDesiredAccess,        // requested access
   BOOL bInheritHandle,       // handle inheritance option
   DWORD dwOptions             // optional actions
);

先看最后一个参数:
DUPLICATE_CLOSE_SOURCE
Closes the source handle. This occurs regardless of any error status returned.
DUPLICATE_SAME_ACCESS
Ignores the dwDesiredAccess parameter. The duplicate handle has the same access as the source handle.

也就是说当我们选择DUPLICATE_CLOSE_SOURCE时,远程的句柄就会自动关闭了

第一个参数,我们可以直接OpenProcess(PROCESS_DUP_HANDLE ,XXX)获得,
第二个参数比较难找,就是CrackMeApp进程里打开驱动的句柄,要想获得这个我们得借助个ntdll.dll中的一个 API, ZwQuerySystemInformation 这个可以获得整个系统中所有的句柄信息,我们可以全部找出来,然后判断哪些句柄是属于 CrackMeApp进程的,并且ObjectTypeNumber类型为文件类型的.关于这个的具体实现可以看我的实现代码.

typedef struct _SYSTEM_HANDLE_INFORMATION { // Information Class 16
   ULONG ProcessId;
   UCHAR ObjectTypeNumber;
   UCHAR Flags;   // 0x01 = PROTECT_FROM_CLOSE, 0x02 = INHERIT
   USHORT Handle;
   PVOID Object;
   ACCESS_MASK GrantedAccess;
} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • dos命令原来也能这样用?允许查找未知子目录指定文件
  •  windows的磁盘操作之八——格式化分区的思考
  • windows篇-第三章 安装和配置DNS服务器
  • windows篇-第二章 安装和配置Web服务器
  • windows篇-第一章 windows server 2008安装和简单配置
  •  windows server 2003断开远程之后自动注销用户
  • Windows服务器下用IIS Rewrite组件为IIS设置伪静态方法
  • Windows 2008 R2 SP1部署WSUS 3.0 SP2
  • windows 2008 rodc扩展

快速直达

操作系统导航

LinuxWindows虚拟机
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1