前言

在Windows内核下,我们可以通过获取EPROCESS结构来隐藏进程,EPROCESS是微软未公开的结构体,其本质上就是双向链表的一个节点,通过修改该双向链表即可达到隐藏进程的目的。但EPROCESS结构的链表指针在不同的操作系统上其偏移有所不同,常规的做法是用不同版本的Windows系统实际测试找到正确偏移,然后在代码中判断操作系统版本,再读相应的偏移(也就是硬编码),但本文提供了一种通用且有效的方法,能兼容Win7/Win8/Win10/Win11等操作系统,提高兼容性的同时远离硬编码的苦恼!代码详见下文!

正文

先随便找个两个系统(我用的是win7 sp1和win10 1909), 通过Windbg附加任意进程并执行

dt   _EPROCESS

查看EPROCESS结构体的组成。

win7sp1

0:005> dt _EPROCESS
ntdll!_EPROCESS
   +0x000 Pcb              : _KPROCESS
   +0x098 ProcessLock      : _EX_PUSH_LOCK
   +0x0a0 CreateTime       : _LARGE_INTEGER
   +0x0a8 ExitTime         : _LARGE_INTEGER
   +0x0b0 RundownProtect   : _EX_RUNDOWN_REF
   +

内核下断链隐藏进程(兼容多版本Windows系统,非硬编码)相关推荐

  1. 驱动开发:断链隐藏驱动程序自身

    与断链隐藏进程功能类似,关于断链进程隐藏可参考<驱动开发:DKOM 实现进程隐藏>这一篇文章,断链隐藏驱动自身则用于隐藏自身SYS驱动文件,当驱动加载后那么使用ARK工具扫描将看不到自身驱 ...

  2. (53)进程结构体EPROCESS,擦除 DebugPort 实现反调试,ActiveProcessLinks 断链实现进程隐藏

    一.进程的作用 进程最重要的作用是提供了CR3,10-10-12分页下CR3指向页目录表,2-9-9-12分页下CR3指向页目录指针表. 每个进程有一个或多个线程.本质上,没有进程切换,只有线程切换. ...

  3. 4.PEB断链隐藏模块

    0x4 PEB断链隐藏模块 1.如何找到_PEB_LDR_DATA 由_TEB找到_PEB,_PEB偏移0xC找到_PEB_LDR_DATA 2.基础知识 _LDR_DATA_TABLE_ENTRY结 ...

  4. linux代码windows能跑吗,能不能帮忙改一下下面这些代码,原来是在windows系统上运行的,要让它能在linux上终端跑。该如何处理...

    当前位置:我的异常网» C语言 » 能不能帮忙改一下下面这些代码,原来是在windows系 能不能帮忙改一下下面这些代码,原来是在windows系统上运行的,要让它能在linux上终端跑.该如何处理 ...

  5. _EPROCESS断链 —— 实现进程内核隐藏

    我们可以利用 _EPROCESS 结构体中的 ActiveProcessLinks 双向链表遍历进系统中的进程,并将特定进程从该双向链表中移除,以达到隐藏特定进程的目的. _EPROCESS _EPR ...

  6. Win10内核驱动断链式隐藏指定进程

    //直接上功能代码: //定义函数,通过进程PID操作隐藏 NTSTATUS HideProcess(ULONG pid) {//定义存放EPROCESS地址变量 ULONG64 L_pEPROCES ...

  7. c语言断链隐藏dll,利用C++ R3层断链实现模块隐藏功能

    一.模块隐藏的实现原理 普通API查找模块实现思路:其通过查询在R3中的PEB(Process Environment Block 进程环境块)与TEB(Thread Environment Bloc ...

  8. 二、C++反作弊对抗实战 (进阶篇 —— 2.作弊器中常见断链隐藏DLL方法)

    目前,比较常见的模块隐藏方法有抹去模块的PE头.断开进程的LDR_MODULE链或者Hook模块枚举函数等,这里介绍前面抹去PE头.断链的方法. 提示:以下是本篇文章正文内容,下面案例可供参考 一.设 ...

  9. Linux下木马程序隐藏进程实战

    实验环境 本实验在6.x的操作系统上完成: [root@gaosh-1 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) Rootkit概述 ...

最新文章

  1. Pycharm 建立工程,包含多个工程目录
  2. careercup-高等难度 18.9
  3. jquery eaayui 学习(三)tab
  4. Java成员变量和局部变量的区别
  5. 关于SIM800C MINI V4.0 V4版本 5v供电模块重启问题
  6. 最大字段和(动态规划,C语言)
  7. 后端学习 - Java容器
  8. Oracle入门(十四.15)之捕获Oracle服务器异常
  9. 计算机组成原理单周期mips,计算机组成原理CPU单周期数据通路(MIPS)
  10. 40岁从零开始学习软件开发,四年后我成了首席研发
  11. ACM——2的n次方
  12. C/C++[codeup 2044]神奇的口袋
  13. 【超图+CESIUM】【基础API使用示例】47、超图|CESIUM - 平行光源设置
  14. csm和uefi_传统bios引导与uefi引导之比较
  15. ArcGIS中英文切换
  16. 房地产微信营销方案微信“危”与“机”
  17. 用Java实现代码字符画效果
  18. centos7使用蓝牙_centos7 下 通过终端 连接 蓝牙设备
  19. opencv读取的图像为什么是BGR
  20. darknet转caffe

热门文章

  1. 比特率 波特率 数据传输速率 区别
  2. ##超市会员卡管理,利用我们之前的知识进行温习
  3. unix/Linux常用命令英文全称与中文解释 man ,su,ps,ls 等等
  4. word删除分页符的两种方法
  5. Python爬虫实战案例:取喜马拉雅音频数据详解
  6. 牛散NO.2:MACD西施说风情,柳下惠高位勿迷情
  7. 硬件知识——主板结构
  8. c++11 regex
  9. 4G EPS 中的 PDN Connection
  10. Python实现自动给视频打码,减少不宜画面出现...