测试环境:vmware win10 企业版 Build 10240,windbg preview
一些反作弊模块,杀软会进行进程遍历.从而发现,杀死可疑进程.本文介绍两种隐藏进程方式.
修改UniqueProcessId
本方法参考https://www.52pojie.cn/thread-1866668-1-1.html
首先找到需要隐藏进程的eprocess 本文以notepad.exe为例
![图片[1]-通过对ActiveProcessLinks摘链来隐藏进程-C/C++编程社区论坛-技术社区-学技术网](https://s1.locimg.com/2024/12/11/370ef773824f1.png)
![图片[2]-通过对ActiveProcessLinks摘链来隐藏进程-C/C++编程社区论坛-技术社区-学技术网](https://s1.locimg.com/2024/12/11/61f0b714ddcd9.png)
在eprocess中找到UniqueProcessId字段,也就是pid,将这个值改为其他进程的ID的话就能够将该进程隐藏起来.
![图片[3]-通过对ActiveProcessLinks摘链来隐藏进程-C/C++编程社区论坛-技术社区-学技术网](https://s1.locimg.com/2024/12/11/5ddec7e10c052.png)
将notepad的pid改为f64就可以成功将该进程隐藏.
ActiveProcessLinks摘链
eprocess中有一个字段为ActiveProcessLinks,他的结构如下图所示
![图片[4]-通过对ActiveProcessLinks摘链来隐藏进程-C/C++编程社区论坛-技术社区-学技术网](https://s1.locimg.com/2024/12/12/40c4b1ee3a1b4.png)
ActiveProcessLinks结构中有:前向指针Flink(偏移0x000) 后向指针Blink(偏移0x008)
摘链具体操作:
将前一个节点的Blink改为本节点的Blink,将后一个节点的Flink改为本节点的Flink.
![图片[5]-通过对ActiveProcessLinks摘链来隐藏进程-C/C++编程社区论坛-技术社区-学技术网](https://s1.locimg.com/2024/12/11/0c327bd8739c9.png)
修改后的图示:
![图片[6]-通过对ActiveProcessLinks摘链来隐藏进程-C/C++编程社区论坛-技术社区-学技术网](https://s1.locimg.com/2024/12/12/20ef211f18589.png)
修改完毕,可以看到notepad.exe仍然在运行 但是找不到该进程.
![图片[7]-通过对ActiveProcessLinks摘链来隐藏进程-C/C++编程社区论坛-技术社区-学技术网](https://s1.locimg.com/2024/12/11/9a7a64bca6158.png)
两种方法都会在关机时造成蓝屏 需要手动恢复eprocess结构.
![图片[8]-通过对ActiveProcessLinks摘链来隐藏进程-C/C++编程社区论坛-技术社区-学技术网](https://s1.locimg.com/2024/12/11/8c864ef1847a6.png)
此项技术的驱动层面编码实现参考:https://cloud.tencent.com/developer/article/2201598




![表情[qiang]-学技术网](https://www.52xuejishu.com/wp-content/themes/zibll/img/smilies/qiang.gif)

