挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)不懂社区·好资源不错过·各位资源站大佬欢迎来采集搬运寻找会做《单机》游戏修改器的开发作者长期合作,价格不是问题!联系QQ:1874088565
IOS签名/udid证书出售/送证书加群1040456405 ██【我要租此广告位】██.
.. .
查看: 14382|回复: 26
打印 上一主题 下一主题

[讨论交流] [源码] 过TP之创建CreateMyDbgkDebugObjectType

[复制链接]

4万

积分

622

主题

174

听众
已帮网友解决4 个问题
好评
1007
贡献
46898
海币
626
交易币
2000

最佳新人活跃会员开荒者原创大师推广达人沙发王侦察队队长宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老在线王源码大师终身成就杰出贡献机器王评分大师回帖大师CM制造者CM杀手艺术大师签到达人土豪知识库

QQ
跳转到指定楼层
楼主
发表于 2014-5-24 12:58:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


  1. <p>ULONG DbgkDebugObjectTypeAddr = 0;
  2. POBJECT_TYPE DbgkDebugObjectType = NULL, MyDbgkDebugObjectType = NULL;
  3. OBJECT_TYPE_INITIALIZER ObjectTypeInitializer;
  4. BOOLEAN bEditDbgkDebugObjectType = FALSE;</p><p>BOOLEAN CreateMyDbgkDebugObjectType()
  5. {
  6.     ULONG NtDebugActiveProcess;
  7.     UNICODE_STRING MyObjectTypeName;</p><p>    NtDebugActiveProcess = GetSSDTFunctionAddr(SysFuncIdx.NtDebugActiveProcess);
  8.     DbgkDebugObjectTypeAddr = *(PULONG)(NtDebugActiveProcess + 0x5a + 2);
  9.     KdPrint(("DbgkDebugObjectTypeAddr: 0x%8x\n", DbgkDebugObjectTypeAddr)); //8055a540
  10.     if (DbgkDebugObjectTypeAddr == 0)
  11.     {
  12.         KdPrint(("DbgkDebugObjectTypeAddr == 0!"));
  13.         return FALSE;
  14.     }
  15.     DbgkDebugObjectType = (POBJECT_TYPE)(*(PULONG)DbgkDebugObjectTypeAddr);
  16.     KdPrint(("DbgkDebugObjectType: 0x%8x\n", DbgkDebugObjectType)); //863bb040
  17.     KdPrint(("DbgkDebugObjectType->Name: %ws\n", DbgkDebugObjectType->Name.Buffer));
  18.     KdPrint(("TypeInfo.GenericMapping.GenericRead: 0x%08x\n", DbgkDebugObjectType->TypeInfo.GenericMapping.GenericRead)); //00020001
  19.     KdPrint(("TypeInfo.GenericMapping.GenericWrite: 0x%08x\n", DbgkDebugObjectType->TypeInfo.GenericMapping.GenericWrite)); //00020002
  20.     KdPrint(("TypeInfo.GenericMapping.GenericExecute: 0x%08x\n", DbgkDebugObjectType->TypeInfo.GenericMapping.GenericExecute)); //00120000
  21.     KdPrint(("TypeInfo.GenericMapping.GenericAll: 0x%08x\n", DbgkDebugObjectType->TypeInfo.GenericMapping.GenericAll)); //001f000f
  22.     KdPrint(("TypeInfo.ValIDAccessMask: 0x%08x\n", DbgkDebugObjectType->TypeInfo.ValidAccessMask)); //001f000f   
  23.     if (wcscmp(DbgkDebugObjectType->Name.Buffer, L"MyDebugObject") == 0)
  24.     {
  25.         KdPrint(("已经修改为MyDebugObject.\n"));
  26.         return FALSE;
  27.     }</p><p>    RtlCopyMemory(&ObjectTypeInitializer, &DbgkDebugObjectType->TypeInfo, sizeof(ObjectTypeInitializer));
  28.     if (DbgkDebugObjectType->TypeInfo.ValidAccessMask == 0)
  29.     {
  30.         KdPrint(("DbgkDebugObjectType->TypeInfo.ValidAccessMask被清零,开始恢复.\n"));
  31.         ObjectTypeInitializer.GenericMapping.GenericRead = 0x00020001;
  32.         ObjectTypeInitializer.GenericMapping.GenericWrite = 0x00020002;
  33.         ObjectTypeInitializer.GenericMapping.GenericExecute = 0x00120000;
  34.         ObjectTypeInitializer.GenericMapping.GenericAll = 0x001f000f;
  35.         ObjectTypeInitializer.ValidAccessMask = 0x001f000f;
  36.     }
  37.     RtlInitUnicodeString(&MyObjectTypeName, L"MyDebugObject");
  38.     return (STATUS_SUCCESS == ObCreateObjectType(&MyObjectTypeName, &ObjectTypeInitializer, (PSECURITY_DESCRIPTOR)NULL, &MyDbgkDebugObjectType));</p><p>    //0: kd> uf nt!NtDebugActiveProcess
  39.     //nt!NtDebugActiveProcess:
  40.     //80644cb2 8bff            mov     edi,edi
  41.     //80644cb4 55              push    ebp
  42.     //80644cb5 8bec            mov     ebp,esp
  43.     //...
  44.     //nt!NtDebugActiveProcess+0x51:
  45.     //80644d03 6a00            push    0
  46.     //80644d05 8d4508          lea     eax,[ebp+8]
  47.     //80644d08 50              push    eax
  48.     //80644d09 ff75fc          push    dword ptr [ebp-4]
  49.     //80644d0c ff3540a55580    push    dword ptr [nt!DbgkDebugObjectType (8055a540)]
  50.     //80644d12 6a02            push    2
  51.     //80644d14 ff750c          push    dword ptr [ebp+0Ch]
  52.     //80644d17 e8ee77f7ff      call    nt!ObReferenceObjectByHandle (805bc50a)
  53. }</p><p>VOID EditDbgkDebugObjectType()
  54. {
  55.     if (bEditDbgkDebugObjectType)
  56.         return;
  57.     if (CreateMyDbgkDebugObjectType())
  58.     {
  59.         WPOFF();
  60.         *(PULONG)DbgkDebugObjectTypeAddr = (ULONG)MyDbgkDebugObjectType;
  61.         WPON();
  62.         bEditDbgkDebugObjectType = TRUE;
  63.     }</p><p>    //lkd> dd nt!DbgkDebugObjectType
  64.     //8055a540  863bb040 00000000 00000000 00000000</p><p>    //加载tp前:
  65.     //0: kd> dd 863bb040+68
  66.     //863bb0a8  00020001 00020002 00120000 001f000f
  67.     //863bb0b8  001f000f 00000001 00000000 00000000</p><p>    //加载tp后:
  68.     //0: kd> dd 863bb040+68
  69.     //863bb0a8  00000000 00000000 00000000 00000000
  70.     //863bb0b8  00000000 00000001 00000000 00000000
  71. }</p><p>VOID UnEditDbgkDebugObjectType()
  72. {
  73.     if (!bEditDbgkDebugObjectType)
  74.         return;
  75.     WPOFF();
  76.     *(PULONG)DbgkDebugObjectTypeAddr = (ULONG)DbgkDebugObjectType;
  77.     WPON();
  78.     ObfDereferenceObject(MyDbgkDebugObjectType);
  79.     bEditDbgkDebugObjectType = FALSE;
  80. }
  81. </p><p> </p>
