VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 2818|回复: 6

[原创] Inline Hook KeInsertQueueApc 实现进程防杀

[复制链接]
发表于 2014-8-18 23:07:10 | 显示全部楼层 |阅读模式
驱动编译器:Vsy Project IDE(下载地址:http://pan.baidu.com/share/home?uk=4112855159#category/type=0),编译时用的是C语言。
驱动加载器编译器:Microsoft Visual Basic 6.0

Inline Hook KeInsertQueueApc 实现进程防杀.zip

50.23 KB, 下载次数: 382

本帖被以下淘专辑推荐:

发表于 2014-8-19 21:38:44 | 显示全部楼层
驱动级太底层了。。。搞不懂啊。
回复 支持 反对

使用道具 举报

发表于 2014-8-20 08:35:14 | 显示全部楼层
本帖最后由 h907308901 于 2014-8-20 08:37 编辑

楼主你弄错了。。。这个是利用KeInsertQueueApc杀进程而不是Inline Hook KeInsertQueueApc 实现进程防杀

另外这个强杀也太麻烦了,都插APC了居然还用PsTerminateSystemThread直接插KeTerminateThread的APC就可以,虽然什么东西都没清理。。。

NtTerminateThread             | -> PspTerminateThreadByPointer -> KeInsertQueueApc -> PspExitThread -> KeTerminateThread
PsTerminateSystemThread |
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-20 14:13:50 | 显示全部楼层
楼上的,KeTerminateThread在NT6系统中没有导出!所以就用导出的PsTerminateSystemThread并标志目标线程为系统线程方法。你这么做会导致线程失去调度,而没有被结束!
回复 支持 反对

使用道具 举报

发表于 2014-8-21 08:25:06 | 显示全部楼层
TangPtr 发表于 2014-8-20 14:13
楼上的,KeTerminateThread在NT6系统中没有导出!所以就用导出的PsTerminateSystemThread并标志目标线程为系 ...

我只知道在XP下导出了,其实更可靠的方法是KeInsertQueueApc PspExitThread,PspExitThread的地址可以用对应系统版本的PDB获取

另外我好像看到了你的驱动里面有用job结束进程的API声明?其实都进RING0了就没必要这样了,况且你用的是Zw开头的API,只要SSDT HOOK一下就失效了

PS:楼主真的中学生?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-21 19:50:05 | 显示全部楼层
没错,我就是中学生
PspExitThread的下一步就是KeTerminateThread(还更可靠?未导出函数要搞到地址超麻烦,PspExitThread照样没导出)
至于你所说的关联作业的API声明,那只是我以前做的驱动中删减不到位造成的,不要在意。

点评

可靠不可靠的问题还是看个人喜好吧,网上比较多的好像就是PsTerminateSystemThread PspExitThread KeTerminateThread这三种插APC,各有各的优缺点  发表于 2014-8-22 08:23
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-21 19:58:37 | 显示全部楼层
不好意思,上次忘了加进去了,这个才是

Inline Hook KeInsertQueueApc 实现进程防杀.zip

105.77 KB, 下载次数: 312

评分

参与人数 1威望 +5 人气 +3 收起 理由
h907308901 + 5 + 3 支持原创

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2020-6-5 16:43

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表