关于消息钩子链的读取问题说明: NtUserSetWindowsHookEx返回的HHOOK怎么换成PHOOK
来源:互联网 发布:百万公众网络考试 编辑:程序博客网 时间:2024/06/05 18:01
不少人问NtUserSetWindowsHookEx返回的HHOOK怎么换成PHOOK,这里说明一下。
主要是找到那个转换函数地址直接调用就是了。
原理:
找到 win32k ssdt的NtUserUnhookWindowsHookEx的函数入口,
直接取@HMValidateHandle@8 的地址
使用方法:
#define GetObjectFromHandle (handle,object)
{
__asm push ecx
__asm push edx
__asm mov ecx,handle
__asm mov dl,5
__asm call @HMValidateHandle@8
__asm mov object,eax
__asm pop edx
__asm pop ecx
}
/////
//////////////NtUserUnhookWindowsHookEx的代码
/////
.text:A0013B47 ; __stdcall NtUserUnhookWindowsHookEx(x)
.text:A0013B47 _NtUserUnhookWindowsHookEx@4 proc near ; DATA XREF: .data:A016BD34o
.text:A0013B47
.text:A0013B47 arg_0 = dword ptr 8
.text:A0013B47
.text:A0013B47 56 push esi
.text:A0013B48 E8 3D D1 FE FF call _EnterCrit@0 ; EnterCrit()
.text:A0013B4D 8B 4C 24 08 mov ecx, [esp+arg_0]
.text:A0013B51 B2 05 mov dl, 5
.text:A0013B53 E8 48 96 FF FF call @HMValidateHandle@8 ; HMValidateHandle(x,x)
.text:A0013B58 85 C0 test eax, eax
.text:A0013B5A 75 04 jnz short loc_A0013B60
.text:A0013B5C 33 F6 xor esi, esi
.text:A0013B5E EB 08 jmp short loc_A0013B68
.text:A0013B60 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:A0013B60
.text:A0013B60 loc_A0013B60: ; CODE XREF: NtUserUnhookWindowsHookEx(x)+13j
.text:A0013B60 50 push eax
.text:A0013B61 E8 2A C8 08 00 call _zzzUnhookWindowsHookEx@4 ; zzzUnhookWindowsHookEx(x)
.text:A0013B66 8B F0 mov esi, eax
.text:A0013B68
.text:A0013B68 loc_A0013B68: ; CODE XREF: NtUserUnhookWindowsHookEx(x)+17j
.text:A0013B68 E8 E4 D0 FE FF call _LeaveCrit@0 ; LeaveCrit()
.text:A0013B6D 8B C6 mov eax, esi
.text:A0013B6F 5E pop esi
.text:A0013B70 C2 04 00 retn 4
.text:A0013B70 _NtUserUnhookWindowsHookEx@4 endp
- 关于消息钩子链的读取问题说明: NtUserSetWindowsHookEx返回的HHOOK怎么换成PHOOK
- 钩子HHOOK
- 钩子HHOOK
- 钩子HHOOK
- 关于HHook编程方面的收录
- 关于ajax返回值读取的问题
- 关于svn钩子的问题
- winform关于回车换成tab的问题
- ListView的消息钩子
- 关于“函数返回CStringArray的问题”的说明
- 关于smarty怎么读取本地文件配置的变量问题上
- 关于netfilter钩子 hook值的问题
- 关于Vue实例的生命周期各状态函数(钩子)说明
- 消息钩子的反拦截
- C#什么是钩子,关于钩子的使用
- 关于怎么使用Parse的说明API
- 关于消息队列的一点说明
- sizeof换成 strlen ,strcpy换成strncpy时碰到的问题
- javax.ejb.EnterpriseBean翻译
- 10天学会ASP.net之第六天
- javax.ejb.FinderException翻译
- 使用jsp生成彩色汉字验证码
- 10天学会ASP.net之第七天
- 关于消息钩子链的读取问题说明: NtUserSetWindowsHookEx返回的HHOOK怎么换成PHOOK
- 10天学会ASP.net之第八天
- [AspNetPager 4.3.3]DataGrid url分页的小Bug导致更新过程无法取得编辑文本框数据
- 设计模式学习笔记3:用于系统解藕的Observer
- realtime library: struct sigevent introduce
- 10天学会ASP.net之第九天
- 将纯数字导入Excel时数据格式仍保持不变的方法
- 十天学会ASP.net之第十天
- Windows中断编程[引用]