复制代码



//原:
lkd> dt _object_type 863bb040
nt!_OBJECT_TYPE
   +0x000 Mutex            : _ERESOURCE
   +0x038 TypeList         : _LIST_ENTRY [ 0x863bb078 - 0x863bb078 ]
   +0x040 Name             : _UNICODE_STRING "DebugObject"
   +0x048 DefaultObject    : (null)
   +0x04c Index            : 8
   +0x050 TotalNumberOfObjects : 0
   +0x054 TotalNumberOfHandles : 0
   +0x058 HighWaterNumberOfObjects : 0
   +0x05c HighWaterNumberOfHandles : 0
   +0x060 TypeInfo         : _OBJECT_TYPE_INITIALIZER
   +0x0ac Key              : 0x75626544
   +0x0b0 ObjectLocks      : [4] _ERESOURCE

//新:
lkd> dt _object_type 85adec38
nt!_OBJECT_TYPE
   +0x000 Mutex            : _ERESOURCE
   +0x038 TypeList         : _LIST_ENTRY [ 0x85adec70 - 0x85adec70 ]
   +0x040 Name             : _UNICODE_STRING "MyDebugObject"
   +0x048 DefaultObject    : (null)
   +0x04c Index            : 0x20
   +0x050 TotalNumberOfObjects : 0
   +0x054 TotalNumberOfHandles : 0
   +0x058 HighWaterNumberOfObjects : 0
   +0x05c HighWaterNumberOfHandles : 0
   +0x060 TypeInfo         : _OBJECT_TYPE_INITIALIZER
   +0x0ac Key              : 0x6544794d
   +0x0b0 ObjectLocks      : [4] _ERESOURCE

联系我时,请说是在 挂海论坛 上看到的,谢谢!



下一篇:梦幻西游一级对话框呼出程序
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:xhzlw@foxmail.com),本站将立即改正。

17

积分

11

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
6
海币
1403
交易币
0
沙发
发表于 2014-7-1 17:19:05 | 只看该作者
看看,楼主您辛苦了。。。

2

积分

1

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
10
交易币
0
板凳
发表于 2014-7-13 00:45:35 | 只看该作者
强烈支持楼主ing……

98

积分

58

主题

8

听众
已帮网友解决0 个问题
好评
0
贡献
40
海币
3476
交易币
50
地板
发表于 2014-8-4 17:17:39 | 只看该作者
帮你顶....

16

积分

7

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
9
海币
662
交易币
0
5#
发表于 2014-9-2 05:11:25 | 只看该作者
当然是要支持了!
4中级会员
342/600

342

积分

129

主题

10

听众
已帮网友解决0 个问题
好评
0
贡献
213
海币
1492
交易币
0
6#
发表于 2014-9-21 06:30:43 | 只看该作者
支持一下:lol
3正式会员
217/300

217

积分

119

主题

8

听众
已帮网友解决0 个问题
好评
0
贡献
98
海币
1773
交易币
0
7#
发表于 2014-10-9 00:08:23 | 只看该作者
这不错!终于等到了!

26

积分

14

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
12
海币
71
交易币
0
8#
发表于 2014-12-21 07:32:17 | 只看该作者
看帖要回,回帖才健康,在踩踩,楼主辛苦了!
3正式会员
136/300

136

积分

48

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
88
海币
514
交易币
0
9#
发表于 2014-12-26 00:29:57 | 只看该作者
LZ是天才,坚定完毕
8资深会员
1320/1800

1320

积分

286

主题

38

听众
已帮网友解决0 个问题
好评
11
贡献
1034
海币
3749
交易币
5
10#
发表于 2014-12-26 18:11:53 | 只看该作者
太生气了,无法HOLD啦 >_<......
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2025-4-6 02:15 , Processed in 0.093984 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

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