找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4102|回复: 2

运行了TP游戏导致VS没得调试是啥子原因噻?

[复制链接]

28

主题

116

回帖

0

精华

铜牌会员

积分
273
发表于 2015-7-11 01:45:07 | 显示全部楼层 |阅读模式
本帖最后由 gfw 于 2015-7-11 01:48 编辑

听说是什么调试权限问题,谁能细说一下?

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2015-7-11 12:39:55 | 显示全部楼层
就是把DbgkDebugObjectType的ValidAccessMask给弄掉了,导致不管什么程序都无法DEBUG了。
解决方法:要么1MS一次恢复,要么直接把清零的线程给冻结;要么把清零代码PATCH掉(可能需要过CRC);要么让那块内存无法写入。
摘录一段文字给你:
dq DbgkDebugObjectType
dt _OBJECT_TYPE fffffa80`24e33250

清零前:
1: kd> dt _OBJECT_TYPE_INITIALIZER fffffa80`24e33250+0x040
nt!_OBJECT_TYPE_INITIALIZER
   +0x000 Length           : 0x70
   +0x002 ObjectTypeFlags  : 0x8 ''
   +0x002 CaseInsensitive  : 0y0
   +0x002 UnnamedObjectsOnly : 0y0
   +0x002 UseDefaultObject : 0y0
   +0x002 SecurityRequired : 0y1
   +0x002 MaintainHandleCount : 0y0
   +0x002 MaintainTypeList : 0y0
   +0x002 SupportsObjectCallbacks : 0y0
   +0x004 ObjectTypeCode   : 0
   +0x008 InvalidAttributes : 0
   +0x00c GenericMapping   : _GENERIC_MAPPING
   +0x01c ValidAccessMask  : 0x1f000f
   +0x020 RetainAccess     : 0
   +0x024 PoolType         : 0 ( NonPagedPool )
   +0x028 DefaultPagedPoolCharge : 0
   +0x02c DefaultNonPagedPoolCharge : 0x58
   +0x030 DumpProcedure    : (null)
   +0x038 OpenProcedure    : (null)
   +0x040 CloseProcedure   : 0xfffff800`01f0ddb0     void  nt!DbgkpCloseObject+0
   +0x048 DeleteProcedure  : 0xfffff800`01d66fe0     void  nt!CmpConfigureProcessors+0
   +0x050 ParseProcedure   : (null)
   +0x058 SecurityProcedure : 0xfffff800`01dd25f0     long  nt!SeDefaultObjectMethod+0
   +0x060 QueryNameProcedure : (null)
   +0x068 OkayToCloseProcedure : (null)

清零后:
0: kd> dt _OBJECT_TYPE_INITIALIZER fffffa80`24e51250+0x040
nt!_OBJECT_TYPE_INITIALIZER
   +0x000 Length           : 0x70
   +0x002 ObjectTypeFlags  : 0x8 ''
   +0x002 CaseInsensitive  : 0y0
   +0x002 UnnamedObjectsOnly : 0y0
   +0x002 UseDefaultObject : 0y0
   +0x002 SecurityRequired : 0y1
   +0x002 MaintainHandleCount : 0y0
   +0x002 MaintainTypeList : 0y0
   +0x002 SupportsObjectCallbacks : 0y0
   +0x004 ObjectTypeCode   : 0
   +0x008 InvalidAttributes : 0
   +0x00c GenericMapping   : _GENERIC_MAPPING
   +0x01c ValidAccessMask  : 0
   +0x020 RetainAccess     : 0
   +0x024 PoolType         : 0 ( NonPagedPool )
   +0x028 DefaultPagedPoolCharge : 0
   +0x02c DefaultNonPagedPoolCharge : 0x58
   +0x030 DumpProcedure    : (null)
   +0x038 OpenProcedure    : (null)
   +0x040 CloseProcedure   : 0xfffff800`01eb5db0     void  nt!DbgkpCloseObject+0
   +0x048 DeleteProcedure  : 0xfffff800`01d0efe0     void  nt!CmpConfigureProcessors+0
   +0x050 ParseProcedure   : (null)
   +0x058 SecurityProcedure : 0xfffff800`01d7a5f0     long  nt!SeDefaultObjectMethod+0
   +0x060 QueryNameProcedure : (null)
   +0x068 OkayToCloseProcedure : (null)

清零代码:
fffff880`0bcdc4cc 54              push    rsp
fffff880`0bcdc4cd 33c0            xor     eax,eax
fffff880`0bcdc4cf 87434c          xchg    eax,dword ptr [rbx+4Ch]
fffff880`0bcdc4d2 33c0            xor     eax,eax
fffff880`0bcdc4d4 874350          xchg    eax,dword ptr [rbx+50h]
fffff880`0bcdc4d7 33c0            xor     eax,eax
fffff880`0bcdc4d9 87435c          xchg    eax,dword ptr [rbx+5Ch] // ValidAccessMask  
fffff880`0bcdc4dc 833d9585000000  cmp     dword ptr [fffff880`0bce4a78],0
fffff880`0bcdc4e3 0f8544feffff    jne     fffff880`0bcdc32d
fffff880`0bcdc4e9 33c9            xor     ecx,ecx
fffff880`0bcdc4eb ff15df6b0000    call    qword ptr [fffff880`0bce30d0]
fffff880`0bcdc4f1 488b4c2440      mov     rcx,qword ptr [rsp+40h]
fffff880`0bcdc4f6 4833cc          xor     rcx,rsp
fffff880`0bcdc4f9 e822570000      call    fffff880`0bce1c20
fffff880`0bcdc4fe 488b5c2468      mov     rbx,qword ptr [rsp+68h]
fffff880`0bcdc503 4883c450        add     rsp,50h
fffff880`0bcdc507 5f              pop     rdi
fffff880`0bcdc508 c3              ret

28

主题

116

回帖

0

精华

铜牌会员

积分
273
 楼主| 发表于 2015-7-20 23:41:48 | 显示全部楼层
谢谢了啊
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表