首页
社区
课程
招聘
[原创]DKOM Benefits and Drawbacks
发表于: 2008-6-1 01:04 11091

[原创]DKOM Benefits and Drawbacks

2008-6-1 01:04
11091

科普了...大侠飘过....
本人还很菜..有写错的地方希望大家多指点 

        感觉这样隐藏进程比Hook ZwQuerySystemInformation 工序上简单很多,所以BSOD的几率也要小了。不过仍然逃不过IS的法眼...

        代码基本是copy Rootkits: Subverting the Windows Kernel 加了点注释。几下笔记。

       在win中,每个进程都有一个EPROCESS结构,其中引用了一个双向链表,遍历这个链表,就能列出win当前活动进程。

下面是定义

typedef struct _LIST_ENTRY {
   struct _LIST_ENTRY *Flink;
   struct _LIST_ENTRY *Blink;
} LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY;
ULONG FindProcessEPROC (ULONG terminate_PID)

{
//这个函数用来获得指定PID的 EPROCESS偏移
PLIST_ENTRY plist_active_procs;

ULONG eproc;
ULONG PIDOFFSET,current_PID,start_PID, i_count,FLINKOFFSET;

eproc   = 0x00000000;
PIDOFFSET = 0x84;   //SP2
FLINKOFFSET = 0x88;
current_PID = 0;
start_PID   = 0;
i_count = 0;


if (terminate_PID == 0)

   return terminate_PID;

// Get the address of the current EPROCESS

eproc = (ULONG) PsGetCurrentProcess();   

start_PID = *((ULONG *)(eproc+PIDOFFSET)); //PID

current_PID = start_PID;

while(1)

{

   if(terminate_PID == current_PID) // found

    return eproc;

   else if((i_count >= 1) && (start_PID == current_PID))

   {
    //当整个循环都遍历完一圈却没有找到这个PID的时候 才会出现这种情况

    return 0x00000000;

   }

   else { // Advance in the list.

    plist_active_procs = (LIST_ENTRY *) (eproc+FLINKOFFSET);   //LIST

    eproc = (ULONG) plist_active_procs->Flink;                      //the next list entry

    eproc = eproc - FLINKOFFSET;                                       //the next EPROCESS

    current_PID = *((ULONG *)(eproc+PIDOFFSET));           //THE NEXT PID

    i_count++;

    }

}

}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (16)
雪    币: 269
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
晕...题目起错了...叫Hiding process with DKOM 比较好...
2008-6-1 01:06
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
顶起,希望楼上的大虾多多出文章,
同时也祝你六一儿童节快乐
2008-6-1 07:27
0
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
引用某大侠的名言 “这年头谁还隐藏进程啊”
2008-6-1 09:07
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
5
论坛已经有N多这个源码了。
2008-6-1 09:42
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
6
2008-6-1 09:47
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼上的几篇连接是重复见HOOK API来隐藏进程,那些与LZ的还是有区别的
虽然也是大家很熟悉的内容, 可LZ加了自己的理解,并与大家分享的精神值得欣赏啊
2008-6-1 11:51
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
8
DKOM隐藏注册表比较有意思,dkom隐藏文件也很有趣~~
LZ有时间可以去研究一下~~
2008-6-1 11:58
0
雪    币: 269
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
9
感谢楼上几位的指点了!

论坛已经有N多这个源码了。


恩...我想也是....
菜菜的我只是想试着能不能尽量简单的描述一下...
sudami大侠给出的链接我都看了 好像前三个hook ZwQuerySystemInformation
第四个是 DKOM的 呵呵 谢谢了~

DKOM隐藏注册表比较有意思,dkom隐藏文件也很有趣~~
LZ有时间可以去研究一下~~


嘿嘿...隐藏进程是个入门...别的我也要继续研究咯~~~
2008-6-1 14:44
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
10
继续努力...加油...
2008-6-1 14:55
0
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
谁来发个有意思的啊

dkom不是只能隐藏内存中的么 如何隐藏文件及注册表 十分想知道
2008-6-1 16:24
0
雪    币: 71
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
鼓励一下,学习有先后嘛!
2008-6-1 17:07
0
雪    币: 564
活跃值: (42)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
13
有进步就好,,加加油
2008-6-1 17:42
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
14
嘿嘿。
哈哈
DKOM。
2008-6-1 18:28
0
雪    币: 381
活跃值: (140)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
15
有些代码还是需要改进的,大家不要直接抄啊
2008-6-1 20:10
0
雪    币: 266
活跃值: (60)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
16
呵呵,这个方法,论坛上好多重复的帖子吧。
2008-6-1 20:28
0
雪    币: 228
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
DKOM :

http://www.blackhat.com/presentations/win-usa-04/bh-win-04-butler.pdf
2008-6-7 16:35
0
游客
登录 | 注册 方可回帖
返回
//