devil209
驱动牛犊
驱动牛犊
  • 注册日期2007-01-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分732分
  • 威望94点
  • 贡献值0点
  • 好评度73点
  • 原创分0分
  • 专家分0分
阅读:1088回复:2

hook ssdt怎么受driverstudio的影响呢?

楼主#
更多 发布于:2007-10-24 09:37
在我的XP系统里面我hook了zwopenprocess,BSOD发生了,但同样的代码在一些机器上运行正常。我在本机装上Compuware_DriverStudio_v3.1准备调试,结果装完后又好了,但我卸载了driverstudio以后又发生了BSOD。然后我用windbg分析dump文件,结果是:

FAULTING_IP:
ProSer!HookSystemCall+25 [d:\proser_w2k\proser.c @ 96]
f7b00651 c704815205b0f7  mov     dword ptr [ecx+eax*4],offset ProSer!NewZwOpenProcess (f7b00552)

我的源码是:

typedef struct ServiceDescriptorEntry

{
    unsigned int  *ServiceTableBase;
    unsigned int  *ServiceCounterTableBase; //Used only in checked build
    unsigned int  NumberOfServices;
    unsigned char *ParamTableBase;
} ServiceDescriptorTableEntry_t, *PServiceDescriptorTableEntry_t;

__declspec(dllimport)  ServiceDescriptorTableEntry_t KeServiceDescriptorTable;
#define SYSTEMSERVICE(_function) KeServiceDescriptorTable.ServiceTableBase[ *(PULONG)((PUCHAR)_function+1)]

VOID HookSystemCall()
{
 OldZwOpenProcess = (ZW_OPENPROCESS)(SYSTEMSERVICE(ZwOpenProcess));
 _asm cli
  (ZW_OPENPROCESS)(SYSTEMSERVICE(ZwOpenProcess)) = NewZwOpenProcess;
 _asm sti
}

我的问题是,以上代码有什么不对劲吗?但是为什么又在某些机器上运行正常?并且怎么受driverstudio的影响呢?
 

 

 



koyota
驱动牛犊
驱动牛犊
  • 注册日期2007-10-24
  • 最后登录2007-11-02
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-10-24 09:46
在论坛搜索一下吧,很多例子
devil209
驱动牛犊
驱动牛犊
  • 注册日期2007-01-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分732分
  • 威望94点
  • 贡献值0点
  • 好评度73点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-10-24 10:53
列子我也有很多,我就是想弄清楚上面的原因呀.
游客

返回顶部