结束进程

C++结束程序 按进程名结束 #include <stdio.h> #include <string.h> #include <windows.h> #include <Tlhelp32.h> #include <algorithm> #include <vector> void kill(int pid) { HANDLE hProcess ... 阅读详情
释放驱动HOOK了SSDT表中的NtOpenProcess,但是对参数过滤不严密,只过滤  PROCESS_TERMINATE, PROCESS_WRITE, XXXX(忘记了),,三种.然后比较的PID是放在全局变量中,可以通过发送 DeviceIoControl 改变这个值~

所以我们还是可以以其他的参数打开这个进程的(只要不含有那三个参数)~

不过大家似乎都不感兴趣这个题目,于是代码就不放了,想要可以直接给我消息.顺便要求刀客公开他的方法~~


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

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

3.OpenThread ---> TerminateThread

4.RemoteExitProcess,以 PROCESS_CREATE_THREAD|VM_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;

这样CrackMeApp进程中通过CreateFile打开的句柄就全找到了,一般有三个,我们可以把它全部都关闭,也可以只关闭最后一个(因为最后就是打开驱动的句柄,打开驱动是最后一次调用CreateFile).


这个我就得到了第二个参数,下面的参数都很简单了~

于是一调用这个 DuplicateHandle ,我们不仅关闭了远程的句柄,而且还获得了驱动的句柄,为所欲为了~~

于是我的第8个方法就是发送IO请求到CrackMeApp的驱动里,请求它修改被保护的进程PID为0,这样我们就可以用常规方法结束它了(Open+Terminate)

9.上面方法的远程句柄关闭了,我们就自然可以去卸载驱动了~于是这个就是去 ZwUnloadDriver或者停止了它的Service.这样再用常规方法结束~~

10.所有的win32子系统的进程都会有一个句柄在csrss.exe进程里面,CrackMeApp.exe自然也在,于是我们就可以把 csrss.exe 里面的句柄给 dup 过来自己使用,DUP过来的方法大致和上面相同,不过判断的进程该为csrss,类型要该为5(进程句柄的类型),然后呢对每个进程句柄做一个ZwQueryInformationProcess() 参数为 BASIC_INFORMATION=0 的查询,看看这个句柄是不是CrackMeApp的 ,如果是就直接拿来用,TerminateProcess之~

---------------以下是用借助驱动来结束的-----------

11.用驱动patch了它的保护的PID值,然后用户空间里常规方法~

12.用驱动恢复SSDT中ZwOpenProcess,这里我偷懒直接硬编码,调用那个驱动自身的恢复SSDT的函数,嘿嘿~~之后用户空间里常规方法(这个和11不算一种的)

13.直接在驱动里调用 NtOpenProcess绕过它的SSDT HOOK就可以了,不过应该注意的是需要先把 KTHREAD 结构体里的 PreviousMode 值改为KernelMode,否则有可能会失败的~
获取句柄后调用ZwTerminateProcess,这个不需要修改PreviousMode,直接用就可以~

14.和13的方法不同的是打开句柄的方法,使用了 PsLookupProcessByProcessId+ObOpenObjectByPointer的方法,然后还是调用ZwTerminateProcess~(这个也要算不同的,,因为规则上曾经说过ObXXX和NtXX算不同的API的)

15.最后一种了,首先获取CrackMeApp线程的TID,然后根据 PsLookupThreadByThreadId 获取 EThread 指针,然后向这个线程插入APC调用,在APC过程函数中,主要是执行的 ZwTerminateProcess( 0xffffffff, 0 );这个东西就是结束自己的意思(嘿嘿,,这个方法是我从IceSword里面抠出来的)~~本来想去调用Nt/ZwTerminateThread,结果那个函数没导出还得自己找,于是索性就简单点ZwTerminateProcess了.
双向晶闸管交流调压基础知识及Multisim电路仿真 本文介绍了双向晶闸管交流调压电路的工作原理及应用。该电路由双向晶闸管、RC移相电路和双向触发二极管组成,通过调节电位器改变触发角实现电压调节。当电位器阻值减小时,触发角减小,输出电压升高;阻值增大时,触发角增大,输出电压降低。Multisim仿真展示了不同电位器档位下的波形特征:0%档位时全导通,50%档位时半导通,100%档位时基本关断。该电路结构简单、调节平滑,广泛应用于调光、调速等场合,但会产生谐波干扰。 阅读详情

相关推荐

逆向CarPlay协议时,除了USB主从切换,你还需要注意这3个关键点

