说说windows内核中为什么要隐藏进程?

  

?好久没有写博客了,最近抽时间把这些杂碎零散的知识梳理下来,分享给更多朋友去找乐子,在草稿箱里面仍了好几天忘发了。
接下来谈谈本篇主题,隐藏两字。
<强>一、隐藏意味着什么?
?不想被人发现呗,人性如此,亦是如此。
<强>二,为什么要隐藏?
?其实个人觉着这是根本,好好写个程序你为什么要隐藏自己的进程,线程?为啥?无非你不想让别人知道,或者不该让别人知道.windwos下有很多未公开的东西,这是隐藏。面对对象程序设计封装性,这也是隐藏。有些病毒,其实叫恶意代码更为亲切一些,更喜欢隐藏或者依附正常的进程来达到欺骗电脑,欺骗杀毒软件,这都是隐藏。对有些不可告人的秘密。
<强>三,对于进程隐藏能欺骗杀毒软件?或者系统监控工具?
?至少目前我没有见过靠隐藏进程就可以瞒天过海,不代表没有,格局有限.....,隐藏进程后,windows系统自带的任务管理器已经看不到进程的身影,但是随便找一个柜就可以看到隐藏的进程,还可以使用procexp或者火绒剑等工具去查看,为什么隐藏了进程这些工具仍然可以找到?
<强>四、浅谈隐藏进程
?因为windows用户层,就是任务管理器是依赖于链表结构(_LIST_ENTRY)遍历操作系统下有哪些进程,其实早些时候不懂widnows下链表重要性(当时自己学数据结构都说windows下双向链表,树很重要),后来才知道,嗯其实不依赖winAPI来做自己想做的事情,真的很重要。双向链表请看以前的博客双向链表:https://blog.51cto.com/13352079/2128624
?创建进程的时候会填充结构体_EPROCESS(看雪论坛搜索一下有详细的创建过程),这样我们_EPROCESS里面就有数据与内容了,关于这个结构体不同操作系统数据有可能会不一样,windbg里面输入:dt _EPROCESS即可查看结构体内容与偏移。
?窗户内核分为,执行体,微内核,哈尔(最底层),_EPROCESS是属于执行体层,包含进程创建信息,I/O,安全,句柄表,虚拟内存等等,有意思的是里面内嵌了一个(偏移0)_KPROCESS,他属于微内核层,用来线程配额,调用还有优先级等信息。
?我们重点来说一下_EPROCESS中的ActiveProcessLink,光看名字就知道活动进程链,如下图所示。
说说windows内核中为什么要隐藏进程?”> <br/> ?这个就是隐藏进程的关键,他是一个双向循环链表,我们可以通过链表去遍历整个系统进程,对就是呢么简单,如下图所示:<br/> <img src=说说windows内核中为什么要隐藏进程?