首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

objet hook 是什么?该如何解决

2012-03-09 
objet hook 是什么?如果一处被HOOK还理解,SeDefaultObjectMethhod只是个函数怎么会有2个当前函数地址头次

objet hook 是什么?

如果一处被HOOK还理解,SeDefaultObjectMethhod只是个函数怎么会有2个当前函数地址
头次接触这种hook ,网络上这方面的资料比较少,前来csdn向驱动牛讨教下
求解释!

[解决办法]
POBJECT_TYPE PsProcessType;

typedef struct _OBJECT_TYPE
{
ERESOURCE Mutex;
LIST_ENTRY TypeList;
UNICODE_STRING Name;
PVOID DefaultObject;
ULONG Index;
ULONG TotalNumberOfObjects;
ULONG TotalNumberOfHandles;
ULONG HighWaterNumberOfObjects;
ULONG HighWaterNumberOfHandles;
OBJECT_TYPE_INITIALIZER TypeInfo;
ULONG Key;
EX_PUSH_LOCK ObjectLocks[32];
} OBJECT_TYPE, *POBJECT_TYPE;

typedef struct _OBJECT_TYPE_INITIALIZER
{
WORD Length;
UCHAR ObjectTypeFlags;
ULONG CaseInsensitive: 1;
ULONG UnnamedObjectsOnly: 1;
ULONG UseDefaultObject: 1;
ULONG SecurityRequired: 1;
ULONG MaintainHandleCount: 1;
ULONG MaintainTypeList: 1;
ULONG ObjectTypeCode;
ULONG InvalidAttributes;
GENERIC_MAPPING GenericMapping;
ULONG ValidAccessMask;
POOL_TYPE PoolType;
ULONG DefaultPagedPoolCharge;
ULONG DefaultNonPagedPoolCharge;
PVOID DumpProcedure;
LONG * OpenProcedure;
PVOID CloseProcedure;
PVOID DeleteProcedure;
LONG * ParseProcedure;
LONG * SecurityProcedure;
LONG * QueryNameProcedure;
UCHAR * OkayToCloseProcedure;
} OBJECT_TYPE_INITIALIZER, *POBJECT_TYPE_INITIALIZER;

OBJECT_TYPE_INITIALIZER里面有一些例程地址,提供特定于对象类型的功能,相当于java对象的方法,会在某些时候被调用
比如OBJECT_TYPE_INITIALIZER.SecurityProcedure会在NtQueryObject时被调用
你可以修改这些例程的地址,也可以直接修改这些例程的代码
OBJECT_TYPE_INITIALIZER.SecurityProcedure缺省情况下是SeDefaultObjectMethhod
[解决办法]
帮顶 thread process 这两个的差别是不是有关系? 原是函数的地址没有变 当前的有差别

热点排行