首页
社区
课程
招聘
[求助]隐藏进程驱动怎么都隐藏不全呢?请高手指点下
发表于: 2012-12-20 14:35 4942

[求助]隐藏进程驱动怎么都隐藏不全呢?请高手指点下

2012-12-20 14:35
4942
网上很多隐藏进程的代码
例如,我要隐藏记事本。。我开6个就有3个隐藏不了,代码如下

NTSTATUS  HookZwQuerySystemInformation(   
                                                                           IN  ULONG  SystemInformationClass,   
                                                                           IN  PVOID  SystemInformation,   
                                                                           IN  ULONG  SystemInformationLength,   
                                                                           OUT PULONG ReturnLength   
                                                                           )   
{   
        NTSTATUS ntStatus;
        UNICODE_STRING _ProName;

        ntStatus = (RealZwQuerySystemInformation)(
                SystemInformationClass,
                SystemInformation,
                SystemInformationLength,
                ReturnLength );

        RtlInitUnicodeString(&_ProName,L"notepad.exe");  
        if( NT_SUCCESS(ntStatus))
        {
                if(SystemInformationClass == 5)
                {
                        struct _SYSTEM_PROCESSES *curr = (struct _SYSTEM_PROCESSES *)SystemInformation;
                        struct _SYSTEM_PROCESSES *prev = NULL;

                        while(curr)
                        {
                                if (curr->ProcessName.Buffer != NULL /*&& ProName != NULL*/)
                                {
                                        //if(0 == memcmp(curr->ProcessName.Buffer,ProName, wcslen(ProName)))
                                        if(RtlCompareUnicodeString(&_ProName, &curr->ProcessName, 1) == 0)
                                        {
                                                if(prev)
                                                {
                                                        if(curr->NextEntryDelta) //要删除的信息在中间  
                                                                prev->NextEntryDelta += curr->NextEntryDelta;
                                                        else  //要删除的信息在末尾  
                                                                prev->NextEntryDelta = 0;
                                                       
                                                }
                                                else
                                                {
                                                        if(curr->NextEntryDelta)        ////要删除的信息在开头                                                                                       
                                                                (char *)SystemInformation += curr->NextEntryDelta;
                                                        else                
                                                                SystemInformation = NULL;
                                                }

                                                if(curr->NextEntryDelta)  //如果链下一个还有其他的进程信息,指针往后移  
                                                        ((char*)curr+=curr->NextEntryDelta);                    
                                                else  
                                                {  
                                                        curr = NULL;  
                                                        break;
                                                }  
                                        }
                                }
                               
                                if (curr!=NULL)
                                {
                                        prev = curr;
                                        if(curr->NextEntryDelta) ((char *)curr += curr->NextEntryDelta);
                                        else curr = NULL;
                                }
                        }
                }

        }
        return ntStatus;       
}

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 29
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
网上的开源代码都只能隐藏一个进程ID
2012-12-20 16:32
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主使用的是什么钩子?
2012-12-20 17:32
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Inline Hook的话好像有进程同步问题,这个问题我也不是特别懂,有大牛出来说说把
2012-12-20 17:33
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
是啊,但代码的写法是隐藏多个进程的
2012-12-20 19:38
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
没大牛在么?指点下
2012-12-21 09:55
0
游客
登录 | 注册 方可回帖
返回
//