本论坛为只读模式,仅供查阅,不能注册新用户,不能发帖/回帖,有问题可发邮件 xikug.xp (^) gmail.com
楼主: 齿轮

hprotect 游戏驱动保护? [复制链接]

Rank: 1

发表于 2012-1-21 15:35:14 |显示全部楼层
本帖最后由 xed 于 2012-1-21 15:42 编辑

关键就是你怎么去实现  !object \objecttypes 这条指令的效果。
其实你选取一个进程或者线程的EPROCESS(ETHREAD)。
然后从EPROCESS(ETHREAD)开始定位OBJECT_HEADER,XP是EPROCESS-0x18的偏移。
在OBJECT_HEADER里面就能取到_OBJECT_TYPE结构的地址。

dt _object_header 88a7eda8-18  //88a7eda8 是一个进程具体的EPROCESS。
nt!_OBJECT_HEADER
   +0x000 PointerCount     : 3
   +0x004 HandleCount      : 2
   +0x004 NextToFree       : 0x00000002
   +0x008 Type             : 0x8a328ca0 _OBJECT_TYPE   //这里就是 OBJECT_TYPE
   +0x00c NameInfoOffset   : 0 ''
   +0x00d HandleInfoOffset : 0 ''
   +0x00e QuotaInfoOffset  : 0 ''
   +0x00f Flags            : 0x20 ' '
   +0x010 ObjectCreateInfo : 0x88b12db0 _OBJECT_CREATE_INFORMATION
   +0x010 QuotaBlockCharged : 0x88b12db0
   +0x014 SecurityDescriptor : 0xe1fdecf6
   +0x018 Body             : _QUAD



lkd> dt _OBJECT_TYPE 8a328ca0      
nt!_OBJECT_TYPE
   +0x000 Mutex            : _ERESOURCE
   +0x038 TypeList         : _LIST_ENTRY []
   +0x040 Name             : _UNICODE_STRING "Process"
   +0x048 DefaultObject    : (null)
   +0x04c Index            : 5
   +0x050 TotalNumberOfObjects : 0x37
   +0x054 TotalNumberOfHandles : 0x77
   +0x058 HighWaterNumberOfObjects : 0x37
   +0x05c HighWaterNumberOfHandles : 0x86
   +0x060 TypeInfo         : _OBJECT_TYPE_INITIALIZER
   +0x0ac Key              : 0x636f7250
   +0x0b0 ObjectLocks      : [4] _ERESOURCE

Rank: 1

发表于 2012-1-25 15:37:41 |显示全部楼层
我也想知道这个知识

Rank: 1

发表于 2012-1-27 11:11:02 |显示全部楼层
本帖最后由 blue 于 2012-1-27 11:15 编辑

PsGetCurrentProcess

PsGetCurrentThread

这2个函数足矣

Rank: 1

发表于 2012-1-27 13:49:24 |显示全部楼层
大部分遊戲都有

Rank: 1

发表于 2012-11-29 13:53:45 |显示全部楼层
驱动保护都是难为小鸟的,大牛基本无视
您需要登录后才可以回帖 登录 | 立即加入

Archiver|手机版|第8个男人 - 论坛为只读模式,仅供查阅

GMT+8, 2019-7-17 13:47 , Processed in 0.028867 second(s), 6 queries .

Design by pvo.cn

© 2011 Pvo Inc.

回顶部