本文深入探讨逆向CarPlay协议时的3个关键点,包括MFi协议背景、多通道协同工作机制和协议分析工具的高级过滤技巧。特别解析了USB主从切换后的复杂交互过程,帮助安全研究员和逆向工程师更好地理解CarPlay协议的核心机制与潜在安全研究切入点。

weixin_29164497的博客 385

分析了一下360安全卫士的 HOOK(二)——架构与实现(zt)

上一篇的分析中漏掉了三个函数,现补上: NtSetSystemInformation    0×24 ProcessNotify        0×45 //这个并非Hook,只是HookPort安装的一个Notify KeUserModeCallback      0×4B 这样一共是从0到0×4B,共0×4C个过滤函数,齐了~~ 上次先列出了360所hook的系统服务,让大家对它做了

lionzl的专栏 3612

FA 新增资产API Demo

DECLARE l_trans_rec fa_api_types.trans_rec_type; l_dist_trans_rec fa_api_types.trans_rec_type; l_asset_hdr_rec fa_api_types.asset_hdr_rec_type; l_asset_desc_rec fa_a

chosen1brain的专栏 2142

结束进程和结束进程树有什么区别?

结束进程”与“结束进程树”是用来结束一个或多个进程用的。 进程树也许你是头回听说,我这里想解释一下。所谓进程树实际上就是一组进程,而这一组进程(子进程)是由一个进程(父进程)创建的。当你选择“结束进程树”的时候,会将这一组进程都全部结束掉。强烈推荐结束父进程的时候使用这个功能。这样才能保证进程释放所有资源,不出现僵进程(哇,什么是僵进程?坏了,越说越多了。大家只要知道这个概念就可以:子进程需要由父...

蜡笔小浪的博客 4424

Sen+MK趋势分析

Sen+MK趋势分析

地理研究与算法的博客 4万+

保姆级教程:在Win10/Win11上搞定AppScan 10.0.0安装与许可证激活(含常见报错解决)

本文提供AppScan 10.0.0在Win10/Win11上的详细安装与许可证激活指南,涵盖环境准备、分步安装、文件替换技巧及常见报错解决方案。通过专业的安全测试工具部署实践,帮助用户高效完成安装并避免常见陷阱,提升Web应用安全扫描效率。

weixin_30800987的博客 425

PB结束进程

结束进程---举IE为例   //创建非可视对象uf_get_exename   //声明local external function(api) Function Long CreateToolhelp32Snapshot(Long Flags,Long ProcessId) Library "kernel32.dll" Function Integer Process3

mphoebus的专栏 5192

【CTFSHOW】web入门 黑盒测试

文章目录写在前面web380web381web382web383web384web385web386web387web388web389web390web391web392web393web394web395参考资料 写在前面 一直没搞过渗透,先学学黑盒测试吧 web380 进入题目发现是一个关于灯泡的悲伤故事,点进去,看到跳转到page_1.php页面。 我们访问page.php试试: 发现报错:$id.php,可以猜想需要传名称为id的参数,来访问id.php。我们访问page.php?id=1试试

7ruth0hn的博客 1898

计算机怎样结束应用进程,结束进程,详细教您电脑怎么结束进程

电脑使用久了,难免会遇到死机的状况,主要是运行程序太多导致的。而电脑内存运行不过来,就只能这样了,一般情况下,结束一些进程即可,可是有不少的用户不知道怎么搞.下面,小编给大家讲解电脑结束进程的技巧。很多用户在使用电脑时,会遇见卡顿变慢的情况,而打开的软件关不了。因为应用程序怎么结束,就晓得,但进程不会,有的程序偏偏就是不在应用程序里,而在进程里,What the fxxk !怎么结束电脑进程?...

weixin_35924353的博客 1万+

《网络安全自学教程》- Windows安全机制:安全标识符,身份鉴别和访问控制

这篇文章详细介绍Windows和Linux如何标识用户,如何根据标识验证用户身份,如何根据用户身份做访问控制。

wangyuxiang946的博客 1万+

【具身智能】感知 × 决策 × 执行:一个智能体的认知闭环怎么搭?

构建一个真正能在现实世界中运作的具身智能体,并不是简单地拼接“视觉 + 控制器 + 动作模块”就能完成的,它必须是一个**认知闭环结构**:能感知环境、理解状态、制定策略、执行动作,并从结果中学习反馈。 本讲将深入剖析具身智能的三大核心支柱:**感知系统、决策系统、执行系统**,并解析它们如何协同构建出一个“能观察、能思考、能行动”的智能体。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3267

android强制结束进程_Android下结束进程的方法

在Android平台下,结束进程的方法还是比较多的。首先指明,此处的“结束进程”,包含了结束自身进程和结束其他进程两个方面。通过查阅SDK文档和网上的一些资料,自己找到一些结束进程的方法。在这里做一些归纳和总结,文章的部分信息有可能来自网上已有的文章和帖子,由于过了比较长时间,所以若发现本文与其他文章雷同,请谅解。一、结束一个活动Activity要主动的结束一个活动Activity,(先强调一下,...

weixin_39945679的博客 430

Python控制TEMI1000/TEMI1500测试温箱

该温箱是我司从昆山振弘检测设备有限公司采购的TEMI 1000,但是控制器用的是韩国的,关于控温箱这个项目,可参考的资料仅有一份官方的manual,里面包含一些命令格式。只要你有温箱,就应该可以向厂家索取该文档。该温箱的通讯接口只有一个RS232接口,要想实现远程控制,需要有串口转USB的线;类似于下图所以,想依靠python来与之进行通信,还是要通过python 的pyserial库,关于怎么安装pyserial,过于简单,这里不做赘述,可自行百度。

xgh1951的博客 1万+

结束电脑上的进程

结束电脑上的进程

buwangchuxinking的博客 5849

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

结束计算机进程的快捷键,结束进程快捷键是什么?Win7结束进程快捷键介绍

进程太多会让系统变卡,所以这时我们就需要结束进程,也有很多用户问结束进程快捷键是什么?下面小编就把关于Win7结束进程快捷键技巧分享给大家。结束进程快捷键:1、一般在游戏中可以直接按ESC退出。2、Alt+F4是关闭当前窗口。3、还可以用Ctrl+Alt+Del选择任务管理器来结束任务,另外在任务管理器中,结束任务的快捷键是Alt+E。(Ctrl+Shift+Esc,直接调出任务管理器)4、当然也...

weixin_42533622的博客 5915

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

linux结束进程

一、结束进程的五种方法 1、正常结束 (1)main函数调用return; (2)main函数调用exit函数 (3)main函数调用_exit函数 2、异常结束 (1)调用abort函数 (2)被信号终止(kill)

dai_wen的博客 7517

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

使用cmd结束进程的3种方法

点击电脑桌面的左下角“开始”菜单或 windows键+R键输入cmd回车; 输入tasklist回车以显示进程,如图: 重要:同一个应用打开关闭再打开,pid会变化,所以每次操作前请获得最新的tasklist,确保进程名和pid对应正确。 方法一 下面我们就是要结束想要禁止的进程,比如我要结束我的QQ,它的映像名称是QQ.exe 如下图: 输入:taskkill /f /t /im qq.exe ...

Zola的博客 1万+

vc结束进程的几种方式

1.使用ExitProcess()结束进程   进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的。当主线程的进入点函数返回时,进程也就随之结束。这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的清除。除了这种进程的正常退出方式外,有时还需要在程序中通过代码来强制结束本进程或其他进程的运行。ExitProcess()函数的原型为:   v

1万+

Android下结束进程的方法

转自:http://www.cnblogs.com/crazypebble/archive/2011/04/08/2006213.html 最近在做一个类似与任务管理器的东西,里面有个功能,可以通过这个管理器结束掉其他的进程。   在Android平台下,结束进程的方法还是比较多的。首先指明,此处的“结束进程”,包含了结束自身进程和结束其他进程两个方面。通过查阅SDK文档和网上的一些资料,自己

huxueyan521的专栏 1339

结束拒绝访问的进程 cmd下结束进程 强行结束进程

结束拒绝访问的进程 有些病毒和恶意进程我们在任务管理器里面是不能结束的,这个时候,如果又没有工具,就很麻烦了,今天看网管员世界,提到了一种方法,能够解决: 根本的思想是用system的权限来运行taskmgr.exe 用的是at命令 方法: 1、cmd 进入命令行 2、输入 time /t 获得现在的时间, 假如是15:33 3、输入 at 15:34 /interactive ta

zhengqiqiqinqin的专栏 2万+

使用cmd结束进程

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34126557的博客 3403

python 如何结束进程

该方法引发的是一个SystemExit异常(这是唯一一个不会被认为是错误的异常),当没有设置捕获这个异常将会直接退出程序执行,当然也可以捕获这个异常进行一些其他操作。这里使用的是os.popen(),该方法是用于直接执行系统命令,而在Windows下其实就是使用taskkill来kill掉进程,其基本形式是,执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法。该方法中包含一个参数status,默认为0,表示正常退出,也可以为1,表示异常退出。

hakesashou的博客 1340
上一篇: 谈谈NP和HS的通用unhook
下一篇: 利用Windows XP Service Pack 2 Checked Build打造Partial Checked Build System
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值