当前位置:C++技术网 > 资讯 > Ring0进程断链——windows内核开篇

Ring0进程断链——windows内核开篇

更新时间:2016-05-30 22:35:09浏览次数:1+次

C语言基础教程出来有一段时间了,我也沉浸了一段时间,现在开始将不定期的更新windows系列较为高级的文章,涉及的知识层次较高。今天第一讲是:进程隐藏——Ring0下的断链

很多人都想隐藏自己的程序,其目的就是干坏事不被发现。我记得在C语言基础教程里我也客串讲过“注入”以及“钩子”的东西,那个是Ring3层面的东西,今天来讲讲Ring0所谓的高级货。

铺垫:Windows内核维护了一条链表用以管理整个操作系统中的进程,一般Ring3的API遍历进程时就是用的这条链表,那么思路来了,如果我们把这条链表给断一下呢!我的意思是把我们的进程从进程链表中去掉是不是就达到隐藏进程的目的了?当然,这是可以的。下面看操作。

Step1:开一个进程:Character.exe,在任务管理器中可以看到这个进程。

Step2:

在WinDbg中,输入dd PsActiveProcessLinkHead,这就是我刚刚说的链表,这个链表还是双向的。

Step3:

在Windbg中输入dt _EPROCESS 894750a8-88,得到红色框框里的数据

Step4:看操作,同上

Step5:修改数据,也就是链表的简单删除

Step6:回到操作系统中,发现Character.exe不见了,隐藏进程成功。

 

这里边涉及的东西太多,不可能在一讲里讲完,以后将详细讲解这种结构体,以及原理。这讲就算开篇吧!