首页
社区
课程
招聘
如何卸载游戏的WH_debug钩子
发表于: 2010-11-24 18:11 6756

如何卸载游戏的WH_debug钩子

2010-11-24 18:11
6756
dll注入游戏后,只卸载游戏的WH_debug钩子怎么写代码啊,新手用来学习,卸载太多钩子看不懂,希望只卸载一个的,我看那个工具 xuter一下子就卸载了,十分疑惑

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 677
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
http://hi.baidu.com/webxeyes/blog/item/d0d1773e33e79b3171cf6ca4.html
2010-11-24 19:20
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
回楼上的,那贴子我收藏过了,我是新手看不懂 好像他是把进程所有钩子都卸载的了,我想单独去掉WH_debug应该怎么改,或者其他的一个钩子也行,有没有这种例子呢
,全部钩子的对于没接触过的我这样的新手有点难哈,先谢了
2010-11-25 00:40
0
雪    币: 677
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
那篇文章里 在void showInfo(PVOID pWin32Thread) 函数里面那个pClientBuf->PID就是钩子所在的进程的PID ,用来判断是否是你关心的进程。main函数的循环中用
pHookInfo->iHookType==WH_DEBUG来判断是否是你要卸载的钩子类型
如果两个条件都符合 就用UnhookWindowsHookEx((HHOOK)pHookInfo->hHandle);卸载钩子
2010-11-25 10:14
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
那篇文章实在没看懂  ZwSystemDebugControl这个函数作用是什么都不知道?

不过要是只卸载 WH_DEBUG 的话可能还是可行的 加个判断吧
PHOOK_INFO::iHookType  这个注释是钩子类型做个判断就OK了
代码如下:
  if(pHookInfo->iHookType==WH_DEBUG)  //添加这个判断就OK乐 希望能解决
        printf("%d",UnhookWindowsHookEx((HHOOK)pHookInfo->hHandle));//卸载消息钩子
2010-11-25 11:35
0
雪    币: 677
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
那个方法好像是先找到user32中UserRegisterWowHandlers函数地址 这个函数的返回值是gSharedInfo的地址
它是一个全局变量,是一个结构体。这个结构体代码中有定义。该结构体中有一个指向内核中的句柄表的指针struct _HANDLEENTRY   *aheList ,而句柄表中有所有消息钩子的句柄 。用ZwSystemDebugControl读内核空间取得其内容 取出其中的消息钩子句柄     用UnhookWIndowsHookEx卸载消息钩子
代码中是用特征码方式找到gSharedInfo的地址的值的 因为UserRegisterWowHandlers最后几条指令是
mov     eax, 77D710A0//&gSharedInfo
pop     ebp
  retn    8
定位到该处,可以直接取得gSharedInfo的地址。
2010-11-25 17:53
0
雪    币: 255
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这个不懂·······帮顶···········
2010-11-25 18:36
0
游客
登录 | 注册 方可回帖
返回
//