首页
社区
课程
招聘
[原创]游戏保护那些事儿~~OD SOD TP的那些事儿
发表于: 2013-1-27 07:04 11877

[原创]游戏保护那些事儿~~OD SOD TP的那些事儿

2013-1-27 07:04
11877

在前面AD一下:www.AntiGameProtect.com 反游戏保护技术研究

SDO年久失修~~被TP爆非法调试~

//OD SOD TP的那些事儿
//恢复SOD的NtOpenThread SSDThook,不然tp爆非法调试
//然后这里接管这个函数的过滤

NTSTATUS __stdcall NewNtOpenThread(
        OUT PHANDLE             ThreadHandle,
        IN ACCESS_MASK          AccessMask,
        IN PVOID                           ObjectAttributes,
        IN PCLIENT_ID           ClientId
        )
{
        PETHREAD EThread;
        PEPROCESS EProcess;
        NTSTATUS status;
        ZWOPENTHREAD OldZwOpenThread;
        ULONG ulPage;

        __asm{
                push eax
                mov eax,[ebp+4]
                mov ulPage,eax
                pop eax
        }
        //tp的菊花痒,非得用原始KeServiceDescriptorTable里面的函数,经过tp的钩子,才不报非法调试
        OldZwOpenThread = KeServiceDescriptorTable->ServiceTable[ZwOpenThreadIndex];


        //让OD能XXXXXX
        if (IsFromDebugProcess(RPsGetCurrentProcess()))
        {
                OldZwOpenThread = OriginalServiceDescriptorTable->ServiceTable[ZwOpenThreadIndex];
        }
        status = OldZwOpenThread(
                ThreadHandle,
                AccessMask,
                ObjectAttributes,
                ClientId
                );
        if (NT_SUCCESS(status))
        {
                //如果是自己的驱动调用,则返回哦
                if (ulPage >= ulMyDriverBase && ulPage <= ulMyDriverBase+ulMyDriverSize){
                        return status;
                }
                //好像这里的判断是多余的~
                if (KeGetCurrentIrql() != PASSIVE_LEVEL){
                        return status;
                }
                //如果退出了
                if (!bIsInitSuccess){
                        return status;
                }
                //如果没有保护
                if (!bProtectProcess){
                        return status;
                }
                //过滤掉桌面进程以及csrss进程
                if (_stricmp(PsGetProcessImageFileName(RPsGetCurrentProcess()),"explorer.exe") == 0 ||
                        RPsGetCurrentProcess() == CsrssEProcess)
                {
                        return status;
                }
                //get ethread
                status = ObReferenceObjectByHandle(
                        ThreadHandle,
                        THREAD_ALL_ACCESS,
                        *PsThreadType,
                        KernelMode,
                        (PVOID*)&EThread,
                        NULL
                        );
                if (NT_SUCCESS(status))
                {
                        ObDereferenceObject(EThread);
                        //get eprocess
                        EProcess = IoThreadToProcess(EThread);

                        if (IsFromDebugProcess(EProcess))
                        {
                                if (DebugOn)
                                        KdPrint(("open OD Thread by %s\n",PsGetProcessImageFileName(RPsGetCurrentProcess())));
                                return STATUS_ACCESS_DENIED;
                        }
                }
                status = STATUS_SUCCESS;
        }
        return status;
}


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

收藏
免费 6
支持
分享
最新回复 (11)
雪    币: 297
活跃值: (120)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
盾哥,这是要逆鳞啊
2013-1-27 09:29
0
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
3
lz  接受我的膜拜一下.... 驱动文章好多哦....注册了一个 ad 网址....挺不错的....
2013-1-27 10:32
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
网站不错~~~~~
2013-1-27 11:25
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
注册了收不到邮件啊
2013-1-27 13:57
0
雪    币: 48
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
ad上面的论坛,估计也会年久失修。不能坚持四年
2013-1-27 14:07
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
怎么都是年久失修了的?
2013-1-27 15:46
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
网站不错,可以看看
2013-2-15 20:25
0
雪    币: 155
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
网站里有很多不错的文章。
2013-2-17 08:46
0
雪    币: 579
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
希望网站能坚持的象看雪一样久。
2013-2-17 09:02
0
雪    币: 46
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
ad是什么 具体点
2013-3-18 11:58
0
雪    币: 46
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
终于找到师门了  W师傅肯收不  小红目前都是自学 卡在驱动保护这里2个月了
2013-3-18 12:15
0
游客
登录 | 注册 方可回帖
返回
//