首页
社区
课程
招聘
[求助]给植物大战僵尸加个NtOpenProcess的保护,找不到进程,帮我看看啊 大牛
发表于: 2012-6-7 08:53 4882

[求助]给植物大战僵尸加个NtOpenProcess的保护,找不到进程,帮我看看啊 大牛

2012-6-7 08:53
4882
//新的NtOpenProcess
NTSTATUS __stdcall MyNtOpenProcess(OUT PHANDLE ProcessHandle,
                                                                 IN ACCESS_MASK AccessMask,
                                                                 IN POBJECT_ATTRIBUTES ObjectAttributes,
                                                                 IN PCLIENT_ID ClientId)
{
        NTSTATUS status;
        ULONG notepadId;
        CHAR *TerminateName = "PlantsVsZombies.exe"; //如果是notepad.exe就可以保护起来 ,植物大战僵尸的进程就不行,这是为什么?
        int isEqul;
        //首先调用原始函数获取信息做比对
        status = (NTSTATUS)(NTOPENPROCESS)RealNtOpenProcess(ProcessHandle,AccessMask,ObjectAttributes,ClientId);
        if(ClientId != NULL)
        {
                isEqul = strcmp(GetCurrentProcessName(ClientId),TerminateName);
               
                if(isEqul == 0)
                {
                        //正在试图NtOpenProcess notepad.exe ,让进程句柄为null 防止对其操作
                        DbgPrint("find game!");
                        ProcessHandle = NULL;
                        status= STATUS_ACCESS_DENIED;
                }
        }
        return status;
}

//获取NtOpenProcess当前打开的进程的名称
CHAR *GetCurrentProcessName(PCLIENT_ID ClientId)
{
        NTSTATUS status;
        PEPROCESS   process;
        status = PsLookupProcessByProcessId(ClientId->UniqueProcess,&process);
        return PsGetProcessImageFileName(process);

}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
太长了PlantsVsZombies.exe
2012-6-7 09:09
0
雪    币: 2284
活跃值: (2170)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
3
ImageFileName只有16字节长度。   用strnicmp就可以了。
2012-6-7 10:55
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
strstr不是更简单?
2012-6-7 11:48
0
雪    币: 94
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
的确是这个问题,已经好了,谢谢你们啊
2012-6-7 12:06
0
游客
登录 | 注册 方可回帖
返回
//