栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c/c++游戏逆向驱动开发,游戏辅助保护盾

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c/c++游戏逆向驱动开发,游戏辅助保护盾

功能介绍:

1.降低游戏权限,提升游戏权限,禁止游戏后台截图。

2.保护进程,隐藏进程,进程内存不被读取。

如图:

 部分功能展示:

//程序降权
NTSTATUS ChangeHandleAccessState(ULONG ulProcessId, ULONG ulProtectPid)
{

    PEPROCESS EProcess = NULL, ProtectEProcess = NULL;
    ULONG_PTR Handle = 0;
    PHANDLE_TABLE_ENTRY Entry = NULL;
    //HANDLE pointed addr
    PVOID Object = NULL;
    POBJECT_TYPE ObjectType = NULL;
    PHANDLE_TABLE HandleTable = NULL;

    if (!(NT_SUCCESS(PsLookupProcessByProcessId((HANDLE)ulProcessId, &EProcess)) && NT_SUCCESS(PsLookupProcessByProcessId((HANDLE)ulProtectPid, &ProtectEProcess))))
    {
        return STATUS_UNSUCCESSFUL;
    }

    for (Handle = 0;; Handle += HANDLE_VALUE_INC)
    {
        Entry = ExpLookupHandleTableEntry(*(PHANDLE_TABLE*)((PUCHAR)EProcess + dynData.ObjTable), *(PEXHANDLE)&Handle);

        HandleTable = *(PHANDLE_TABLE*)((PUCHAR)EProcess + dynData.ObjTable);


        if (Entry == NULL)
        {
            break;
        }

        *(ULONG_PTR*)&Object = Entry->ObjectPointerBits;
        *(ULONG_PTR*)&Object <<= 4;
        if (Object == NULL)
        {
            continue;
        }

        *(ULONG_PTR*)&Object |= 0xFFFF000000000000;
        *(ULONG_PTR*)&Object += 0x30;
        ObjectType = ObGetObjectType(Object);//Object=%llx, Entry=%llx, ObjectType=%llxn======,Object, Entry, ObjectType
        //DbgPrint("Addr=%llx, Entry=%llX, Handle=%llX, QuotaProcess=%llX, HandleTable=%llXn ", Object, Entry, Handle, HandleTable->QuotaProcess, HandleTable);
        //DbgPrint("HandleEprocess=%llx,ProtectEProcess=%llxn", Object, ProtectEProcess);

        if (ObjectType == NULL)
        {
            continue;
        }



        //    //wcscpy(Buffer->szTypeName, *(PCWSTR*)((PUCHAR)ObjectType + 0x18));
        //    //Buffer->Handle = (HANDLE)Handle;
        //    //Buffer->AccessMask = Entry->GrantedAccessBits;
        //    //Buffer->Address = Object;//句柄指向的地址
        //    //Buffer++;

        if ((DWORD64)Object == (DWORD64)ProtectEProcess)
        {
            //Entry->GrantedAccessBits = NewAccessState;
            DPRINT("Found HANDLE, OriAccess:%xn", Entry->GrantedAccessBits);
            if ((Entry->GrantedAccessBits & PROCESS_TERMINATE) == PROCESS_TERMINATE)
            {
                Entry->GrantedAccessBits &= ~PROCESS_TERMINATE;
            }
            if ((Entry->GrantedAccessBits & PROCESS_VM_OPERATION) == PROCESS_VM_OPERATION)
            {
                Entry->GrantedAccessBits &= ~PROCESS_VM_OPERATION;
            }
            if ((Entry->GrantedAccessBits & PROCESS_VM_READ) == PROCESS_VM_READ)
            {
                Entry->GrantedAccessBits &= ~PROCESS_VM_READ;
            }
            if ((Entry->GrantedAccessBits & PROCESS_VM_WRITE) == PROCESS_VM_WRITE)
            {
                Entry->GrantedAccessBits &= ~PROCESS_VM_WRITE;
            }
            DPRINT("New Access:%xn", Entry->GrantedAccessBits);
        }

    }



    ObDereferenceObject(EProcess);
    ObDereferenceObject(ProtectEProcess);

    return STATUS_SUCCESS;
}

演示程序下载:

c/c++游戏逆向驱动开发,游戏辅助保护盾-桌面系统文档类资源-CSDN下载

使用效果图如下:(更多功能自行下载测试,测试觉得有用的铁铁可以联系我)

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/997451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号